Docker Compose 服务配置 转换为 docker run 详解(以 dockercopilot 为例)
在 Docker 中,可以使用 Docker Compose 或 docker run 命令行 来运行服务。本文将以 dockercopilot 容器为例,详细讲解如何将一份 docker-compose.yml 配置文件转换为相应的 docker run 命令,并解释每一部分内容的作用和区别。
🦋 一、原始 Docker Compose 配置(YAML 格式)
services: dockercopilot: container_name: dockercopilot restart: always privileged: true network_mode: bridge ports: - 12712:12712 volumes: - /var/run/docker.sock:/var/run/docker.sock - /volume1/docker/dockercopilot/:/data environment: - TZ=Asia/Shanghai - DOCKER_HOST=unix:///var/run/docker.sock - secretKey=lenghanyue image: 0nlylty/dockercopilot:latest
🔁 二、等价的 docker run 命令
下面是等同于上述 Docker Compose 配置的 docker run 命令:
docker pull 0nlylty/dockercopilot:latestdocker run -d --restart=always \ -p 12712:12712 \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /volume1/docker/dockercopilot/data:/data \ -e TZ=Asia/Shanghai \ -e DOCKER_HOST=unix:///var/run/docker.sock \ -e secretKey=lenghanyue \ --privileged \ --name dockercopilot \ 0nlylty/dockercopilot:latest
📋 三、配置项详解
项目 | Docker Compose 写法 | docker run 写法 | 说明 |
---|
服务名 / 容器名 | services: dockercopilot container_name: dockercopilot | --name dockercopilot | 在 Docker Compose 中是服务名,而在docker run 中通过--name 指定容器名。 |
重启策略 | restart: always | --restart=always | 设置容器在退出或系统重启后始终重启。 |
特权模式 | privileged: true | --privileged | 容器可对宿主机具有高权限,用于系统级操作。 |
网络模式 | network_mode: bridge | 默认隐式等同于 bridge 模式 | 桥接网络允许容器与其他容器隔离通信;如果需要使用宿主机网络,则可用--network host。 |
端口映射 | ports: - 12712:12712 | -p 12712:12712 | 映射宿主机端口 12712 到容器端口 12712,访问地址如http://localhost:12712 |
挂载卷 | volumes: - /var/run/docker.sock:/var/run/docker.sock - /volume1/docker/dockercopilot/data:/data | -v /var/run/docker.sock:/var/run/docker.sock -v /volume1/docker/dockercopilot/data:/data | 挂载 Docker 守护进程套接字用于管理宿主机 Docker;当前目录下的data 挂载是为了持久化数据。 |
环境变量 | environment: TZ=Asia/Shanghai DOCKER_HOST=... secretKey=lenghanyue | -e TZ=Asia/Shanghai -e DOCKER_HOST=... -e secretKey=lenghanyue | 设置容器内的时区、Docker 连接方式以及用于安全验证的密钥。 |
镜像 | image: 0nlylty/dockercopilot:latest | 写在最后:0nlylty/dockercopilot:latest | 指定使用的镜像及标签版本。 |