Docker指南

修改镜像位置

Docker Compose

参数顺序

Docker Compose 文件中的参数顺序并没有严格规定,但是为了可读性和维护性,通常会遵循一定的约定。 虽然没有强制的顺序,但是以下是一种常见的、逻辑性较强的顺序,可以参考:

  1. version

  2. services

    每个服务内部:

    • imagebuild: 镜像或构建上下文。
    • container_name: 容器的名称。
    • depends_on: 服务依赖关系。
    • networks: 加入的网络
    • ports: 端口映射。
    • volumes: 卷挂载。
    • environment: 环境变量。
    • env_file: 从文件加载环境变量
    • restart: 重启策略。
    • command: 覆盖默认命令。
    • entrypoint: 覆盖默认入口点。
    • logging: 日志配置。
    • labels: 为容器添加元数据标签。
    • healthcheck: 健康检查。
    • deploy: 部署配置(用于 Swarm 模式)。
    • 其他不常用的参数
  3. networks

  4. 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
docker ps -aq

查看所有容器状态

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
May 02, 2025 22:46 +0800
页面浏览量Loading
网站总访客数:Loading
网站总访问量:Loading

-->