一、Docker网络管理
1、Dcoker默认网络管理
Docker安装时自动创建三种网络。客户端可以通过网络管理指令查看。
sudo docker network ls
下面通过一个示例来演示默认的birdge网络管理方式
(1)创建并启动容器
sudo run -itd --name=networktest ubuntu
(2)使用网络查看指令查看网络详情
sudo docker network inspect bridge
1.2自定义网络介绍
(1).Bridge networks
(2).Overlay network in swarm mode
(3).Custome network plguins
1.3自定义bridge网络
(1)创建自定义网络
sudo docker network create --driver bridge isolated_nw
(2)使用自定义网络启动容器
sudo docker run --network=isolated_nw -itd --name=nwtest busybox
(3)为容器添加网络管理
sudo docker network connect bridge nwtest
(4)断开容器网络连接
sudo docker network disconnect isolated_nw nwtest
(5)移除自定义网络
sudo docker network rm isolated_nw
执行命令后会返回网络名称
1.4容器之间的网络通信
(1)创建容器
【1】创建两个默认的bridge网络的容器
sudo docker run -itd --name=container1 busybox
sudo docker run -itd --name=container2 busybox
【2】创建一个使用自定义的isolated_nw 网络的容器
sudo docker run --network=isloated_nw -itd --name=container4 busybox
【3】为container2添加一个isolated-nw 网络连接
sudo docker network connect isolated_nw container2
(2)容器地址查看
首先进入container2容器
sudo docker attach container2
然后使用ifconfig命令查看
分别查看其余两个容器地址
(3)容器通信测试
进入容器1,ping容器4
失败,容器在不同网络环境下无法通信
然后进入容器2,用容器IP连接容器1容器4通信测试。
成功。
结论:不同容器必须在同一网络环境下通信。默认网络管理的容器可以用ip进行通信,无法用容器名称通信,自定义的可以。
二、Docker Swarm 集群
1.docker swarm使用
(1)环境搭建
准备三台Ubuntu,docker版本1.2以上,ip地址固定,TCP端口2377,7946,4789开放。
ip地址如下:
manger1:192.168.35.128
worker1:192.168.35.130
worker2:192.168.35.132
(2)创建docker swarm集群
【1】在manger1上创建docker swarm集群
sudo docker swarm init --advertise-addr 192.168.35.128
图中红框表示用来添加work节点命令
【2】在管理节点用docker node ls 查看
(3)向docker swarm 集群添加工作节点
【1】启动另外两台docker机器
执行2.1中红框命令
--token后的参数自己生成每个人不一样
【2】再次查看
(4)向docker swarm集群部署服务
sudo docker service create --replicas 1 --name helloworld alpine ping docer.com
(5)查看dockerswarm 集群的服务
【1】用sudo docker service ls查看
【2】查看具体详情
【3】查看运行和分配情况
6.更改docker swarm集群服务副本数量
sudo docekr scale helloworld=5
查看
7.删除服务
对于不需要的服务,使用 sudo docker service rm helloworld 进行删除,会返回服务名称
8.访问服务
【1】在管理节点上执行图中命令查看网络列表
【2】在管理节点上创建overlay的自定义网络。
sudo docker network create \
--driver overlay \
my-multi-host-network
【3】再次部署
sudo docker service create \
--network my-multi-host-network \
--name my-web \
--publish 8080:80 \
--replicas 2 \
nginx
【4】使用图示命令查看服务副本运行情况
【5】外界访问服务
打开浏览器使用任意一台机器节点IP急+8080进行服务访问
三、Volumes数据卷管理
1.数据卷的使用
【1】创建数据卷
docker volume create my-vol
【2】查看数据卷
docker volume ls
【3】核查数据卷
docker volume inspect my-vol
【4】删除数据卷
docker volume rm my-vol
删除成功后返回数据卷名称
2.启动容器并加载数据卷
【1】查看本机容器和数据卷
【2】确认本机docker文件系统中的容器和数据卷
【3】启动容器并挂载数据卷
sudo docker run -d \
-it \
--name devtest \
--mount source=myvol,target=/app \
busybox:latest
【4】再次查看
【5】检查容器详情
使用docker inspect 查看容器详情
【6】再次确认本机文件系统中的容器和数据卷
可以看出,新建的容器数据卷已自动生成在本地文件目录中。