首頁 >資料庫 >mysql教程 >如何從我的主機連接到 Docker MySQL 容器?

如何從我的主機連接到 Docker MySQL 容器?

DDD
DDD原創
2024-12-02 12:01:10861瀏覽

How Do I Connect to a Docker MySQL Container from My Host Machine?

從主機連接到Docker MySQL 容器

問題:

建立與執行實例在其中的MySQL 的連接主機系統中的Docker容器被證明不成功,導致錯誤2002.

Dockerfile 詳細資訊:

使用的Dockerfile 包括以下配置:

FROM ubuntu:14.04.3
RUN apt-get update && apt-get install -y mysql-server
RUN grep -v bind-address /etc/mysql/my.cnf > temp.txt && mv temp.txt /etc/mysql/my.cnf
EXPOSE 3306
CMD /etc/init.d/mysql start && tail -F /var/log/mysql.log

使用的Dockerfile 包括以下配置:

使用的Dockerfile 包括以下配置:

雖然映像初始化沒有問題,但會嘗試連線從主機使用指令mysql -P 12345 -uroot產生上述結果錯誤。

解決方案:

mysql -h localhost -P 3306 --protocol=tcp -u root

連線規範:

要連接到Docker 容器內的MySQL 實例,如下mysql 指令時需要提供正確的參數host:

這裡,-h localhost 指定主機,-P 3306 指定連接埠(在本例中為 12345),--protocol=tcp 表示應透過 TCP/ 建立連線IP 而非套接字連線。

Socket限制:在 Docker 容器內,MySQL 綁定到所有網路接口,不包括 localhost。由於主機系統無法存取套接字,因此必須使用 TCP/IP 進行通訊。透過在mysql指令中指定--protocol=tcp,透過連接埠3306建立連線成功。

以上是如何從我的主機連接到 Docker MySQL 容器?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn