Docker-compose的作用是将一组相互依赖的容器进行统一的管理,一次性启动,而非一个一个的启动。
安装docker-compose
1. curl安装
curl -L https://github.com/docker/compose/releases/download/1.17.1/docker-compose-uname -s
-uname -m
> /usr/local/bin/docker-compose
2.增加可执行权限
chmod +x /usr/local/bin/docker-compose
3.查看版本
docker-compose version
运行docker-compose
1.创建docker-compose.yaml文件,通常我创建在/home/docker/compose下
version: '3'
services:
nginx:
container_name: my-nginx
image: nginx:1.9.7
links: //这里相当于给tomcat起了个别名tom,可以在nginx配置文件中直接使用
- tomcat:tom
restart: always
ports:
- 80:81
- 443:443
volumes:
- /home/docker/nginx:/etc/nginx/conf.d
depends_on:
- tomcat
mysql:
container_name: v-mysql
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: root
ports:
- "3306:3306"
restart: always
tomcat:
image: test-mvc:zc
restart: always
volumes:
- /webapps:/usr/local/tomcat/webapps
depends_on:
- mysql
2.启动docker-compose
在docker-compose.yaml文件同目录下
创建并启动容器:docker-compose up -d --scale 服务名=数字
---------- d 表示后台运行,scale 是表示对应的服务同时启动几个容器
停止并删除容器: docker-compose down
---------- 会停掉容器,并删除掉容器。如果不希望删除容器,请使用 stop
例子
docker-compose up -d --scale tomcat=3 //启动容器,并将tomcat服务容器启动3个
docker-compose down
3.docker-compose.yaml文件语法
version: '3':
表示使用第三代语法
services:
表示 compose 需要启动的服务
container_name:
容器名称
environment:
容器环境变量
ports:
对外开放的端口
restart: always
如果服务启动不成功一直尝试。
volumes:
加载本地目录到容器目标路径
depends_on:
依赖服务,先启动 depends_on 服务
command: mvn clean spring-boot:run :
表示以这个命令来启动项目