【发布时间】:2020-05-22 06:49:00
【问题描述】:
我只是尝试给这个容器一个静态 ip 172.17.0.44,就像这样,
但它不起作用,
如何用“network_mode : bridge”给出静态IP地址
因为我需要为这个容器提供 172.17.0 系列 ip
当我设置网络模式桥接时,我得到这个 172.17.0 系列 ip
version: '2.1'
services:
mysql_db:
image: mysql:latest
network_mode: bridge
ipv4_address: 172.17.0.44
volumes:
- "./.mysql-data/_data:/var/lib/mysql"
restart: always
ports:
- 8555:8110
environment:
MYSQL_ROOT_PASSWORD: rootpass123
MYSQL_DATABASE: testing
MYSQL_USER: test
MYSQL_PASSWORD: test
已经有一个具有 172.17 系列 ip 的网络,所以我希望加入具有该默认桥接网络的容器并获得一个静态 IP
【问题讨论】:
-
这是你需要的,检查stackoverflow.com/q/39493490/8438982
-
您的
YML文件格式不正确,至少是您在此处提供的格式不正确,我认为它会导致终端出现错误。 -
是的,兄弟,但我需要给 ip 172.17.0.44 这个,上面的链接正在工作,我们可以创建并提供我们需要的 ip,但我只想设置这个 ip,当我试试这个,它说网络已经像那样错误了,如果我们把网络模式:桥然后它会自动将容器附加到默认网络中,在那个默认网络中我需要我正在尝试的静态 ip
-
为什么需要设置这个地址?在 Docker 空间中,您可以使用 Compose 服务名称
mysql_db作为主机名(内部端口为 8110);从外部,您可以使用主机名(以及发布的端口 8555),通常无法访问容器私有地址。您不需要任何手动网络设置。 -
它的创建就像测试数据库服务器一样,我们的一些应用程序正在使用 172.17.0.44 地址进行数据库连接,所以这就是为什么要在网络模式桥接器中分配一个静态 ip,也是这个 44 ip很好,但是如果我们执行 docker-container down ,然后再次执行 db 容器 ip 正在发生变化,因此尝试始终提供静态 ip
标签: mysql docker docker-compose dockerfile