Docker基础(四)

四、Docker网络的管理
1、Docker容器的方式
1)Docker访问外网
Docker容器链接到宿主机的docker0网桥访问外网
默认自动将docker0网桥添加到docker容器中
2)容器和容器之间通信
需要管理员创建网桥
将不同的容器链接到网桥上实现容器和容器之间相互访问
3)外部网络访问容器
通过端口映射
或者同步docker宿主机网络配置实现通信
2、Docker容器网络通信的模式
1)bridge
默认容器访问外网通信使用
依赖docker0网桥
2)none
需要给容器创建的独立的网络命名空间
不会给创建的容器配置TCP/IP信息
3)container
容器和容器通信使用
容器需要共享容器名称空间,通过共享容器名称空间实现不同容器通信
4)host
容器内部网络和宿主机保持同步
3、配置Docker容器网络通信

1)配置创建的容器桥接网络通信,容器访问互联网使用,需要docker宿主机开启路由功能
[root@centos01 ~]# docker run -d --net=bridge --name centos01 hub.c.163.com/public/centos:6.7-tools
2)配置docker容器不需要链接到网络,容器无法通信
[root@centos01 ~]# docker run -d --net=none --name centos02 hub.c.163.com/public/centos:6.7-tools 
3)运行的容器和宿主机网络保持同步
[root@centos01 ~]# docker run -d --net=host --name centos03 hub.c.163.com/public/centos:6.7-tools

4、修改docker0网卡参数

1)停止docker服务
[root@centos01 ~]# systemctl stop docker
2)停止docker0网桥
[root@centos01 ~]# ip link set dev docker0 down
3)删除系统默认的docker0网桥
[root@centos01 ~]# brctl delbr docker0
4)创建新的网桥名字是docker0
[root@centos01 ~]# brctl addbr docker0
5)新的网桥docker0配置IP地址
[root@centos01 ~]# ip addr add 192.168.20.1/24 dev docker0
6)启动新创建的docker0网桥
[root@centos01 ~]# ip link set dev docker0 up
7)修改docker配置文件加载新的网桥docker0
[root@centos01 ~]# vim /etc/docker/daemon.json 
{"registry-mirrors":["
https://6kx4zyno.mirror.aliyuncs.com"]}     加速
{"bip":"192.168.20.1/24"}
8)启动docker服务
[root@centos01 ~]# systemctl start docker

5、Docker网络隔离
1)Docker网络隔离原理
需要管理创建网络空间名称
将不同的容器加载到不同的网络空间名称中实现隔离
默认不配置网络隔离默认给容器分配的docker网络空间名称、
2)Docker容器自带的网络空间名称类型
bridge:容器桥接到docker网桥上
host:容器同步docker宿主机的网络配置信息
none:不创建网络,docker容器不需要配置TCP/IP信息
3)查看docker默认的网络名称空间
[root@centos01 ~]# docker network ls
4)创建网络空间名称

[root@centos01 ~]# docker network create -d bridge lamp
[root@centos01 ~]# docker network create -d bridge lnmp
5)创建运行的容器添加到lamp的网络空间名称中隔离
[root@centos01 ~]# docker run -it -d --name centos01 --network=lamp hub.c.163.com/public/centos:6.7-tools 
6)创建运行的容器添加lnmp网络空间名称中隔离
[root@centos01 ~]# docker run -it -d --name centos02 --network=lnmp hub.c.163.com/public/centos:6.7-tools

6、配置网桥实现网络隔离
1)配置网桥实现网络隔离的目的
实现Docker宿主机的容器跨Docker宿主机的容器通信使用
2)配置网桥实现网络隔离原理
将物理网卡桥接到创建的网桥网卡上
给网桥网卡配置IP地址
创建容器加载网桥网卡实现docker宿主机容器跨docker宿主机容器通信
管理员管理docker宿主机通过网桥网卡进行远程管理
3)修改物理网卡配置信息桥接到网桥网卡br0

[root@centos01 ~]# cd /etc/sysconfig/network-scripts/
[root@centos01 network-scripts]# vim ifcfg-ens32
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
NAME=ens32
DEVICE=ens32
ONBOOT=yes
BRIDGE=br0
4)创建并生成br0网桥
[root@centos01 network-scripts]# cp ifcfg-ens32 ifcfg-br0
[root@centos01 network-scripts]# vim  ifcfg-br0 
TYPE=Bridge
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
NAME=br0
DEVICE=br0
ONBOOT=yes
IPADDR=192.168.100.10
NETMASK=255.255.255.0

