Skip to main content

Docker Compose

0x01 安装

https://github.com/docker/compose

github 下载安装

aria2c https://github.com/docker/compose/releases/xxxx
cp docker-compose-linux-x86_64 ~/.docker/cli-plugins/docker-compose

0x02 使用

# docker-compose up -d
# 新命令
docker compose up -d

参数

network

https://docs.docker.com/compose/networking/

quick start

在目录 mysapp下,通过 docker compose up启动服务,将默认创建一个名为 myapp_default的网络。

可以通过docker network ls查看

➜  ~ sudo docker network ls

NETWORK ID NAME DRIVER SCOPE
e3ffe522bdaa myapp_default· bridge local
连接

在同一个 docker compose文件中,可以直接通过service下的服务名直接连接。

例如:

services:
db:
image: postgres
ports:
- '8001:5432'
web:
build: .
ports:
- '8000:8000'
environment:
- POSTGRES_PORT=5432
- POSTGRES_HOST=db

web服务可以直接通过postgres://db:5432连接到`db·服务

创建别名

services:
db:
image: postgres
ports:
- '8001:5432'
web:
build: .
ports:
- '8000:8000'
links:
- 'db:database'
environment:
- POSTGRES_PORT=5432
- POSTGRES_HOST=database
networks 指定自定义网络
services:
# ...
networks:
network1:
name: my-pre-existing-network
external: true

external: true不会创建网络,而会查找存在的网络

示例

# 启动
sudo docker compose -f foo-docker-compose.yml --env-file .env.prod up -d
# 停止
sudo docker compose -f foo-docker-compose.yml down