第7章 容器网络

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

       

      

                                                                                                                                                                                                                                                                                                                                                                                                                                        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值