1.docker-compose简介
实现docker容器集群的快速编排。管理分成三层:工程(project)、服务(service)、容器(container)
没有解决负载均衡的问题,因此需要借助其它工具实现服务发现及负载均衡,比如 Consul
工程配置文件默认文件docker-compose.yml,也可自定义(通过环境变量COMPOSE_FILE或-f参数自定义)
2.compose部署和执行
Docker Compose 环境安装:(参考链接:https://www.cnblogs.com/ponyton/p/17075802.html)
网站:https://github.com/docker/compose/releases 下载 docker-compose-linux-x86_64
mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose --version
docker-compose执行:
docker-compose -f docker-compose.yml up -d
// -f, --file FILE :使用特定的 compose 模板文件,默认为 docker-compose.yml
// -p, --project-name NAME :指定项目名称,默认使用目录名称
// -d :在后台运行
docker ps -a
cd /opt/compose_nginx/ && docker-compose ps #必须在docker-compose.yml所在目录执行此命令
3.docker-compose配置常用字段
build: 指定 Dockerfile 文件名,要指定Dockerfile文件需要在build标签的子级标签中使用dockerfile标签指定
dockerfile: 构建镜像上下文路径
context: 可以是 dockerfile 的路径,或者是指向 git 仓库的 url 地址
image: 指定镜像
command: 执行命令,覆盖默认命令
container name: 指定容器名称,由于容器名称是唯一的,如果指定自定义名称,则无法 scale
deploy: 指定部署和运行服务相关配置,只能在 Swarm 模式使用
environment: 添加环境变量
networks: 加入网络
ports: 暴露容器端口,与 -p 相同,但端口不能低于 60
volumes: 挂载宿主机路径或命令卷
hostname: 容器主机名
restart: 重启策略,默认 no,always,no-failure,unless-stoped
4.常用命令
字段 描述
build: 重新构建服务
ps: 列出容器
up: 创建和启动容器
exec: 在容器里面执行命令
scale: 指定一个服务容器启动数量
top: 显示容器进程
logs: 查看容器输出
down: 删除容器、网络、数据卷和镜像
stop/start/restart: 停止/启动/重启服务
5.docker-compose例子(编写) 命令使用参考例子:http://www.taodudu.cc/news/show-3833881.html?action=onClick
参考链接:https://www.cnblogs.com/dreamer-fish/p/15317058.html
#使用指定的docker-compose文件启动,如不指定则使用docker-compose.yml文件
docker-compose -f docker-compose-n01.yml up -d # -d表示后台启动
#查看docker-compose-n01.yml配置文件下运行的所有容器
docker-compose -f docker-compose-n01.yml ps
#查看配置文件下运行的容器服务web_nginx(yml文件中定义的service)
docker-compose -f docker-compose-n01.yml ps web_nginx
#让配置文件下容器服务web_nginx运行命令“hostname”
docker-compose -f docker-compose-n01.yml run web_nginx hostname