簡體   English   中英

從主機連接到Docker容器

[英]Connecting to Docker container from host

我只是拉出並運行了官方的Docker MySQL映像 ,並使其在本地運行在我的機器上:

docker run --name mydb -e MYSQL_ROOT_PASSWORD=12345 -d mysql:5.7.11

該屏幕上的說明告訴您如何從另一個容器(配置為命令行客戶端)內部連接到MySQL服務器(容器)。 但是我有一個通用的JDBC胖客戶端( SQuirreL ),並且想知道如何連接到我的docker容器。

對於JDBC連接字符串,我需要同時提供一個主機名和一個dbname ,我可以使用什么? 我以為可以從主機操作系統以某種方式訪問​​Docker容器,但是實際上我還沒有創建任何數據庫,因此我不確定我可以提供什么dbname值:

jdbc:mysql://<hostname>:3306/<dbname>

您可以通過轉發3306運行實例:

$ docker run --expose=3306 -p 3306 mysql

請參閱傳入端口

您指定:

jdbc:mysql://127.0.0.1:3306/<dbname>

您的命令將變為:

$ docker run --name mydb -e MYSQL_ROOT_PASSWORD=12345 -d --expose=3306 -p 3306 mysql:5.7.11

您可能需要更改MySQL配置。

可以通過以下方式進入容器:

$ docker exec -it mydb bash

然后您可以:

$ echo "bind-address = 0.0.0.0" >> /etc/mysql/my.cnf

不要忘記重新加載mysql。

然后,您必須創建數據庫並導入架構(如果需要)。

$ mysql -uroot -p12345 -e"CREATE DATABASE mydb"
$ mysql -uroot -p12345 mydb < mydb-schema.sql

暫無
暫無

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

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