Docker swarm 常用的命令集合
Docker Swarm 核心操作摘要 本文总结了Docker Swarm集群管理的核心操作命令,包括: 集群初始化(docker swarm init)与节点加入(join token) 服务部署(docker service create)与扩缩容(scale) 节点管理(promote/drain)与资源限制(CPU/Memory) 网络配置(overlay)与存储管理(volume/sec
·
#docker swarm#
# 初始化单节点Swarm docker swarm init # 部署测试服务 docker service create --name web --publish 8080:80 --replicas 3 nginx:alpine
# Manager节点初始化(指定IP) docker swarm init --advertise-addr 192.168.1.100 # 获取加入令牌 MANAGER_TOKEN=$(docker swarm join-token -q manager) WORKER_TOKEN=$(docker swarm join-token -q worker) # Worker节点加入 docker swarm join --token $WORKER_TOKEN 192.168.1.100:2377
# 查看节点状态 docker node ls # 提升Worker为Manager docker node promote worker-node1 # 排空节点(停止新任务分配) docker node update --availability drain node-2
# 创建服务 docker service create \ --name redis \ --replicas 3 \ --publish published=6379,target=6379 \ --limit-cpu 1 \ redis:6-alpine # 查看服务列表 docker service ls # 扩缩容服务 docker service scale redis=5 # 删除服务 docker service rm redis
# 服务更新策略 docker service update \ --image redis:7-alpine \ --update-parallelism 2 \ --update-delay 10s \ --update-failure-action rollback \ --rollback-parallelism 1 \ --rollback-delay 5s \ redis
# 每个节点运行一个监控代理 docker service create \ --mode global \ --name node-exporter \ --mount type=bind,source=/proc,target=/host/proc \ prom/node-exporter
# 创建自定义Overlay网络 docker network create -d overlay \ --subnet 10.1.0.0/24 \ --gateway 10.1.0.1 \ --opt encrypted \ my-overlay # 服务使用自定义网络 docker service create \ --name api \ --network my-overlay \ --network ingress \ --publish 8080:80 \ my-api:latest
# 创建命名卷 docker volume create app-data # 服务使用卷 docker service create \ --name db \ --mount source=app-data,target=/var/lib/mysql \ --replicas 3 \ mysql:8.0
# 创建密钥 echo "db_password" | docker secret create db_pass - # 服务使用密钥 docker service create \ --name db \ --secret db_pass \ -e MYSQL_ROOT_PASSWORD_FILE=/run/secrets/db_pass \ mysql:8.0
# 创建配置 docker config create nginx.conf ./nginx.conf # 服务使用配置 docker service create \ --name web \ --config source=nginx.conf,target=/etc/nginx/nginx.conf \ nginx:alpine
# 部署全局监控 docker service create --mode global \ --name cadvisor \ --mount type=bind,source=/,target=/rootfs,readonly=true \ --mount type=bind,source=/var/run,target=/var/run \ google/cadvisor:latest
# 资源限制策略 docker service create \ --name api \ --reserve-cpu 0.5 \ --reserve-memory 256M \ --limit-cpu 2 \ --limit-memory 1G \ my-api:v1
# 备份Swarm状态 docker swarm init --force-new-cluster --advertise-addr 192.168.1.100 # 恢复节点 docker node update --availability active node-2
# 查看服务详情 docker service inspect --pretty web # 查看服务日志 docker service logs -f web # 查看容器状态 docker service ps web
# 检查网络连通性 docker exec -it <container> ping <target> # 检查DNS解析 docker exec -it <container> nslookup service_name
# 查看节点详情 docker node inspect <node_id> --pretty # 检查节点资源 docker node ps <node_id>
# 创建v1版本 docker service create --name app --replicas 5 my-app:v1 # 逐步替换为v2 docker service update \ --image my-app:v2 \ --update-parallelism 1 \ --update-delay 30s \ app
# 安装自动扩缩组件 docker plugin install --alias scaler docker/scale # 设置扩缩规则 docker service scale \ --min 2 \ --max 10 \ --step 1 \ --scale-on-cpu 80 \ web
# .gitlab-ci.yml 示例 deploy: stage: deploy script: - docker stack deploy -c docker-compose.prod.yml myapp only: - master
更多推荐
所有评论(0)