[root@docker ~]# docker network list
NETWORK ID NAME DRIVER SCOPE
89c12c0570e3 bridge bridge local
7aa72f2e6c2a host host local
271f52604302 none null local
c4e4b2c40ab2 test_default bridge local
[root@docker ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
89c12c0570e3 bridge bridge local
7aa72f2e6c2a host host local
271f52604302 none null local
c4e4b2c40ab2 test_default bridge local
docker安装后,默认会创建三种网络类型,bridge、host和none以及自定义网络模式
(1)该模式关闭了容器的网络功能
(2)使用none模式,Docker容器拥有自己的Network Namespace,但是,并不为Docker容器进行任何网络配置。也就是说,这个Docker容器没有网卡、IP、路由等信息。需要我们自己为Docker容器添加网卡、配置IP等
(3)这种网络模式下容器只有lo回环网络,没有其他网卡。none模式可以在容器创建时通过
--network=none
来指定。这种类型的网络没有办法联网,封闭的网络能很好的保证容器的安全性,可以安全的储存数据,不会被攻击,可以用来当个仓库,数据备份时。
?
host容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口范围。
使用host模式的容器可以直接使用宿主机的Ip地址与外界通信,容器内部的服务端口也可以使用宿主机的端口,不需要进行NAT,host最大的优势就是网络性能比较好
[root@docker ~]# docker run -it --name testnginx2 --net host 98ebf73ab
[root@docker ~]# netstat -lntp | grep 80
tcp6 0 0 :::80 :::* LISTEN 3237/docker-proxy
浏览器访问宿主ip地址
[root@docker ~]# docker network create --subnet=192.168.0.0/16 hua
d024b6ca219b453d3d9ef659643975d3d9820299990b4fa48a778588f3ce0101
查看网络类型,多了自定义的
[root@docker ~]# docker network list
NETWORK ID NAME DRIVER SCOPE
89c12c0570e3 bridge bridge local
7aa72f2e6c2a host host local
d024b6ca219b hua bridge local
271f52604302 none null local
c4e4b2c40ab2 test_default bridge local
格式 network create --subnet=网段 + 网络类型名字
创建容器时可以指定IP,创出来的ip也在这个网段内的ip
语法:docker run -itd? --net 网络类型名 + 镜像
[root@docker ~]# docker run -itd --net hua --ip 192.168.66.66 nginx
6f54688334f1a8da16645020164dac5e2d8bbee198b5f4e1c4478018e3bb09f8
查看容器!
[root@docker ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6f54688334f1 nginx "/docker-entrypoint.…" 8 seconds ago Up 7 seconds 80/tcp sharp_chatelet
查看容器ip!
[root@docker ~]# docker inspect 6f | grep IPAddress
"SecondaryIPAddresses": null,
"IPAddress": "",
"IPAddress": "192.168.66.66",
关闭容器并重启,发现容器ip并未发生改变