Connecting to mysql container from host

痴心易碎 提交于 2021-01-29 11:08:37

问题


I have installed docker on my mac. I have MySQL container which is running on my local machine (MAC).

Docker ps command is giving me below output -

CONTAINER ID   IMAGE          COMMAND                   CREATED         STATUS                 PORTS                     NAMES

b5c50b2d334a   test_mysql2    "docker-entrypoint.s…"    2 hours ago     Up 2 hours (healthy)   0.0.0.0:32783->3306/tcp   test_mysql2_1

I know username and password to the mysql which would be setup up in the container.

I want to connect to mysql and run some queries But I am not able to figure out how to connect to it. Any help will be appreciated.


回答1:


Do you want to Connect to MySQL through Docker if yes; Kindly follow this step by step procedure that I am using.

Step 1 : Pull MySql image from docker hub. The following command will pull the latest mysql image.

cli> docker pull mysql

Step 2: Run a container from this image. ‘-name’ gives a name to the container. ‘ -e’ specifies run time variables you need to set. Set the password for the MySQL root user using ‘MYSQL_ROOT_PASSWORD’. ‘-d’ tells the docker to run the container in background.

cli> docker run --name=testsql -e MYSQL_ROOT_PASSWORD=rukshani -d mysql 

This will output a container id; which means that the container is running in the background properly.

Step 3: Then check the status of the container by issuing, ‘docker ps’ command

cli> docker ps

Now you should be able to see that MySQL is running on port 3306.

Step 4: To checkout the logs of the running container use the following command

cli > docker logs testsql

Step 5: Find the IP of the container using following. Check out the “IPAddress” from the output, this will tell you the IP address.

cli> docker inspect testsql

Now you should be able to connect to MySQL using tIPs ip address on port 3306.

Base on what I understand from your question, this is what you need. (I hope so)

(This is not my own documentation, I only like to document everything most especially those procedure that I cannot put in my head, so that if ever the same thing happen or I need same procedure in the future, I will not waste my time to research again, but instead I will open my notes and run the commands.)




回答2:


As you can see in the output of docker ps, the port 32783 (local machine) is mapped to the port 3306 inside the docker container. If you are using a MySQL Client (e.g. MySQL Workbench) you should be able to connect using ip localhost and port 32783. If not, you should go with docker exec and then open a interactive mysql shell inside the container (As mulg0r commented).



来源:https://stackoverflow.com/questions/51741607/connecting-to-mysql-container-from-host

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!