Docker Compose
Docker Compose
用途
服务 (service):一个应用容器,实际上可以运行多个相同镜像的实例。
项目 (project):由一组关联的应用容器组成的一个完整业务单元。
Compose 的默认管理对象是项目,通过子命令对项目中的一组容器进行便捷地生命周期管理。
docker compose就是用来对docker容器集群进行快速编排,和k8s/swarm的区别就是docker-compose只能管理本地服务器的容器,而k8s/swarm能跨服务器进行管理且功能更加强大。
用法
下载发布包
下载docker-compose:到github,下载对应版本的发布包。在linux可以使用命令(注意将地址改成自己的版本):
curl -L https://github.com/docker/compose/releases/download/1.24.0-rc1/docker-compose-Linux-x86_64> /usr/local/bin/docker-compose
下载到/usr/local/bin/,docker-compose就是执行文件,加上执行权限后即可使用
编写docker-compose.yaml
docker-compose.yaml是默认的文件名,可以改但最好建议别改
docker-compose.yaml语法
示例:
version: '3'
services:
admin:
restart: always
image: tomcat
container_name: myshop-admin
ports:
- 8080:8080
volumes:
- /usr/local/docker/myshop-artifacts/admin:/usr/local/tomcat/webapps/ROOT
mysql:
restart: always
image: mysql:5.7.22
container_name: myshop-mysql
ports:
- 3307:3306
environment:
TZ: Asia/Shanghai
MYSQL_ROOT_PASSWORD: 123456
command:
--character-set-server=utf8m64
--collation-server=utf8m64_general_ci
--explicit_defaults_for_timestamp=true
--lower_case_table_names=1
--max_allowed_packet=128M
--sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO"
volumes:
- mysql-data:/var/lib/mysql
volumes:
mysql-data:
#不写就是默认数据卷,位置就在/var/lib/docker/volumes下
执行docker-compose.yaml
在docker-compose.yaml目录下执行命令:docker-compose up
即自动开始构建拉取镜像生成容器,-d守护态运行(这里在docker-compose.yaml相同目录执行,其实就是和dockerfile 上下文一样的意思,或者使用docker-compose -f 路径来指定执行)
docker-compose down 停止,会自动删除容器
docker-compose logs 查看日志,-f实时监听日志输出
docker-compose logs 容器名
本博客为Swagger-Ranger的笔记分享,文中源码地址: https://github.com/Swagger-Ranger
欢迎交流指正,如有侵权请联系作者确认删除: liufei32@outlook.com
posted on 2019-04-08 13:43 Swagger-Ranger 阅读(340) 评论(0) 编辑 收藏 举报