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 中,如何处理未映射到宿主机的目录数据?

在修改配置前,需先备份未映射到宿主机的目录数据,以防丢失。

➡️

继续阅读