目录
一,网络模式
二,外部访问docker容器
1.bridge模式
2.host模式
四,自定义网络
一,网络模式
Docker在创建容器时有四种网络模式:bridge/host/container/none,bridge为默认不需要用--net去指定,其他三种模式需要在创建容器时使用--net去指定
1.bridge模式(默认模式)
docker run时使用--net=bridge,这种模式会为每个容器分配一个独立的Network Namespace,
同一个宿主机上的所有容器会在同一个网段下,相互之间是可以通信的注1:bridge为默认模式,不需要使用参数--net去指定,使用了--net参数反而无效
注2:bridge模式无法指定容器IP(但非绝对)
命令:Docker run -it --name mytomcat01 -p 8081:8080 镜像ID
实例:
查看桥接模式的特点
启动一个容器
docker run -di centos:7
在启动一个容器
docker run -di centos:7
可以观察到二者的区别
初始网络模式
查看网络模式
ip a
ifconfigDocker网络模式相关命令查看
docker network --help
列出Docker现有网络模式
docker network ls查看桥接模式下的网络状态
docker network inspect bridge
2.host模式
docker run时使用--net=host,容器将不会虚拟出IP/端口,而是使用宿主机的IP和端口
docker run -itd --net=host 镜像id
注1:host模式不能使用端口映射和自定义路由规则,这些都与主机一致,-p 与-icc 参数是无效的
实例:
查看仅主机模式特点
docker run -di --name c1 --net=host --restart=always centos:7
docker network inspect host
总结:
桥接的服务器可以看到不一样的IP。桥接模式下会分配虚拟IP,宿主机只能被映射一次,仅主机模式下只能被一个容器所使用的
二,外部访问docker容器
1.bridge模式
docker run -itd -p 7101:7101 镜像ID
-p参数可以出现多次,绑定多个端口号
docker run -itd -p 8080:8080 -p 8088:8088 镜像ID
2.host模式
docker run -di --name tomcat3 --net=host --restart=always f7f730b9e9eb
![]()
docker run -di --name tomcat5 -v /javaxl/software/mydocker/:/home/javaxl/docker --net=host --restart=always f7f730b9e9eb
四,自定义网络
创建自定义网络
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