Docker 如何分配宿主机网段 IP
工作需要临时启动一个gitlab,无奈gitlab需要ssh的22端口;而使用传统网桥方式映射端口则clone等都需要输入端口号,很麻烦;22端口宿主机又有sshd监听;研究了下docker网络,记录一下如何分配宿主机网段IP
创建macvlan网络
关于Docker网络模式这里不再细说;由于默认的网桥方式无法满足需要,所以需要创建一个macvlan网络
dockernetworkcreate-dmacvlan --subnet=172.16.0.0/19--gateway=172.16.0.1-oparent=eth0gitlab-net
- --subnet:指定网段(宿主机)
- --gateway:指定网关(宿主机)
- parent:注定父网卡(宿主机)
创建以后可以使用dockernetworkls查看
~dockernetworkls NETWORKIDNAMEDRIVERSCOPE a4a2980c9165agent_defaultbridgelocal a0f29102b413bridgebridgelocal 2f46dc70b763gitlab-netmacvlanlocal 51bd6222530fhosthostlocal 7a14a09c3cfcnonenulllocal
创建使用容器
接下来创建容器指定网络即可
dockerrun--net=gitlab-net--ip=172.16.0.170 -dt--nametestcentos:7
--net指定使用的网络,--ip用于指定网段内IP;启动后只需要在容器内启动程序测试即可
#启动一个nginx yuminstallnginx nginx
启动后在局域网内能直接通过IP:80访问,而且宿主机80不受影响
docker-compose测试
docker-compose示例如下
version:'2' services: centos: image:centos:7 restart:always command:/bin/bash-c"sleep999999" networks: app_net: ipv4_address:10.10.1.34 networks: app_net: driver:macvlan driver_opts: parent:enp3s0 ipam: config: -subnet:10.10.1.0/24 gateway:10.10.1.2 #ip_range:10.25.87.32/28
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。