查询网络列表
[root@localhost ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
44a5886ba7b7 bridge bridge local
52e7a1f6e41a host host local
0c371794f186 none null local
查询具体信息
[root@localhost ~]# docker network inspect bridge
[
{
"Name": "bridge",
"Id": "44a5886ba7b75ef06a892232618984d57823b63418c7697652d61b31f8a064d5",
"Created": "2020-12-16T01:35:51.164348347+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": {}
}
]
bridge模式
默认情况下不指定网络会创建bridge模式
[root@localhost ~]# docker run -itd --name www centos:latest /bin/bash
24dc9d447917a219101b97bb404d05d10b53e0928ce72ee2c9ef1cc77f17a1fe
[root@localhost ~]# docker exec -it www ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
4: eth0@if5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0
valid_lft forever preferred_lft forever
指定模式为bridge模式
[root@localhost ~]# docker run -itd --name rrr --net=bridge centos:latest /bin/bash
1d6cbd9d9f8bb2ee28251a713a9032ee8f3a361eefe22d239780498d90001fdc
不进入容器查看ip
[root@localhost ~]# docker exec rrr ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
6: eth0@if7: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:ac:11:00:03 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 172.17.0.3/16 brd 172.17.255.255 scope global eth0
valid_lft forever preferred_lft forever
同一个宿主机上的所有容器会在同一个网段下,相互之间是可以通信的
```bash
[root@localhost ~]# docker exec -it rrr /bin/bash
[root@1d6cbd9d9f8b /]# ping 172.17.0.2
PING 172.17.0.2 (172.17.0.2) 56(84) bytes of data.
64 bytes from 172.17.0.2: icmp_seq=1 ttl=64 time=0.653 ms
64 bytes from 172.17.0.2: icmp_seq=2 ttl=64 time=0.045 ms
^C
--- 172.17.0.2 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 2ms
rtt min/avg/max/mdev = 0.045/0.349/0.653/0.304 ms
host模式
容器的ip和虚拟机的ip一致
[root@localhost ~]# docker run -itd --name xxx --net=host centos bash
d7349e0535ee514e5a108cfae134568833c39d2261ae0d10e9fbf90bb832b357
[root@localhost ~]# docker exec -it xxx ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:be:a6:8c brd ff:ff:ff:ff:ff:ff
inet 192.168.200.69/24 brd 192.168.200.255 scope global eno16777736
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:febe:a68c/64 scope link
valid_lft forever preferred_lft forever
3: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:53:01:7a:ed brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
inet6 fe80::42:53ff:fe01:7aed/64 scope link
valid_lft forever preferred_lft forever
5: veth5ea9ea8@if4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default
link/ether b2:50:09:0c:5a:1a brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet6 fe80::b050:9ff:fe0c:5a1a/64 scope link
valid_lft forever preferred_lft forever
7: veth7354ddf@if6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default
link/ether 42:d8:e0:a6:40:40 brd ff:ff:ff:ff:ff:ff link-netnsid 1
inet6 fe80::40d8:e0ff:fea6:4040/64 scope link
valid_lft forever preferred_lft forever
```bash
[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:be:a6:8c brd ff:ff:ff:ff:ff:ff
inet 192.168.200.69/24 brd 192.168.200.255 scope global eno16777736
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:febe:a68c/64 scope link
valid_lft forever preferred_lft forever
3: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
link/ether 02:42:53:01:7a:ed brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
inet6 fe80::42:53ff:fe01:7aed/64 scope link
valid_lft forever preferred_lft forever
5: veth5ea9ea8@if4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP
link/ether b2:50:09:0c:5a:1a brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet6 fe80::b050:9ff:fe0c:5a1a/64 scope link
valid_lft forever preferred_lft forever
7: veth7354ddf@if6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP
link/ether 42:d8:e0:a6:40:40 brd ff:ff:ff:ff:ff:ff link-netnsid 1
inet6 fe80::40d8:e0ff:fea6:4040/64 scope link
valid_lft forever preferred_lft forever
none模式
不进行网络配置
```bash
这里是引用
```bash
```bash
```bash
[root@localhost ~]# docker run -itd --name lll --net=none centos bash
3cbfae8673da7707b9312c7f29f14823d67b2e381ae3bed0011d3a5a27beaefb
[root@localhost ~]# docker exec -it lll ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
查询网络信息
[root@localhost ~]# docker inspect none
[
{
"Name": "none",
"Id": "0c371794f1860457f967323dea7f8f002165c1046ed6492b02db9c018bf1cc49",
"Created": "2020-12-16T01:27:30.280671499+08:00",
"Scope": "local",
"Driver": "null",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": []
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {
"3cbfae8673da7707b9312c7f29f14823d67b2e381ae3bed0011d3a5a27beaefb": {
"Name": "lll",
"EndpointID": "c2828b70284af57eeab5af00db021ebae6dab53a5fc066a5292ca51114d26c27",
"MacAddress": "",
"IPv4Address": "",
"IPv6Address": ""
}
},
"Options": {},
"Labels": {}
}
]
外部访问网络
新建一个容器
[root@localhost ~]# docker run -itd --name llfff centos /bin/bash
4addc25e1fbb6a981535b14e9cef0bb73f4a8c118b358caaf9ed12b079b7dc25
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4addc25e1fbb centos "/bin/bash" 8 seconds ago Up 5 seconds llfff
在容器里面安装httpd服务
[root@localhost ~]# docker exec -it llfff /bin/bash
[root@4addc25e1fbb /]# yum install httpd net-tools -y
导成镜像,再使用镜像创建容器并指定端口映射
[root@localhost ~]# docker commit -m "install http" -a"liufengfeng" eefb35f3589a liufenger
[root@localhost ~]# docker run -it -p 6666:80 2f034a49a60b /bin/bash
[root@ba0217b5ad96 /]# httpd -k start
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.6. Set the 'ServerName' directive globally to suppress this message
[root@ba0217b5ad96 /]# netstat -ntpl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 15/httpd
[root@localhost ~]# docker start ba0217b5ad96
ba0217b5ad96
[root@localhost ~]# docker exec -it ba0217b5ad96 /bin/bash
[root@ba0217b5ad96 /]# vi /var/www/html/1.html
[root@ba0217b5ad96 /]# cat /var/www/html/1.html
liufengshige
haoren
用浏览器输入192.168.200.69:6666/1.html
可以看到编辑的内容
给默认网桥设置网段
[root@localhost ~]# docker run -it --name liufengzi --net=bridge 300e315adb2f /bin/bash
[root@d2bc16e54199 /]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
16: eth0@if17: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0
valid_lft forever preferred_lft forever
[root@localhost ~]# vi /etc/docker/daemon.json添加
bip": "192.168.5.1/24"
[root@localhost ~]# docker start liufengzi
liufengzi
[root@localhost ~]# docker exec -it liufengzi ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
18: eth0@if19: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:c0:a8:05:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 192.168.5.2/24 brd 192.168.5.255 scope global eth0
valid_lft forever preferred_lft forever