使用 docker --network 连接 2 个容器

Connecting 2 conatiners with docker --network

我正在尝试将一个 phpmyadmin 容器连接到另一个 mysql 容器。我用 docker network create 创建了一个网络并添加了我的两个容器。但是当我尝试使用 phpmyadmin 登录时,每次都会显示 password is incorrect 错误。 我检查了这两个容器是否可用于我已经创建的网络,因此我尝试将 ping mysql 容器添加到 phpmyadmin 容器,但不幸的是我得到了负面结果。 我遵循了本教程:

https://tecadmin.net/tutorial/docker/docker-networking-example/

你能给我解释一下表扬 docker run --network 的具体工作原理吗?

如果一切正常,那么您可以 ping 一个容器从另一个使用容器名称。当您在 2 个容器之间创建网络时,它会创建一个包含容器名称和容器 IP 的别名。 例如

docker network create my-bridge-network
docker run --name mysql -e MYSQL_ROOT_PASSWORD=secret -d mysql/mysql-server --network my-bridge-network
docker run --name phpmyadmin -d -e PMA_HOST=mysql -p 8080:80 phpmyadmin/phpmyadmin --network my-bridge-network

在这种情况下,当您从 phpmyadmin 容器 exec ping 时,您应该能够 ping mysql 容器

docker exec phpmyadmin ping mysql # if in phpmyadmin `ping` program is available