docker link 运行后如何连接?

浏览:44日期:2023-02-15

问题描述

我想使用mysql 容器,按照hub上的描述创建容器

docker run --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8

docker run -d --name nx --link mysql:db nginx

直接使用基础容器没有连接成功

~# docker psCONTAINER IDIMAGE COMMAND CREATED STATUS PORTS NAMESbf673d61f789nginx 'nginx -g ’daemon ...' 3 seconds agoUp 2 seconds80/tcp, 443/tcp nx1ac01c685e9bmysql:8 'docker-entrypoint...' About a minute ago Up About a minute 3306/tcp mysql

在 nginx 无法访问localhost:3306

通过命令docker inspect -f '{{ .HostConfig.Links }}' proxy[/mysql:/nx/db]查看到连接成功nginx 中的hosts

127.0.0.1 localhost::1 localhost ip6-localhost ip6-loopbackfe00::0 ip6-localnetff00::0 ip6-mcastprefixff02::1 ip6-allnodesff02::2 ip6-allrouters172.17.0.4 db 1ac01c685e9b mysql172.17.0.6 8242073e142b

看似有些随意,

与我预想的 localhost:3306 差别很大

有没有办法连接后可以使用 localhost:3306使用?

问题解答

回答1:

link是建立两个容器的网络链接,不是把两个容器的网络端口合并在一起!!把访问localhost:3306换成访问db:3306即可成功访问数据库服务

相关文章: