配置(初始化)docker swarm

docker swarm init --advertise-addr=本机IP地址 #指定其他节点用来连接到当前管理节点的IP和端口
docker-swarm 初始化时会创建一个类型为overlay的网络
初始化后分别会出现如何添加manager节点和worker节点的提示
image-asmf.png

查看swarm节点

docker node ls
image-vena.png

这里的ID是node-id,复制的时候不要复制到 ,只用复制6grp8...3ad就行

查看docker网络信息

docker network ls
image-fzsa.png

查看当前swarm状态和信息

docker info

节点的添加

docker swarm join-token worker #在manager节点执行,可以作为worker节点加入集群
复制以下内容在其他两台worker主机 上执行 即可将执行的主机 以worker 权限添加到doker-swarm 集群中
image-huaf.png

image-mxrr.png
image-yhfw.png
image-mmtp.png

docker swarm join-token manager #在manager节点执行,可以作为manager节点加入集群
复制以下内容在其他两台worker主机 上执行 即可将执行的主机 以manager 权限添加到doker-swarm 集群中
image-gazc.png

节点权限提升/降低

docker node promote slave1 #提高slave1节点的权限
image-rktl.png
docker node demote slave1 #降低slave1节点的权限
image-nrmr.png

节点脱离集群

docker swarm leave #想要那个节点脱离集群就在那个节点下执行此命令
image-ibmr.png
image-jkwn.png
常用docker swarm leave --force#退出manager节点,manager节点只能强制退出并且manager退出后意味着整个swarm将不复存在!

删除已经脱离集群的节点

docker node rm slave2 #删除已经脱离集群的slave节点,如果是多个manager节点中的其中一个节点需要先将节点降为worker节点才能删除!
image-sdba.png

为节点添加/修改/删除标签

docker node update --label-add <label-name>=<label-value> <node-name> #添加标签
image-tirw.png
docker node update --label-add <label-name>=<new-label-value> <node-name> #修改标签
image-fvdv.png
docker node update --label-rm <label-name> <node-name> #删除标签
image-bleq.png

查看节点标签及详细信息

docker node inspect <node-name>

查看服务详细信息

docker service inspect <service-name>

就是在显示容器列表的命令后面加上--no-trunc,大概是不省略的意思

docker ps -a --no-trunc
docker service ps --no-trunc

复制容器内的文件到本机

将a288697容器内的/opt/demo1.txt文件复制到本机/root/目录下
docker cp a288697:/opt/demo1.txt /root/

从主机复制文件到容器内

将本机/root/demo2.txt文件复制到a288697容器内的/opt/目录下
docker cp /root/demo2.txt a288697:/opt/

删除标签为none的docker镜像

docker rmi $(docker images | grep '<none>' | awk '{ print $3 }')

查看容器所在宿主机对应的/var/lib/docker/overlay2是哪个

docker inspect -f '{{.GraphDriver.Data.MergedDir}}' <容器名>

看容器是否设置了自动重启策略

docker container inspect --format='{{.HostConfig.RestartPolicy.Name}}' <容器名>

更新正在运行的容器为自动重启

docker update --restart=always <容器id>