搭建docker服务和创建swarm集群

安装环境: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网段

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容