zoukankan      html  css  js  c++  java
  • docker容器启动设置固定IP

    docker安装以后的网络类型

    [root@insure updev]# docker network ls
    NETWORK ID          NAME                DRIVER              SCOPE
    14da40175b01        bridge              bridge              local
    65fb78c28e4f        host                host                local
    e0d0c90c1462        none                null                local

    说明:桥接网络     默认情况下启动的Docker容器,都是使用 bridge,Docker安装时创建的桥接网络,每次Docker容器重启时,会按照顺序获取对应的IP地址,这个就导致重启下,Docker的IP地址就变了                   无指定网络  使用 --network=none ,docker 容器就不会分配局域网的IP                                                                                                                                                                                     主机网络  使用 --network=host,此时,Docker 容器的网络会附属在主机上,两者是互通的。 例如,在容器中运行一个Web服务,监听8080端口,则主机的8080端口就会自动映射到容器中。

    创建自定义网络

    首先查看自动分配的IP地址

    [root@insure updev]# docker inspect -f='{{.Name}} {{.NetworkSettings.IPAddress}} {{.HostConfig.PortBindings}}' $(docker ps -aq)
    /awesome_lamarr 172.17.0.4 map[8091/tcp:[{ 8091}]]
    /priceless_leavitt 172.17.0.2 map[]
    /clever_davinci 172.17.0.3 map[8080/tcp:[{ 8888}]]

    自定义创建自己的网络地址 只能每次创建16个

    [root@insure updev]# docker network create --subnet=172.18.0.0/16 mynetwork
    cf556844631a91a2a530fc07146cf03de650214ee50469675e232cd2b9e243b5

    [root@insure updev]# ifconfig
    br-cf556844631a: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
    inet 172.18.0.1 netmask 255.255.0.0 broadcast 172.18.255.255
    ether 02:42:90:0c:71:1e txqueuelen 0 (Ethernet)
    RX packets 29759 bytes 1736558 (1.6 MiB)
    RX errors 0 dropped 0 overruns 0 frame 0
    TX packets 29759 bytes 1736558 (1.6 MiB)
    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

    说明 172.18.0.1 会被系统占用

    创建docker容器启动   

    [root@insure updev]# docker run -itd -p 8091:8091 --name eurekadev --net mynetwork --ip 172.18.0.2 172.16.120.194:5000/claimeureka:latest /bin/bash
    a6665cd3fd2e1cb7fca1215a1e75997276b928440e6b888cda4fe3644e0434df
    [root@insure updev]# docker ps -a
    CONTAINER ID        IMAGE                                    COMMAND                  CREATED             STATUS              PORTS                    NAMES
    a6665cd3fd2e        172.16.120.194:5000/claimeureka:latest   "java -jar /app.jar …"   6 seconds ago       Up 5 seconds        0.0.0.0:8091->8091/tcp   eurekadev

     [root@insure updev]# docker inspect a6665cd3fd2e | grep IPAddress
      "SecondaryIPAddresses": null,
        "IPAddress": "",
        "IPAddress": "172.18.0.2",

    说明:通过命令可以看到容器已经成功启动,地址也是我们分配的IP地址

  • 相关阅读:
    CF-819B. Mister B and PR Shifts(模拟,找规律)
    CF-1198E. Rectangle Painting 2(最小点覆盖)
    CF-1214D. Treasure Island(dfs,最小割)
    CF-546E. Soldier and Traveling(网络最大流)
    洛谷 P1351 [NOIP2014 提高组] 联合权值(dp)
    CF-286C. Main Sequence(贪心,模拟)
    java基本框架
    人脸识别算法(—)
    将“引用”作为函数参数有哪些特点
    什么是“引用”?申明和使用“引用”要注意哪些问题?
  • 原文地址:https://www.cnblogs.com/mutong1228/p/10334439.html
Copyright © 2011-2022 走看看