一般的项目都不只用到一个应用,当项目中有多个应用需要被部署,并且之间还存在关系时,一个个去部署非常麻烦,所以需要使用docker compose来进行统一编排部署。
本文包含:
- Linux下载安装docker compose
- 编写docker-compose.yml文件
- docker-compose常用命令
Linux下载安装docker compose
下载docker-compose文件
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
添加可执行权限
sudo chmod +x /usr/local/bin/docker-compose
检查是否成功安装
docker-compose --version
编写docker-compose.yml文件
编写docker-compose文件不难,可以简单看做是写一个python格式的配置文件。本篇文章不写大而全的内容,更多的参数可以查看https://www.cnblogs.com/wutao666/p/11332186.html
version: "3.0"
services:
# 服务名称
nginx:
#镜像名称
image: nginx
#启动后的容器名称
container_name: nginx
#映射宿主机和容器端口
ports:
#80
- 80:80
#ssl默认端口
- 443:443
#test1端口
- 8088:8088
#test2端口
- 8089:8089
#设置数据卷用于配置
volumes:
- nginx-vol:/etc/nginx
# networks:
# smartvideo-bridge:
# aliases:
# - nginx
#链接test1,test2应用,可以直接在nginx.conf使用作为地址
links:
- test1:test1
- test2:test2
#设置重新启动为always
restart: always
redis:
image: redis
container_name: redis
ports:
- 6379:6379
#命令配置redis密码
command: redis-server --requirepass yourpassword
# networks:
# smartvideo-bridge:
# aliases:
# - redis
restart: always
mysql:
container_name: mysql
image: mysql
ports:
- 3306:3306
environment:
MYSQL_ROOT_PASSWORD: 123456
volumes:
- mysql-data-vol:/var/lib/mysql
- mysql-conf-vol:/etc/mysql/conf.d
# networks:
# smartvideo-bridge:
# aliases:
# - mysql
# links:
# - test1
restart: always
test1:
image: alexwillbegood/test1
container_name: test1
links:
- mysql:mysql
- redis:redis
volumes:
- test1-vol:/usr/share/nginx/html
# networks:
# smartvideo-bridge:
# aliases:
# - test1
restart: always
test2:
image: alexwillbegood/test2
container_name: test2
links:
- mysql:mysql
- redis:redis
volumes:
- test2-vol:/usr/share/nginx/html
# networks:
# smartvideo-bridge:
# aliases:
# - test2
restart: always
#数据卷
volumes:
nginx-vol:
mysql-data-vol:
mysql-config-vol:
test1-vol:
test2-vol:
# networks:
# smartvideo-bridge:
docker-compose常用命令
docker-compose pull #拉取文件中涉及的所有镜像,通常情况下,会使用 -d 参数令应用在后台启动
docker-compose up #用于部署一个 Compose 应用
docker-compose stop #停止 Compose 应用相关的所有容器,但不会删除它们
docker-compose down #停止并删除运行中的 Compose 应用
docker-compose rm #用于删除已停止的 Compose 应用。它会删除容器和网络,但是不会删除卷和镜像。
docker-compose restart #重启已停止的 Compose 应用
docker-compose ps #用于列出 Compose 应用中的各个容器。