我第一次使用Docker。我正在尝试将基于docker的MySQL与我的Navicat客户端连接起来。如何获取docker IP然后将其用于连接?以下是一些细节:
number = 3
for x in range(0, 7, 1):
x += 1
if number == 3:
print("3")
答案 0 :(得分:4)
如果需要从外部访问mysql容器。您需要映射服务器端口上的容器端口(使用-p
)。
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=my-secret-pw -e MYSQL_USER=test -e MYSQL_PASSWORD=test -d mysql:latest
现在,您可以使用服务器的IP +端口连接到容器。在我的情况下,我在一个VLAN。我的服务器的IP是192.168.140.30。所以例如当我ssh到我的服务器时,我使用该IP。现在我已经在我的服务器端口映射了我的容器的端口(使用-p 3306:3306
,这意味着:将我的容器的端口3306映射到我的服务器的端口3306。(所以我可以使用服务器IP连接)。
答案 1 :(得分:0)
如果您需要使用客户端连接到Docker容器中的MySQL,您需要与主机进行端口映射。
我看到MySQL容器没有使用将容器端口映射到主机端口,因此您无法使用MySQL客户端连接MySQL服务器。
您可以使用-p参数指定端口映射。例如,如果您需要使用端口3306连接到MySQL服务器,请使用以下命令创建MySQL容器。 PS:您需要更改以下命令的一些设置。
docker run --name container-name -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password -e MYSQL_DATABASE=database-name -e MYSQL_USER=user -e MYSQL_PASSWORD=password mysql:5.7