常用 Docker 容器

在开发过程中,常常会使用到 mariadb, redis, rabbitmq 等通用组件,这里使用 docker-compose 管理,方便本地调试。

这里使用 docker-compose 管理,通过域名来访问公共组件。这种方式的好处是跟外界网络无关,不用关心IP变化。需要注意的是服务和公共组件需要使用相同的docker 网络。

创建通用网络

由于docker-compose 默认网络是 projectname]_default 这种形式,即使指定了名字,docker-compose也会自动加上 projectname_不适合跨项目。因此这里先在定义一个网络。

1
docker network create dev

创建通用容器

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
version: '3'

services:
mariadb:
restart: unless-stopped
image: mariadb:latest
container_name: mariadb
ports:
- 3306:3306
environment:
MYSQL_ROOT_PASSWORD: "your_pwd"

rabbitmq:
restart: unless-stopped
image: rabbitmq:latest
container_name: rabbitmq
ports:
- 15672:15672
- 5672:5672

redis:
restart: unless-stopped
image: redis:latest
container_name: redis
ports:
- 6379:6379

networks:
default:
external:
name: my-pre-existing-network

docker-compose 命令

1
2
3
4
5
# 后台启动容器
docker-compose up -d

# 停止容器
docker-compose stop

参考文献

[1] https://docs.docker.com/compose/networking/