docker官方文档(五)
一、准备工作
- 安装Docker 1.13或更高版本。
- 获取Docker Compose,如第3部分先决条件中所述。
- 按照第4部分先决条件中的描述获取Docker Machine。
- 阅读第1部分中的方向。
-
在第2部分中了解如何创建容器。
-
确保您的图像作为已部署的容器运行。运行此命令,在您的信息开槽
username,repo和tag:docker run -p 80:80 username/repo:tag,然后访问http://localhost/。 -
docker-compose.yml从第3部分获得一份方便的副本。 -
确保您在第4部分中设置的计算机正在运行并准备就绪。运行
docker-machine ls以验证这一点。如果计算机已停止,请运行docker-machine start myvm1以引导管理器,然后docker-machine start myvm2再引导该工作程序。 - 让你在第4部分中创建的swarm 运行并准备就绪。运行
docker-machine ssh myvm1 "docker node ls"以验证这一点。如果群集已启动,则两个节点都会报告ready状态。如果不是,重新初始化群和描述中加入工人设置您的群。
二、stack
stack:堆栈。堆栈是一组相互关联的服务,它们共享依赖关系,并且可以协调和缩放在一起。单个堆栈能够定义和协调整个应用程序的功能(尽管非常复杂的应用程序可能希望使用多个堆栈)
三、添加新服务并重新部署
1、在docker-compose.yml文件中增加visualizer服务,端口在8080,deploy仅仅在管理节点部署该应用。
version: "3"
services:
web:
# replace username/repo:tag with your name and image details
image: username/repo:tag
deploy:
replicas: 5
restart_policy:
condition: on-failure
resources:
limits:
cpus: "0.1"
memory: 50M
ports:
- "80:80"
networks:
- webnet
visualizer:
image: dockersamples/visualizer:stable
ports:
- "8080:8080"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
deploy:
placement:
constraints: [node.role == manager]
networks:
- webnet
networks:
webnet:
2、确保您的shell配置为与之通信dev
docker-machine ls docker-machine env dev eval $(docker-machine env dev)
3、docker stack deploy在管理器上重新运行该命令,并更新需要更新的任何服务:
docker stack deploy -c docker-compose.yml getstartedlab
4、看一下可视化工具
在浏览器的8080端口查看可视化应用,通过docker stack ps来验证服务
docker stack ps getstartedlab
四、添加redis数据库
1、修改yml文件,增加redis内容
version: "3"
services:
web:
# replace username/repo:tag with your name and image details
image: username/repo:tag
deploy:
replicas: 5
restart_policy:
condition: on-failure
resources:
limits:
cpus: "0.1"
memory: 50M
ports:
- "80:80"
networks:
- webnet
visualizer:
image: dockersamples/visualizer:stable
ports:
- "8080:8080"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
deploy:
placement:
constraints: [node.role == manager]
networks:
- webnet
redis:
image: redis
ports:
- "6379:6379"
volumes:
- "/home/docker/data:/data"
deploy:
placement:
constraints: [node.role == manager]
command: redis-server --appendonly yes
networks:
- webnet
networks:
webnet:
2、./data在管理器上创建一个目录:
docker-machine ssh dev "mkdir ./data"
3、确保您的shell配置为与之通信dev
4、再次部署
5、docker service ls查看服务运行情况
这样就同时部署了三个服务。
浙公网安备 33010602011771号