安装环境:centos 7.5(1804)最小化安装
一、基本操作
- 安装依赖
rpm -Uvh *.rpm --nodeps --force
yum install libcgroup
rpm -ivh docker-ce-18.03.0.ce-1.el7.centos.x86_64.rpm
- 启动docker服务
systemctl enable docker
systemctl start docker
- 导入本地镜像
docker load < tomcat.tar
- 导出本地镜像
docker save -o /本地路径image.tar image文件
- 删除镜像
docker rmi imageID
- 启动镜像
docker run -p 80:8080 -d --name 启动的容器名称 imageID
- 查看启动容器
docker ps
- 进入容器后台
docker exec -it 容器ID /bin/bash
- 停止容器
docker stop 容器ID
- 修改镜像名称和版本
docker tag 镜像ID 镜像名称:版本
二、创建swarm集群
(1)修改hosts文件添加主机
(2)关闭防火墙
(3)docker swarm init --advertise-addr X.X.X.X 主节点执行同时生成token需要在work节点执行
(4)docker swarm join --token X work节点执行命令
(5)docker node ls 查看集群node
(6)docker node update --availability drain node139 将node139节点下线
(7)docker node update --availability active node139 将node139节点上线
(7.1)docker node promote nodename 节点升级
(7.2)docker node demote nodename 节点降级
(7.3)docker swarm leave 普通节点离开集群
(7.4) docker run -it -v /home/dock/Downloads:/usr/Downloads ubuntu64 /bin/bash 挂载本地目录
(8)docker node rm --force node139 删除node139节点
(9)docker network create --driver overlay my-network 创建名称为my-network overlay类型的网络
(10)docker service create --replicas 2 --network my-network --name my-web nginx 创建一个server 并把my-network挂在上面
(11)创建yml文件
(12)docker stack deploy -c X.yml 服务名称 启动服务
(13)docker node promote 工作节点主机名1 管理节点:赋值其他工作节点为管理节点
(14)docker swarm init --force-new-cluster 如果swarm失去法定人数,swarm不能自动恢复,工作节点上的任务继续运行,不受影响,但无法执行管理任务,包括扩展或更新服务,加入或删除节点。恢复的最佳方式是将丢失的leader节点重新联机。如果不可能,唯一方法是使用—force-newcluster管理节点的操作,这将去除本机之外的所有管理器身份。
命令:
swarm join-token :可以查看或更换join token。
docker swarm join-token worker:查看加入woker的命令。
docker swarm join-token manager:查看加入manager的命令
docker swarm join-token --rotate worker:重置woker的Token。
docker swarm join-token -q worker:仅打印Token。
若要提升一个或一组节点,从manager节点运行docker node promote:
docker node promote node-1要降级一个或一组节点,从manager节点运行docker node demote:
docker node demote node-1脱离集群
在node-1节点执行
docker swarm leave
节点离开群集后,可以在manager点上运行docker节点rm命令,将节点从节点列表中删除。
docker node rm node-1设置manager节点的状态设为Drain
docker node update --availability drain node-1
/etc/docker/daemon.json
[root@master ~]# /etc/docker/deamon.json
{
"registry-mirrors": ["https://registry.docker-cn.com"],
"graph": "/data/lib/docker",
"bip": "172.16.0.1/24"
}
//registry-mirrors 仓库地址,这里修改为国内的官方加速地址
//graph 镜像、容器的存储路径,默认是/var/lib/docker
//bip 容器的IP网段