zoukankan      html  css  js  c++  java
  • Docker 容器固定 IP

    前言

    虽然使用 docker 部署容器实现所需邀的功能非常方便,但是这是建立在 docker 部署容器时的设置完善的情况下。

    部署容器时有一点不可避免:固定容器 IP 。

    如果没有固定分配的 IP ,容器提供的服务将是不可靠的:

    • 每次主机重启时,如果容器没有固定 IP ,容器的 IP 将由启动顺序决定。这将导致类似无法远程访问数据库等等情况时,发送错误的请求,从而使得服务提供失败。

    创建自定义网络

    默认的 docker0 网络是不支持容器固定 IP 到该网段的,必须先创建一个自定义网络,才能固定容器 IP 到这个自定义网络中。

    • 否则报错:

      Failure
      user specified IP address is supported on user defined networks only
      

    命令行创建

    • 格式:

      sudo docker network create --subnet=[自定义网络广播地址]/[子网掩码位数] [自定义网络名]
      
    • 示例:

      sudo docker network create --subnet=172.20.0.0/24 yogile0
      
      • --subnet :设置前 24 位为网络位,后 8 位为主机位,该网段可用 IP 地址:172.20.0.1172.20.0.254

    • 查看更多参数:

      sudo docker network create --hlelp
      

    Portainer 图形化创建

    • Portainer 中,点击 “Networks” 即可看到网络列表。

    • 点击 “Add network” 开始创建网络。

    • 最简单的网络创建需要示例:

      • 最简单的网络创建只需要 NameSubnet 信息,更多设置同命令行帮助。
      • Gateway :如果不填默认网关为首位可用主机名(这里是 172.20.0.1)。

    • 点击最下面的 “Create the network” 即可完成创建网络。

    • 回到 “Networks” 即可看到网络列表中多出了网络 yogile0

    固定容器 IP

    命令行固定

    • 简单格式:

      • 注意:“选定网络下固定 IP 地址” 不可是网关地址。

        如果设置网络时,不填网关,默认为首位可用主机名(这里是 172.20.0.1)

      sudo docker run -it --name [容器名] --net [网络名] --ip [选定网络下固定 IP 地址] ubuntu:latest /bin/bash
      
    • 示例:

      sudo docker run -it --name network-test --net yogile0 --ip 172.20.0.2 ubuntu:latest /bin/bash
      

    Portainer 图形化固定

    • 创建容器,或者进入一个容器的管理界面时,在 “Advanced container settings -> Network” 中设置固定 IP 。

    • 填写网络信息。

      • Network :选择目标网络名。
      • Hostname :输入容器网络名。
      • Domain Name :可设置容器域名。
      • IPv4 Address :设置固定 IP 地址。
      • 其他选项可以按需填写。

    • 部署容器。

    • 可以看到容器列表中出现创建的容器。

  • 相关阅读:
    一则由表单提交引发的思考
    前端技术栈持续汇总中(已解锁)
    5599充值中心功能开发
    CSS动画持续汇总中
    编程小技巧持续汇总中
    开发软件安装方法汇总
    HashMap中tableSizeFor
    2019年JVM面试都问了什么?快看看这22道面试题!(附答案解析)
    Spring注解@EnableWebMvc使用坑点解析
    线程池中 work 为何要实现 AbstractQueuedSynchronizer
  • 原文地址:https://www.cnblogs.com/Yogile/p/12944741.html
Copyright © 2011-2022 走看看