5)重新启动docker容器宿主机网卡
[root@centos01 ~]# systemctl restart network
7、配置git下载网络管理工具

1)安装git
[root@centos01 ~]# yum -y install git
2)下载docker容器网络管理工具pipework
[root@centos01 ~]# git clone https://github.com/jpetazzo/pipework
3)优化管理命令
[root@centos01 ~]# cp pipework/pipework /usr/local/bin/
[root@centos01 ~]# chmod +x /usr/local/bin/pipework 
4)通过镜像运行容器
[root@centos01 ~]# docker run --name centos01 --net=none -d hub.c.163.com/public/centos:6.7-tools
5)给容器配置IP地址
[root@centos01 ~]# pipework br0 centos01 192.168.100.30/24
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Docker数据卷是一种持久化存储数据的方式,可以将主机上的目录或文件挂载到容器内部,实现数据的共享和持久化。在Docker基础实战教程四中,我们学习了如何创建和管理数据卷,包括使用命令行和Dockerfile创建数据卷、挂载数据卷到容器中、备份和恢复数据卷等操作。数据卷的使用可以方便地实现容器之间的数据共享和持久化,提高应用程序的可靠性和可维护性。 ### 回答2: Docker中的数据卷是一种可持久化存储数据的机制,它将宿主机的文件或目录映射到容器中,让容器中的数据得以保存到宿主机中,即使容器被删除,数据也能够被保留下来。数据卷的使用使得容器之间的数据共享和管理变得更加容易,是Docker的一个重要特性。 数据卷可以通过多种方式创建和管理,以下是一些基本的操作: 1. 创建数据卷 可以使用docker volume命令来创建一个数据卷,例如: ``` docker volume create my_data ``` 这将创建一个名为my_data的数据卷。 2. 挂载数据卷 可以在运行容器时将数据卷挂载到容器的指定目录。例如: ``` docker run -d -v my_data:/data nginx ``` 这将创建一个名为my_data的数据卷,并将其挂载到nginx容器中的/data目录。 3. 查看数据卷 可以使用docker volume ls命令来列出Docker中所有的数据卷,例如: ``` docker volume ls ``` 这将列出所有的数据卷,包括其名称和所在的路径。 4. 删除数据卷 可以使用docker volume rm命令来删除一个数据卷,例如: ``` docker volume rm my_data ``` 这将删除名为my_data的数据卷。 5. 备份数据卷 可以使用docker run命令来备份一个数据卷到宿主机上的指定路径,例如: ``` docker run --rm -v my_data:/data -v /backup:/backup busybox tar czf /backup/my_data.tar.gz /data ``` 这将备份my_data数据卷到/backup/my_data.tar.gz文件中。 以上是一些基本的数据卷操作。使用数据卷可以有效的管理容器中的数据,从而更好地利用Docker的特性。 ### 回答3: Docker是一个非常流行的容器化技术,它可以让我们快速构建、部署应用程序。在Docker中,数据卷是一个非常重要的概念,它可以让我们在容器之间共享数据,并且可以在容器之外进行备份和恢复。 在Docker中,我们可以通过两种方式来创建数据卷:容器内挂载和主机目录挂载。容器内挂载是将一个主机的目录挂载到一个容器中的指定路径,而主机目录挂载则是将一个容器中的数据挂载到主机上的指定路径。 对于容器内挂载,我们可以通过以下命令创建一个数据卷: ``` docker run -v /host/directory:/container/directory image ``` 这个命令将主机上的`/host/directory`目录挂载到容器中的`/container/directory`目录。通过这种方式,我们可以将主机上的数据共享给容器中的应用程序。 对于主机目录挂载,我们可以通过以下命令创建一个数据卷: ``` docker run -v mydata:/container/directory image ``` 这个命令将一个名为`mydata`的数据卷挂载到容器中的`/container/directory`目录。通过这种方式,我们可以将容器中的数据挂载到主机上,方便备份和恢复。 在使用Docker时,我们还需要注意数据卷的生命周期。如果容器被删除,与它关联的数据卷也会被删除。为了避免这种情况,我们可以使用`docker volume`命令来创建和管理数据卷。例如,我们可以使用以下命令创建一个数据卷: ``` docker volume create mydata ``` 这个命令将创建一个名为`mydata`的数据卷。通过这种方式创建的数据卷不会与任何容器关联,也不会被删除。 总之,数据卷是Docker中非常重要的一个概念,它可以让我们在容器之间共享数据,并且可以方便地备份和恢复数据。通过合理地使用数据卷,我们可以更好地管理和部署Docker容器。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值