前言#
虽然使用 docker 部署容器实现所需邀的功能非常方便,但是这是建立在 docker 部署容器时的设置完善的情况下。
部署容器时有一点不可避免:固定容器 IP 。
如果没有固定分配的 IP ,容器提供的服务将是不可靠的:
- 每次主机重启时,如果容器没有固定 IP ,容器的 IP 将由启动顺序决定。这将导致类似无法远程访问数据库等等情况时,发送错误的请求,从而使得服务提供失败。
创建自定义网络#
默认的 docker0
网络是不支持容器固定 IP 到该网段的,必须先创建一个自定义网络,才能固定容器 IP 到这个自定义网络中。
- 否则报错:Copy
命令行创建#
- 格式:Copy
- 示例:Copy
-
--subnet
:设置前 24 位为网络位,后 8 位为主机位,该网段可用 IP 地址:172.20.0.1
到172.20.0.254
。
- 查看更多参数:Copy
Portainer 图形化创建#
- Portainer 中,点击 “Networks” 即可看到网络列表。
- 点击 “Add network” 开始创建网络。
- 最简单的网络创建需要示例:
- 最简单的网络创建只需要
Name
和Subnet
信息,更多设置同命令行帮助。 -
Gateway
:如果不填默认网关为首位可用主机名(这里是 172.20.0.1)。
- 点击最下面的 “Create the network” 即可完成创建网络。
- 回到 “Networks” 即可看到网络列表中多出了网络
yogile0
。
固定容器 IP#
命令行固定#
- 简单格式:
- 注意:“选定网络下固定 IP 地址” 不可是网关地址。
如果设置网络时,不填网关,默认为首位可用主机名(这里是 172.20.0.1)
Copy
- 示例:Copy
Portainer 图形化固定#
- 创建容器,或者进入一个容器的管理界面时,在 “Advanced container settings -> Network” 中设置固定 IP 。
- 填写网络信息。
-
Network
:选择目标网络名。 -
Hostname
:输入容器网络名。 -
Domain Name
:可设置容器域名。 -
IPv4 Address
:设置固定 IP 地址。 - 其他选项可以按需填写。
- 部署容器。
- 可以看到容器列表中出现创建的容器。