docker.io和centos 输入命令的时候出现了,但是发现错误,不要慌,我的是小写,你们的可能是大写,如Docker.io或Centos
1、容器网络管理
1.1查看容器网络
##查看所有容器网络
[root@localhost ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
96056658f886 bridge bridge local
e2b376135488 host host local
202ee2cfb36d none null local
##通过-f参数添加了‘dirver=host’过滤条件
[root@localhost ~]# docker network ls -f 'driver=host'
NETWORK ID NAME DRIVER SCOPE
e2b376135488 host host local
##添加--no-trunc参数,以不缩略的形式列出了所有容器网络
[root@localhost ~]# docker network ls --no-trunc
NETWORK ID NAME DRIVER SCOPE
96056658f8869f048e4b73f7fec4e1ac607c66ac65a8fd1e78a84f395f1b4e8d bridge bridge local
e2b376135488eefdf503f5de7ce0abbb2a470794be2255be99733f19e0d4857e host host local
202ee2cfb36d9a81e4f9293fb8c196e068b44dbc975d731e93c6bf0a69b47225 none null local
##-q参数,列出了所有容器网络的ID号
[root@localhost ~]# docker network ls -q
96056658f886
e2b376135488
202ee2cfb36d
1.2、创建容器网络
##创建网络命令
[root@localhost ~]# docker network create -d bridge test-bridge
5c222d93d21300a4d76de8b91e5713bd22fbf9f044a88e2a419a27094687d72a
[root@localhost ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
96056658f886 bridge bridge local
e2b376135488 host host local
202ee2cfb36d none null local
5c222d93d213 test-bridge bridge local
1.3、删除容器网络
##查看容器网络
[root@localhost ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
87dc9b8094a7 bridge bridge local
e2b376135488 host host local
202ee2cfb36d none null local
5c222d93d213 test-bridge bridge local
##删除容器网络
[root@localhost ~]# docker network rm test-bridge
test-bridge
##查看是否删除
[root@localhost ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
87dc9b8094a7 bridge bridge local
e2b376135488 host host local
202ee2cfb36d none null local
1.4、容器网络详细信息
[root@localhost ~]# docker network inspect none
[
{
"Name": "none",
"Id": "202ee2cfb36d9a81e4f9293fb8c196e068b44dbc975d731e93c6bf0a69b47225",
"Created": "2024-09-06T06:26:26.544732419+08:00",
"Scope": "local",
"Driver": "null",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": null
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {},
"Options": {},
"Labels": {}
}
]
1.5、配置容器网络
##通过在容器中添加--network参数,指定容器host网络模式
[root@localhost ~]# docker run -it -d \
> --network=host \
> docker.io/centos /bin/bash
d1e99bce6ebe01c9b3f3ff077317cf012422d8aa4dfe2a34ef2d8a8c1f575545
##该命令过滤出容器网络模式为host的信息
[root@localhost ~]# docker inspect d1e | grep NetworkMode
"NetworkMode": "host",
##下面运行一个不指定网络模式的容器
[root@localhost ~]# docker run -it -d docker.io/centos /bin/bash
cf10639f747fffbbf6dd97849ae8cf0d1577f74279d6efd478d4882c040434b7
##该网络模式为默认bridge
[root@localhost ~]# docker inspect cf | grep NetworkMode
"NetworkMode": "bridge",
1.6、容器网络连接与断开
##创建一个容器
[root@localhost ~]# docker run -it -d \
> --network=host \
> docker.io/centos /bin/bash
cbb34bfd0b17f5fd34b635334a665c7b0f412af147454814fedf0c4d8018951a
##使用命令将容器与host网络断开
[root@localhost ~]# docker stop cbb
cbb
2、none网络
none网络就是没有网络,没有网络意味着安全性非常高
##创建一个容器并且网络设置为默认
[root@localhost ~]# docker run --rm -it \
> --name test-default \
> docker.io/centos
##在容器终端查看容器的ip地址
[root@ca3ead61a27f /]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
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
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
##测试是否能够连接外网
[root@ca3ead61a27f /]# ping -c 3 www.baidu.com
PING www.a.shifen.com (220.181.38.149) 56(84) bytes of data.
64 bytes from 220.181.38.149 (220.181.38.149): icmp_seq=1 ttl=127 time=63.3 ms
64 bytes from 220.181.38.149 (220.181.38.149): icmp_seq=2 ttl=127 time=68.1 ms
64 bytes from 220.181.38.149 (220.181.38.149): icmp_seq=3 ttl=127 time=64.4 ms
--- www.a.shifen.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2004ms
rtt min/avg/max/mdev = 63.294/65.263/68.068/2.047 ms
##在创建一个容器,网络设置为none模式
[root@localhost ~]# docker run -it \
> --name test-nonee \
> --network=none docker.io/centos
##查看IP只有本地回环地址
[root@51cc43638d3e /]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
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
##测试,没有网络
[root@51cc43638d3e /]# ping -c 3 www.baidu.com
ping: www.baidu.com: Name or service not known