06-Docker-DockerCompose
banner 2020-08-06 21:44:11 docker-compose
# 简介
Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。
Compose 使用的三个步骤:
- 使用 Dockerfile 定义应用程序的环境。
- 使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。
- 最后,执行 docker-compose up 命令来启动并运行整个应用程序。
Compose具有用于管理应用程序整个生命周期的命令:
- 启动,停止和重建服务
- 查看正在运行的服务的状态
- 流运行服务的日志输出
- 在服务上运行一次性命令
重要概念
- 服务(service):一个应用容器,实际上可以运行多个相同镜像的实例。
- 项目(project) :由一组关联的应用容器组成的一个完整业务单元。
# 安装
运行以下命令以下载 Docker Compose 的当前稳定版本:
sudo curl -L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
1
2
3
2
3
卸载
sudo rm /usr/local/bin/docker-compose
1
# Docker-Compose管理MySQL和Tomcat
不要用制表符(tab键)
version: '3.1'
services:
mysql: # 服务名称
restart: always # 只要docker启动,就启动
image: mysql:5.7
container_name: mysql # 指定容器名称
ports:
- 3306:3306
environment:
MYSQL_ROOT_PASSWORD: root
TZ: Asia/Shanghai
volumes:
- ~/docker-mysql-tomcat/mysql/data:/var/lib/mysql
tomcat:
restart: always
image: tomcat:8.5.57-jdk8-corretto
container_name: tomcat
ports:
- 8081:8080
environment:
TZ: Asia/Shanghai
volumes:
- ~/docker-mysql-tomcat/tomcat/webapps:/usr/local/tomcat/webapps
- ~/docker-mysql-tomcat/tomcat/logs:/usr/local/tomcat/logs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# Docker-Compose常用命令
在使用docker-compose的命令时,默认会在当前目录下找
docker-compose.yml
文件
# 1. 基于docker-compose.yml启动容器
docker-compose up -d
1
# 2. 删除并关闭容器
docker-compose down
1
# 3. 开启|关闭|重启已经存在的由docker-compose管理的容器
docker-compose start|stop|restart
1
# 4. 查看由docker-compose管理的容器
docker-compose ps
1
# 5. 查看日志
docker-compose logs -f
1
# Docker-Compose配合Dockerfile使用
使用docker-compose.yml
文件以及Dockerfile
文件在生成自定义镜像的同时启动当前镜像,并且由docker-compose去管理容器
# docker-compose
version: '3.1'
services:
ssm:
restart: always
build: # 构建自定义镜像
context: ../ # 指定dockerfile文件的所在路径
dockerfile: Dockerfile # 指定Dockerfile文件名称
image: ssm:1.0.1
container_name: ssm
ports:
- 8082:8080
environment:
TZ: Asia/Shanghai
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# dockerfile
FROM tomcat:8.5.57-jdk8-corretto
COPY ssm.war /usr/local/tomcat/webapps
1
2
3
4
2
3
4
# 运行
#可以直接基于docker-compose.yml以及Dockerfile文件构建的自定义镜像
docker-compose up -d
# 如果自定义镜像不存在,会帮助我们构建出自定义镜像,如果自定义镜像已经存在,会直接运行这个自定义镜像
#重新构建自定义镜像
docker-compose build
#运行当前内容,并重新构建
docker-compose up -d --build
1
2
3
4
5
6
7
2
3
4
5
6
7
参考: