簡體   English   中英

無法在本地連接到dockerized mysql容器

[英]unable to connect to dockerized mysql container locally

我仍然是docker的初學者,嘗試使用docker來幫助我進行開發原型設計。 我的環境是使用boot2docker的Mac,版本如下

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

我運行命令如下:

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

我可以看到進程運行如下:

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

但是我仍然無法連接到在docker中運行的mysql實例。 我嘗試連接到通過以下方式檢索的IP:

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

請仔細閱讀本教程,以獲取如何解決此問題的指導,但不確定出現了什么問題。

您使用的命令應該給出錯誤。 docker run的語法如下:

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

您必須在指定使用的映像(在您的情況下為mysql)之前將選項提交給docker run ,如果是這種情況,則需要該命令以及該命令的可能參數。 不指定命令將運行映像中的默認命令。

在再次運行容器之前,應停止並刪除舊的容器:

docker kill mymysql
docker rm mymysql

並且,按照您的示例,您應該運行:

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

手動設置從容器的端口3306到Boot2docker VM的同一端口的端口映射時,您應該可以使用Boot2docker實例的IP(通常為192.168.59.103)並連接到端口3306來訪問MySQL。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM