从主机连接到Docker容器

编程入门 行业动态 更新时间:2024-10-25 04:21:23
本文介绍了从主机连接到Docker容器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我刚刚拉出并运行了官方 Docker MySQL映像,并将其本地运行在我的本地计算机上机器:

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

该屏幕上的说明告诉您如何从另一个容器(配置为命令行客户端)内部连接到MySQL服务器(容器).但是我有一个通用的JDBC胖客户端( SQuirreL ),并且想知道如何连接到我的docker容器. /p>

对于JDBC连接字符串,我需要同时提供主机名和 dbname ,该怎么用?我以为Docker容器可以通过我的主机OS寻址,但是我实际上还没有创建任何数据库,所以我不确定我可以提供什么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/myf

别忘了重新加载mysql.

然后,您必须创建数据库并导入架构(如果需要).

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

I just pulled and run the official Docker MySQL image and have it running locally on my machine:

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

The instructions on that screen tell you how to connect to the MySQL server (container) from inside yet another container (which is configured as a command-line client). But I have a generic JDBC fat client (SQuirreL) and am wondering how to connect to my docker container.

For the JDBC connection string, I need to provide both a hostname and a dbname, what can I use? I would imagine the Docker container is somehow addressable from my host OS, but I haven't actually created any databases yet, so I'm not sure what dbname value I can supply:

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

解决方案

You could run your instance with forwarding 3306:

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

See incoming ports.

The you specify:

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

You command become:

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

You might need to change the MySQL configuration.

Can go inside the container with:

$ docker exec -it mydb bash

And then you could:

$ echo "bind-address = 0.0.0.0" >> /etc/mysql/myf

Don't forget to reload mysql.

Then you have to create the database and import your schema (if needed).

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

更多推荐

从主机连接到Docker容器

本文发布于:2023-10-07 13:01:21,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1469458.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:连接到   容器   主机   Docker

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!