2.docker网络模式

一、数据卷概念

作用:主要是实现宿主机和容器之间的文件共享。
数据卷必须在容器启动的时候就要指定。

二、数据卷实现方法

-v参数

-v 宿主机目录:容器目录

例子:如果目录不存在,会自动创建目录

[root@oracle ~]# docker run -d -p 81:80 -v /data:/data --name test2 nginx:latest

#创建测试文件
[root@oracle ~]# cd /data/
[root@oracle data]# echo "123" > test

#进入容器验证
[root@oracle ~]# docker exec -it test2 bash
root@fa36ada7afaf:/# cd data/
root@fa36ada7afaf:/data# cat test 
123

三、docker网络

1.桥接模式

当docker启动时,会自动在主机上创建一个docker 虚拟网桥,实际上是linux的一个bridge,可以理解为一个软件交换机。它会在 挂载到它的网口之间进行转发数据。

#首先查看docker0 网桥的地址
[root@oracle ~]# ifconfig docker0 |awk '/netmask/{print $2}'
172.17.0.1

#创建两个测试容器。 centos镜像在创建的时候必须要 指定it参数
[root@oracle ~]# docker run -d  -it --name c1 centos:latest
784db462d4545d55525c199a151bc811e86bbbbee683799257e597478ac5a9c9

[root@oracle ~]# docker run -d  -it --name c2 centos:latest
45da60cd84d57b6e28c45ecf69a0d0e0fc111d9d29317227de74d6d8ef465536
查看容器IP
[root@oracle ~]# docker inspect c1 |egrep -iw "ipaddress|gateway"
            "Gateway": "172.17.0.1",
            "IPAddress": "172.17.0.2",
                    "Gateway": "172.17.0.1",
                    "IPAddress": "172.17.0.2",
[root@oracle ~]# docker inspect c2 |egrep -iw "ipaddress|gateway"
            "Gateway": "172.17.0.1",
            "IPAddress": "172.17.0.3",
                    "Gateway": "172.17.0.1",
                    "IPAddress": "172.17.0.3",

查看网桥
[root@oracle ~]# docker network ls
NETWORK ID     NAME      DRIVER    SCOPE
18f296205444   bridge    bridge    local
7b615ca5682f   host      host      local
64cbd1887daa   none      null      local

2.自定义网桥

语法格式:
docker network create 网桥名字

例子:

[root@oracle ~]# docker network create mybridge
a8e9ba2e73beea91538227d7d5d7adf30fc4e4e00d674132e72e858da893cba5
[root@oracle ~]# docker network ls
NETWORK ID     NAME       DRIVER    SCOPE
18f296205444   bridge     bridge    local
7b615ca5682f   host       host      local
a8e9ba2e73be   mybridge   bridge    local
64cbd1887daa   none       null      local

创建的容器连接到此网桥。通过–network 网桥名 连接到对应的网桥上

[root@oracle ~]# docker run -d -it --name c3 --network mybridge centos:latest
[root@oracle ~]# docker run -d -it --name c4 --network mybridge centos:latest

查看网桥上连接容器.

[root@oracle ~]# docker inspect mybridge |grep -i name
        "Name": "mybridge",
                "Name": "c4",
                "Name": "c3",

自定义网桥这里有一个非常方便的地方,就是会将容器命和IP映射,也就是说在容器内可以通过容器命进行方访问

[root@oracle ~]# docker exec -it c3 bash
[root@2bfbe2d63baf /]# ping c4
PING c4 (172.18.0.3) 56(84) bytes of data.
64 bytes from c4.mybridge (172.18.0.3): icmp_seq=1 ttl=64 time=0.057 ms
64 bytes from c4.mybridge (172.18.0.3): icmp_seq=2 ttl=64 time=0.130 ms

删除自定义网桥
[root@oracle ~]# docker network  rm mybridge
mybridge

四、docker网络

主机模式(host)

容器使用宿主机的ip地址进行对外提供服务,本身没有IP地址。直接使用宿主机的端口

[root@oracle ~]# docker run -dit  --name n1 --network host nginx:latest
[root@oracle ~]# netstat -antp |grep 80
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      12871/nginx: master 

当使用host模式网络时,容器实际上继承了宿主机的IP地址。该模式比bridge模式更快(因为没有路由开销)
对网络性能要求比较高,可以使用该模式。,但是docker host上已经使用的端口就不能再用了,网络的隔离性不好。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值