Docker(六):Docker 网络

初识Docker0

    使用ip addr linux命令查看当前服务器网络状态

ip addr

     注意:当服务器中已存在docker环境,那么服务器就会自动分配一个docker0地址

docker network ls查看当前docker 网络信息
通过docker network inspect 5a008c015cac查看docker0元数据信息

    查看容器内部网络

查看容器内网络

     测试linux本地访问容器

docker0和容器属于同一网段,可以访问

     运行一个容器后再次查看本地网络状态

再次查看服务器当前网络状态

     从上面可以得出docker每次启动一个容器,docker会为docker容器分配一对网络,如上图261->262,其中采用的是veth-pair技术,它是属于一对虚拟设备接口,成对出现,实现了各个虚拟网络设备的连接访问。

    再启动一个容器后,进行两者连接访问测试

容器间访问成功

    容器间访问原理

容器间访问原理图

     结论:两个tomcat容器公用一个路由器docker0,在所有容器不指定网络的情况下,docker0会给容器分配默认IP(分配的ip个数取决于网络类型设置,比如局域网255.255.0.1/16就可以分配2的16次方-2个子网)

docker使用docker0桥接且采用veth技术进行容器间访问

 注意:docker中网络接口都是虚拟的(因为虚拟传输效率高),一旦容器删除,对应的网络也会删除

docker0存在局限性:不支持通过容器名访问连接

    扩展 --link(可支持通过容器名访问连接)

--link实现容器名访问连接

--link本质就是在host文件中增加了需要的网络信息

 注意:通过--link只支持单向添加,而不能互相都可以访问

结论:实际企业项目开发通常采用自定义网络(我司就是采用自定义网络实现docker容器互联!!!),而不会使用docker0

自定义网络(容器互联!!!)

     查看当前网络信息

Name栏位代表网络模式

     创建自定义的网络

自定义网络

     查看创建的网络信息

自定义网络详细信息

     自定义的网络中创建容器

自定义网络桥接容器

     再次查看自定义网络信息

已包含创建的容器网络信息

     测试连接

自定义网络可实现ip和容器名访问连接

网络连通

如何实现tomcat-01访问tomcat-net-01?

     解决方案

容器连接到另一个网络
将容器加入到了另一个网段中

         测试连通成功

实现了不同网段之间容器的连通

当需要跨网络(不同网段)操作,我们可以使用docker network connect  xxxxx xxx连通!

实战之部署Redis集群

redis集群

     创建网络以及redis

创建网络以及redis

      依次创建6个redis

redis-6

     创建集群

创建集群

     验证集群创建成功

集群创建成功

说明:集群搭建成功,若Master宕机,则对应绑定的Slave则会升级为Master继续服务,实现服务高可用!

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 如果你使用的是Ubuntu系统,离线安装docker后没有docker组,可以按照以下步骤手动创建docker组: 1. 打开终端,使用以下命令创建docker组: ``` sudo groupadd docker ``` 2. 然后将当前用户添加到docker组中: ``` sudo usermod -aG docker $USER ``` 3. 最后重启docker服务,以使更改生效: ``` sudo service docker restart ``` 现在你应该可以通过在终端中输入`docker ps`命令来检查docker是否已经安装成功并可以正常工作了。 ### 回答2: 离线安装Docker是指在没有联网的情况下安装Docker软件。在进行离线安装时,可能会出现没有创建Docker组的情况。 Docker组是一个用于授权Docker命令的用户组。正常情况下,在安装Docker后系统会自动创建Docker组,并将当前用户加入该组,以便允许用户直接执行Docker命令,而无需使用sudo。 如果在离线安装过程中没有创建Docker组,可以按以下步骤手动创建: 1. 打开终端,并使用root权限登录系统。 2. 使用以下命令创建Docker组: ``` groupadd docker ``` 3. 查看系统中已有的用户及其所属组。使用以下命令: ``` cat /etc/passwd | cut -d":" -f1,4 ``` 在输出中找到当前用户的用户名和组ID。 4. 使用以下命令将当前用户加入Docker组(将username替换为当前用户的用户名,GID替换为上一步中查到的Docker组ID): ``` usermod -aG docker username ``` 5. 最后,使用以下命令使改动生效: ``` newgrp docker ``` 以上步骤将创建Docker组并将当前用户加入该组。此后,重新启动终端,即可在离线安装Docker后使用Docker命令,无需使用sudo,并可以正常使用Docker功能。 ### 回答3: 在离线安装Docker后没有docker组的情况下,可以按照以下步骤来创建docker组: 1. 首先,使用管理员账户登录到系统中。 2. 打开终端或命令提示符,运行以下命令以创建docker组: ``` sudo groupadd docker ``` 3. 创建docker组后,我们需要将当前用户添加到docker组中。运行以下命令将当前用户添加到docker组: ``` sudo usermod -aG docker $USER ``` 4. 接下来,需要重新登录或重新启动计算机以使更改生效。 5. 重新登录后,您可以通过运行以下命令来验证docker组是否成功创建: ``` groups ``` 6. 如果命令的输出中包含docker组,则表示已成功创建并添加到docker组。 值得注意的是,在某些发行版或操作系统版本中,docker组的名称可能与上述示例不同。因此,您可以通过查看`/etc/group`文件来确认实际创建的组名。找到包含docker的行,确保用户已正确添加到该组中。 通过按照上述步骤,您应该能够在离线安装Docker后成功创建并添加到docker组中。这将使您可以以非root用户的身份运行docker命令,并获得相应的权限。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值