Heim  >  Fragen und Antworten  >  Hauptteil

Wie stelle ich eine Verbindung her, nachdem der Docker-Link ausgeführt wurde?

Ich möchte einen MySQL-Container verwenden, erstelle den Container gemäß der Beschreibung auf Hub

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

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

Bei direkter Nutzung des Basiscontainers gelingt die Verbindung nicht

~# 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

Kann nicht auf localhost:3306 in Nginx zugreifen

Verwenden Sie den Befehl
docker inspect -f "{{ .HostConfig.Links }}" Proxydocker inspect -f "{{ .HostConfig.Links }}" proxy
[/mysql:/nx/db][/mysql:/nx/db]
, um die Verbindung zu sehen ist erfolgreich
nginx hostet in

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

Es scheint ein bisschen zufällig zu sein,

Ganz anders als der localhost:3306, den ich erwartet hatte

Gibt es eine Möglichkeit, localhost:3306 nach dem Herstellen der Verbindung zu verwenden?

天蓬老师天蓬老师2714 Tage vor864

Antworte allen(1)Ich werde antworten

  • 世界只因有你

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

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

    Antwort
    0
  • StornierenAntwort