繁体   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