Docker Swarm Mode 学习笔记 (部署服务)

使用 docker service 命令来管理 Swarm 集群中的服务,该命令只能在管理节点上执行。

新建服务

docker service create --replicas 3 -p 80:80 --name nginx nginx:latest

解释一下这条命令:

--replicas 3 : 任务数量

-p 80:80 :配置节点与容器端口映射

--name nginx :服务名称

nginx:latest: 镜像名与版本, 与启动容器一致

查看服务

查看当前 Swarm 集群运行的服务: docker service ls

查看单个服务详情: docker service ps 服务名

查看单个服务日志: docker service logs 服务名

删除服务

docker service rm 服务名

在 Swarm 集群中使用 compose 文件

docker-compose.yml 文件不仅仅可以用来编排,启动一组容器,也同样可以用来在 Swarm 集群中编排,启动多个服务。

例子:(注释很详细)

version: "3"

services:
    wordpress:												# 声明 wordpress 服务
        image: wordpress									 # 基于 wordpress 镜像
        ports:												# 配置服务与节点之间的端口映射
        	- 80:80
        networks:											# 设置使用的网络
        	- overlay
        environment:										# 设置环境变量
            WORDPRESS_DB_HOST: db:3306						  # 设置 wordpress 使用的数据库地址
            WORDPRESS_DB_USER: wordpress					  # 设置 wordpress 数据库访问用户
            WORDPRESS_DB_PASSWORD: wordpress				   # 设置 wordpress 数据库访问密码
        deploy:												# 设置服务发布模式
            mode: replicated								 # 每个工作节点都会运行3个服务
            replicas: 3   									 # 设置 3 个分片
    db:
        image: mysql
            networks:
                - overlay
            volumes:								  # 设置数据卷, 数据卷不会因为服务的移除而删除
                - db-data:/var/lib/mysql
            environment:
                MYSQL_ROOT_PASSWORD: somewordpress 		# 这里做的 mysql 数据库设置均置的相对应
                MYSQL_DATABASE: wordpress			   #  与 wordpress 服务中设置相匹配
                MYSQL_USER: wordpress
                MYSQL_PASSWORD: wordpress
            deploy:
                placement:								  # 服务发布条件
                    constraints: [node.role == manager]		# 只在管理节点上发布此服务
    visualizer:
        image: dockersamples/visualizer:stable
        ports:
        	- "8080:8080"
        stop_grace_period: 1m30s						# 在收到服务停止信号之后的 1分30秒后退出容器
        volumes:
        	- "/var/run/docker.sock:/var/run/docker.sock"
        deploy:
            placement:
            	constraints: [node.role == manager]			# 只在管理节点上发布此服务
volumes:
	db-data:											# 创建数据卷
networks:
	overlay:											# 创建网络

部署服务:

docker stack deploy -c docker-compose.yml wordpress

移除服务:

docker stack rm wordpress 此命令不会移除数据卷。

posted @ 2019-04-11 23:30  Mr·Raj  阅读(799)  评论(0编辑  收藏  举报