文章目錄
- 1、網絡模式
- 1.1、bridge模式(默認模式)
- 1.2、host模式
- 2、bridge模式
- 3、自定義網絡
1、網絡模式
Docker在創建容器時有四種網絡模式:bridge/host/container/none,bridge為默認不需要用–net去指定,其他三種模式需要在創建容器時使用–net去指定
1.1、bridge模式(默認模式)
docker run時使用–net=bridge,這種模式會為每個容器分配一個獨立的Network Namespace,
同一個宿主機上的所有容器會在同一個網段下,相互之間是可以通信的
注1:bridge為默認模式,不需要使用參數–net去指定,使用了–net參數反而無效
注2:bridge模式無法指定容器IP
1.2、host模式
docker run時使用–net=host,容器將不會虛擬出IP/端口,而是使用宿主機的IP和端口
docker run -itd --net=host 961769676411
注1:host模式不能使用端口映射和自定義路由規則,這些都與主機一致,-p 與-icc 參數是無效的
初識網絡模式
#查看網絡模式
ip a
ifconfig
#Docker網絡模式相關命令查看
docker network --help
#列出Docker現有網絡模式
docker network ls
#查看橋接模式下的網絡狀態
docker network inspect bridge
查看橋接模式的特點
啟動一個容器
docker run -di centos:7
再啟動一個容器
docker run -di centos:7
查看僅主機模式的特點
docker run -di --name c1 --net=host --restart=always centos:7
docker network inspect host
可以看到不會分配虛擬IP
2、bridge模式
docker rm -f $(docker ps -aq)
# 這種不需要開放宿主機防火墻端口,如8081端口不需要開放
docker run -di --name tomcat1 -p 8080:8080 f7f730b9e9eb
#--restart=always容器隨著Docker引擎啟動而啟動
docker run -di --name tomcat2 --restart=always -p 8081:8080 f7f730b9e9eb
3、自定義網絡
#創建自定義網絡
docker network create --subnet=172.18.0.0/16 mynetworkdocker run -it --name tomcat8 --net=mynetwork -v /javaxl/software/mydocker/:/home/javaxl/docker --ip 172.18.0.8 f7f730b9e9eb /bin/bash
#查看網絡
docker network inspect mynetwork# 也可以進入容器檢查的內部的網絡情況
yum install -y vim
yum install net-tools.x86_64 -y
ifconfig
發現IP是固定的