修改镜像位置
Docker Compose
参数顺序
Docker Compose 文件中的参数顺序并没有严格规定,但是为了可读性和维护性,通常会遵循一定的约定。 虽然没有强制的顺序,但是以下是一种常见的、逻辑性较强的顺序,可以参考:
-
version
-
services
每个服务内部:
image 或 build: 镜像或构建上下文。
container_name: 容器的名称。
depends_on: 服务依赖关系。
networks: 加入的网络
ports: 端口映射。
volumes: 卷挂载。
environment: 环境变量。
env_file: 从文件加载环境变量
restart: 重启策略。
command: 覆盖默认命令。
entrypoint: 覆盖默认入口点。
logging: 日志配置。
labels: 为容器添加元数据标签。
healthcheck: 健康检查。
deploy: 部署配置(用于 Swarm 模式)。
其他不常用的参数
-
networks
-
volumes
示例
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
33
34
35
|
version: "3.9"
services:
web:
container_name: my_web_app
image: nginx:latest
depends_on:
- app
ports:
- "80:80"
volumes:
- ./html:/usr/share/nginx/html
environment:
- NGINX_HOST=example.com
restart: always # <-- restart 参数
logging:
driver: "json-file"
options:
max-size: "10m"
app:
image: python:3.9-slim-buster
volumes:
- ./app:/app
working_dir: /app
command: python app.py
environment:
- FLASK_ENV=development
restart: on-failure # <-- restart 参数
networks:
default:
name: my_network
volumes:
data:
|
控制容器日志大小
单个容器
1
2
3
4
5
|
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
|
所有容器默认配置
1
|
sudo vim /etc/docker/daemon.json
|
1
2
3
4
5
6
7
|
{
"log-driver": "json-file",
"log-opts": {
"max-size": "32m",
"max-file": "3"
}
}
|
1
|
sudo systemctl restart docker
|
获取所有容器 id
1
|
sudo docker ps -a | awk {'print $1'} | sed -n '2,$ p'
|
sudo docker ps 获取容器状态
awk {‘print $1’} 查看第一列
sed -n ‘2,$ p’ 查看从第 2 行到最后一行
或者
查看所有容器状态
1
2
3
4
5
|
# 使用docker自带命令
sudo docker stats -a
# 使用获取所有id的方式
sudo docker ps | awk {'print $1'} | sed -n '2,$ p' | xargs sudo docker stats
|
xargs 反向传参
停止所有容器(谨慎使用)
1
2
|
# 使用获取所有id的方式
sudo docker ps | awk {'print $1'} | sed -n '2,$ p' | xargs sudo docker rm
|
1
|
sudo docker stop $(docker ps -q)
|
查看容器 ip
1
|
docker inspect <container_id|container_name>
|
多个容器,不同配置文件在同一个网络
1
|
docker network create oplist_network
|
1
2
3
4
5
6
7
8
9
|
services:
oplist:
...
networks:
- openlist_network
networks:
openlist_network:
external: true
|