简体   繁体   中英

unable to connect to dockerized mysql container locally

I am still a beginner with docker, trying to use docker to help in my development prototyping. My environment is Mac using boot2docker, version as below

Client version: 1.3.1
Client API version: 1.15
Go version (client): go1.3.3
Git commit (client): 4e9bbfa
OS/Arch (client): darwin/amd64
Server version: 1.3.2
Server API version: 1.15
Go version (server): go1.3.3
Git commit (server): 39fa2fa

I ran the command as below:

docker run --name mymysql -e MYSQL_ROOT_PASSWORD=mypw -e MYSQL_DATABASE=bullshit -d mysql -p 3306:3306
docker start mymysql

I can see the process running as below:

CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS               NAMES
22d3f780c270        mysql:5             "/entrypoint.sh -p 3   2 minutes ago       Up 2 seconds        3306/tcp            mymysql   

However I still could not connect to the mysql instance running in the docker. I tried connect to the ip retrieved by :

$ boot2docker ip    
The VM's Host only interface IP address is: 192.168.59.103

Please give me a pointer on how to solve this issue, I went through the tutorial but I am not sure what went wrong.

The command you used should give an error. The syntax for docker run is as follow:

Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

You have to submit the options to docker run before specifying the image used (mysql in your case), and if it's the case, the command and possible argument(s) to that command. Not specifying a command will run the default command in the image.

Before running again the container you should stop and remove the old one:

docker kill mymysql
docker rm mymysql

And, following your example you should run:

docker run --name mymysql -e MYSQL_ROOT_PASSWORD=mypw -e MYSQL_DATABASE=bullshit -p 3306:3306 -d mysql

As you set manually a port mapping from container's port 3306 to the same port of your Boot2docker VM, you should can access to MySQL using the IP of the Boot2docker instance, typically 192.168.59.103, and connecting to port 3306.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM