Docker Compose 配置容器的工作目录(working_dir)
💡
原文中文,约2000字,阅读约需5分钟。
📝
内容提要
使用 Docker Compose 创建 alpine 镜像容器时,发现目录创建在根目录而非预期的 /app。通过设置 working_dir 参数解决此问题,并备份数据目录以防丢失。执行 docker compose up -d 更新配置,确保目录正确。
🎯
关键要点
- 使用 Docker Compose 创建 alpine 镜像容器时,发现目录创建在根目录而非预期的 /app。
- 线上服务器使用 golang 创建的相对路径目录错误,导致目录创建在根目录。
- 本地开发机和不使用 docker 的线上服务器目录位置正常。
- 需要在 docker-compose.yml 中设置 working_dir 参数以解决工作目录问题。
- 修改配置后,需备份数据目录以防丢失,特别是未映射到宿主机的目录数据。
- 执行 docker compose up -d 命令使 working_dir 配置生效,无需先停止容器。
- docker compose restart 命令不会重新加载 docker-compose.yml 的变更。
- 操作流程包括备份数据目录、修改配置和执行 docker compose up -d 命令。
- 验证工作目录是否正确可通过执行 pwd 命令或进入容器进行检查。
❓
延伸问答
如何解决 Docker Compose 中工作目录不正确的问题?
通过在 docker-compose.yml 中设置 working_dir 参数为 /app 来解决工作目录不正确的问题。
在 Docker Compose 中如何备份数据目录?
可以通过进入容器并使用 cp 命令将需要备份的目录复制到映射的宿主机目录中。
执行 docker compose up -d 命令后会发生什么?
该命令会自动停止当前容器、删除旧容器、创建新容器并启动新容器,确保新配置生效。
为什么 docker compose restart 命令无法使新配置生效?
因为 docker compose restart 只是重启现有容器,不会重新加载 docker-compose.yml 的变更。
如何验证 Docker Compose 中的工作目录是否设置正确?
可以通过执行 pwd 命令或进入容器检查当前工作目录是否为 /app。
在 Docker Compose 中,如何处理未映射到宿主机的目录数据?
在修改配置前,需先备份未映射到宿主机的目录数据,以防丢失。
🏷️
标签
➡️