Docker如何固定IP设置的方法

 更新时间:2017年07月11日 11:31:56   作者:Johnnian  
本篇文章主要介绍了Docker如何固定IP设置的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

由于工作需要,需要给Docker设置固定IP,在网上的查找了一些资料,自己试着实践一下,留个笔记。

经常用Docker模拟项目在生产环境中的部署,往往需要同时开好几台Docker容器,而且有时安装的软件需要绑定Docker局域网中的其他容器,如 MongoDB 副本集部署的时候,就需要绑定其他容器的内网IP。

但是,Docker 每次重启后,容器的IP地址会变化,查询了资料,Docker是支持设置固定IP的。

Docker 默认网络

Docker安装后,默认会创建下面三种网络类型:

$ docker network ls
NETWORK ID     NAME        DRIVER       SCOPE
9781b1f585ae    bridge       bridge       local
1252da701e55    host        host        local
237ea3d5cfbf    none        null        local

启动 Docker的时候,用 --network 参数,可以指定网络类型,如:

~ docker run -itd --name test1 --network bridge --ip 172.17.0.10 centos:latest /bin/bash

bridge:桥接网络

默认情况下启动的Docker容器,都是使用 bridge,Docker安装时创建的桥接网络,每次Docker容器重启时,会按照顺序获取对应的IP地址,这个就导致重启下,Docker的IP地址就变了

none:无指定网络

使用 --network=none ,docker 容器就不会分配局域网的IP

host: 主机网络

使用 --network=host,此时,Docker 容器的网络会附属在主机上,两者是互通的。

例如,在容器中运行一个Web服务,监听8080端口,则主机的8080端口就会自动映射到容器中。

创建自定义网络:(设置固定IP)

启动Docker容器的时候,使用默认的网络是不支持指派固定IP的,如下:

~ docker run -itd --net bridge --ip 172.17.0.10 centos:latest /bin/bash
6eb1f228cf308d1c60db30093c126acbfd0cb21d76cb448c678bab0f1a7c0df6
docker: Error response from daemon: User specified IP address is supported on user defined networks only.

因此,需要创建自定义网络,下面是具体的步骤:

步骤1: 创建自定义网络

创建自定义网络,并且指定网段:172.18.0.0/16

➜ ~ docker network create --subnet=172.18.0.0/16 mynetwork
➜ ~ docker network ls
NETWORK ID     NAME        DRIVER       SCOPE
9781b1f585ae    bridge       bridge       local
1252da701e55    host        host        local
4f11ae9c85de    mynetwork      bridge       local
237ea3d5cfbf    none        null        local

步骤2: 创建Docker容器

复制代码 代码如下:

➜  ~ docker run -itd --name networkTest1 --net mynetwork --ip 172.18.0.2 centos:latest /bin/bash

这个时候,创建的Docker容器就会持有 172.18.0.2 这个IP.

[root@ec8e31938fe7 /]# ifconfig
eth0   Link encap:Ethernet HWaddr 02:42:AC:12:00:02
     inet addr:172.18.0.2 Bcast:0.0.0.0 Mask:255.255.0.0
     inet6 addr: fe80::42:acff:fe12:2/64 Scope:Link
     UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
     RX packets:88 errors:0 dropped:0 overruns:0 frame:0
     TX packets:14 errors:0 dropped:0 overruns:0 carrier:0
     collisions:0 txqueuelen:0
     RX bytes:4056 (3.9 KiB) TX bytes:1068 (1.0 KiB)

lo    Link encap:Local Loopback
     inet addr:127.0.0.1 Mask:255.0.0.0
     inet6 addr: ::1/128 Scope:Host
     UP LOOPBACK RUNNING MTU:65536 Metric:1
     RX packets:0 errors:0 dropped:0 overruns:0 frame:0
     TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
     collisions:0 txqueuelen:1
     RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)

链接

Docker Container Networking

为Docker容器指定自定义网段的固定IP/静态IP地址 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • docker-compose之基本语法解读

    docker-compose之基本语法解读

    这篇文章主要介绍了docker-compose之基本语法解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • 使用docker compose一键部署WordPress博客的方法

    使用docker compose一键部署WordPress博客的方法

    这篇文章主要介绍了docker-compose一键部署WordPress博客,本文分步骤给大家讲解的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • Ubuntu Docker安装并使用的方法

    Ubuntu Docker安装并使用的方法

    最近在学习docker,本文就从入门开始介绍Ubuntu Docker安装并使用的方法,具有一定的参考价值,感兴趣的可以了解一下
    2021-09-09
  • 使用docker搭建kong集群操作

    使用docker搭建kong集群操作

    这篇文章主要介绍了使用docker搭建kong集群操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • 详解CentOS7用阿里云Docker Yum源在线安装Docker 17.03.2

    详解CentOS7用阿里云Docker Yum源在线安装Docker 17.03.2

    这篇文章主要介绍了详解CentOS7用阿里云Docker Yum源在线安装Docker 17.03.2,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • Docker Desktop启动失败的解决(Docker failed to initialize Docker Desktop is shutting down)

    Docker Desktop启动失败的解决(Docker failed to i

    本文主要介绍了Docker Desktop启动失败的解决(Docker failed to initialize Docker Desktop is shutting down),文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • docker 设置windows存储路径的操作

    docker 设置windows存储路径的操作

    这篇文章主要介绍了docker 设置windows存储路径的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • 使用Docker CE 还是 Docker EE

    使用Docker CE 还是 Docker EE

    这篇文章主要介绍了使用Docker CE 还是 Docker EE,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2007-06-06
  • 详解如何利用docker快速构建MySQL主从复制环境

    详解如何利用docker快速构建MySQL主从复制环境

    这篇文章主要介绍了详解如何利用docker快速构建MySQL主从复制环境,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • docker容器之间通讯-network解读

    docker容器之间通讯-network解读

    这篇文章主要介绍了docker容器之间通讯-network解读,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12

最新评论