首頁  >  問答  >  主體

docker link 運作後如何連接?

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

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

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

#直接使用基礎容器沒有連線成功

~# docker ps
CONTAINER ID        IMAGE                    COMMAND                  CREATED              STATUS              PORTS                                            NAMES
bf673d61f789        nginx                    "nginx -g 'daemon ..."   3 seconds ago        Up 2 seconds        80/tcp, 443/tcp                                  nx
1ac01c685e9b        mysql: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-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.4      db 1ac01c685e9b mysql
172.17.0.6      8242073e142b

看似有些隨意,

與我預想的 localhost:3306 差異很大

有沒有辦法連線後可以使用 localhost:3306使用?

天蓬老师天蓬老师2714 天前862

全部回覆(1)我來回復

  • 世界只因有你

    世界只因有你2017-06-07 09:25:31

    link是建立兩個容器的網絡鏈接,不是把兩個容器的網絡端口合併在一起! !
    把存取localhost:3306換成存取db:3306即可成功存取資料庫服務

    回覆
    0
  • 取消回覆