Docker网络

Docker网络

在这里插入图片描述
docker 0 与容器之间是使用VETH对连通的,一组相互链接的虚拟接口,用于连接两个网络/名称空间,网络协议栈
同时docker 0 也是作为这个IP地址段的网关,可以定义访问规则以及内部服务使用的事宿主机的哪个端口

docker网络模式

共有四种网络模式:Host、container、 none、 bridge

host

  • 与宿主机共享网络名称空间/网络协议栈
    在这里插入图片描述

container

  • 多个容器之间共享一个network namespaces
    在这里插入图片描述

none

  • 自闭空间
    在这里插入图片描述

Bridge
默认模式 通过Veth对 连接容器与docker0 网桥,网桥分配给容器IP,同时docker 0 作为“局域网” 内容器的网关,最后和宿主机网卡进行通讯
在这里插入图片描述

自定义网络

查看网络列表
格式: docker network ls

[root@localhost ~]# docker network ls
NETWORK ID     NAME      DRIVER    SCOPE
a12c12412395   bridge    bridge    local
c784c7ad8979   host      host      local
507a0eb41c8e   none      null      local

注意:

使用docker run -itd --name test1 --network bridge --ip 172.17.0.10 centos:7 /bin/bash这条命令会报错

[root@localhost ~]# docker run -itd --name test1 --network bridge --ip 172.17.0.10 centos:7 /bin/bash
94c32a96691e60897a8deea0a0a4731f842c701970eb6cc0218961f789b0dede
docker: Error response from daemon: user specified IP address is supported on user defined networks only.

自定义网络固定IP

[root@localhost ~]# docker network create --subnet=172.18.0.0/16 mynetwork
ad27314d488786db2d2a90a20bf3d10bc6e4e501077f7c0d9423ad3a95d5c564
[root@localhost ~]# docker run -itd --name test2 --net mynetwork --ip 172.18.0.100 centos:7 /bin/bash
19e57b81978a037ea695edfd08f6c9f66a8fb24c697f73aea599c593a536fc7e
[root@localhost ~]# 

需要自行创建才能自定义网络,系统默认的IP地址段是一次分配的,不可自定义


暴露端口
随机端口

[root@localhost ~]# docker run -itd -P nginx:latest /bin/bash
ee49fe1756bedc10801fd52917643f614a0d00e55aa7ec03b1e81941a9923ab5
[root@localhost ~]# docker ps -a 
CONTAINER ID   IMAGE          COMMAND                  CREATED         STATUS         PORTS                                     NAMES
ee49fe1756be   nginx:latest   "/docker-entrypoint.…"   3 seconds ago   Up 2 seconds   0.0.0.0:49154->80/tcp, :::49154->80/tcp   awesome_northcutt
[root@localhost ~]# curl 127.0.0.1:49154
curl: (56) Recv failure: Connection reset by peer
[root@localhost ~]# docker exec -it ee49fe1756be /bin/bash
root@ee49fe1756be:/# nginx

在这里插入图片描述
在这里插入图片描述

指定端口

[root@localhost ~]# docker run -itd -p 333:80 nginx:latest /bin/bash
38ed094e28b177822321da31eb772e88e5faf4bbc71c1c527cd1c07291f5c44b
[root@localhost ~]# docker ps -a 
CONTAINER ID   IMAGE          COMMAND                  CREATED         STATUS        PORTS                                 NAMES
38ed094e28b1   nginx:latest   "/docker-entrypoint.…"   2 seconds ago   Up 1 second   0.0.0.0:333->80/tcp, :::333->80/tcp   angry_cohen
[root@localhost ~]# docker exec -it 38ed094e28b1 /bin/bash -c 'nginx'

在这里插入图片描述
在这里插入图片描述


进入容器内部没有systemctl命令
在这里插入图片描述

docker run -itd --name test3 --privileged=true centos:7 /sbin/init

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值