Docker Compose使用总结

Compose是一个定义和管理多容器的工具(非容器编排),使用Python语言编写。使用Compose配置文件描述多个容器应用的架构,比如使用什么镜像、数据卷、网络、映射端口等;然后一条命令管理所有服务,比如启动、停止、重启

Compose 中有两个重要的概念:

  • 服务 (service) :一个应用的容器,实际上可以包括若干运行相同镜像的容器实例。
  • 项目 (project) :由一组关联的应用容器组成的一个完整业务单元,在 docker-compose.yml 文件中定义。

一个项目可以由多个服务(容器)关联而成,Compose 面向项目进行管理,通过子命令对项目中的一组容器进行便捷地生命周期管理。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
version: '2'
services:
php:
container_name: pay_php
restart: always
image: registry.cn-shenzhen.aliyuncs.com/jingyou/currency:base
# image: registry.cn-shenzhen.aliyuncs.com/jingyou/php:swoole-45
volumes:
- ./code/currency-api2:/var/www/html
- ./config/certificate:/var/www/html/certificate
- ./config/openssl.cnf:/etc/ssl/openssl.cnf
- /var/www/html/.git
- /var/www/html/vendor
ports:
- "9502:9501"
db:
container_name: pay_db
restart: always
command: --default-authentication-plugin=mysql_native_password
image: mysql:8
ports:
- 26021:3306
environment:
MYSQL_DATABASE: hyperf
MYSQL_ALLOW_EMPTY_PASSWORD: 1
redis:
container_name: pay_redis
restart: always
image: redis:5
network:
default:
external: payapi
1
2
3
4
5
6
7
8
version: '3'
services:
consumer:
restart: always
container_name: sentry-go-log-consumer
build:
context: ./code
dockerfile: Dockerfile

常用命令

  • ps:列出所有运行容器
1
docker-compose ps
  • logs:查看服务日志输出
1
docker-compose logs
  • port:打印绑定的公共端口,下面命令可以输出 eureka 服务 8761 端口所绑定的公共端口
1
docker-compose port eureka 8761
  • build:构建或者重新构建服务
1
docker-compose build
  • start:启动指定服务已存在的容器
1
docker-compose start eureka
  • stop:停止已运行的服务的容器
1
docker-compose stop eureka
  • rm:删除指定服务的容器
1
docker-compose rm eureka
  • up:构建、启动容器
1
docker-compose up
  • kill:通过发送 SIGKILL 信号来停止指定服务的容器
1
docker-compose kill eureka
  • pull:下载服务镜像
  • scale:设置指定服务运气容器的个数,以 service=num 形式指定
1
docker-compose scale user=3 movie=3
  • run:在一个服务上执行一个命令
1
docker-compose run web bash
有用就打赏一下作者吧!