docker设置固定ip

for linux
os: ubuntu16.04
docker 的默认network模式为:
NETWORK ID NAME DRIVER SCOPE
afd0d5b58c57 bridge bridge local
38e277a0d6c2 host host local
f4bc2805ee47 none null local

docker 查看具体的network信息

$ docker network inspect  bridge
[
    {
        "Name": "bridge",
        "Id": "afd0d5b58c57e4d9aa596190e6dab890697451f937d14b1479498f4dd8dc80f4",
        "Created": "2019-04-12T16:25:00.461315187+08:00",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "172.17.0.0/16",
                    "Gateway": "172.17.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {},
        "Options": {
            "com.docker.network.bridge.default_bridge": "true",
            "com.docker.network.bridge.enable_icc": "true",
            "com.docker.network.bridge.enable_ip_masquerade": "true",
            "com.docker.network.bridge.host_binding_ipv4": "0.0.0.0",
            "com.docker.network.bridge.name": "docker0",
            "com.docker.network.driver.mtu": "1500"
        },
        "Labels": {}
    }
]

启动 Docker,使用 --network 参数,指定网络类型
docker run -it --name testip --network bridge --ip 172.17.0.10 ”container ID“ /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 -it --net bridge --ip 172.17.0.10 ”container ID“ /bin/bash
qwertyuio45678943125fgajkjfagjhsgfdhjgfdhfgsfutrynbvgfsda
docker: Error response from daemon: User specified IP address is supported on user defined networks only.
步骤1: 创建自定义网络
docker network create --subnet=172.18.0.0/24 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 -it --name networkTest1 --net mynetwork --ip 172.18.0.2 centos:latest /bin/bash

for windows server:
os: windows server 2016

网上很多说docker 在创建后network模式都类似于以上linux的三种模式,,然而在windows server上

$ docker network ls
fc6900b85c96        nat                 nat                 local
3adb96b1f8ee        none                null                local

只发现了上述两种模式
在docker 的 官网上windows设置ip 联通外网可以通过create network transparent 的driver来创建一个dhcplan的网络模式

docker network create -d transparent dhcplan

但是上述命令在每次进入docker或者是新建docker的时候ip会产生变化所以需要固定ip

可以键入以下命令进行固定ip

$docker network create -dtransparent --subnet=192.168.1.0/24 win-docker
创建 win-docker网络, 网段为192.168.1.0-254
$docker run --network=win-docker --ip 192.168.1.12 --name=testip -it ddashsfdaf
将docker container设置为ip:192.168.1.12
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值