首页 > 解决方案 > 无法将 docker 容器的工作目录挂载到主机

问题描述

我正在尝试为我的 python 应用程序构建一个 docker 容器,该容器允许编辑应用程序工作目录中的配置文件,因此我不需要在每次进行更改时都重新构建图像。

Dockerfile:

FROM python:3

VOLUME /app
COPY . /app
WORKDIR /app

RUN pip install requirements.txt

CMD ["python", "main.py"]

构建映像后,我将容器部署为

docker run -d --name app -v /path/on/host/app:/app app:latest

我在容器中收到错误,python: can't open file 'main.py': [Errno 2] No such file or directory并且/path/on/host/app保持为空。

我无法弄清楚我的 Dockerfile 中需要什么来完成这项工作。

更新 - 找到了解决方案

由于我只需要访问配置文件,因此我为使其正常工作所做的更改

Dockerfile:

FROM python:3
COPY . /app
WORKDIR /app
RUN pip install requirements.txt
VOlUME /app/config
CMD ["python","main.py"]

现在,当我运行容器时,我将配置复制到/path/on/host/app

docker run -d --name app --mount type=bind,source=/path/on/host/app,target=/app/config

这解决了我的问题,现在我可以更新配置并重新启动容器以应用更改。

标签: pythondockerdockerfiledocker-volumedocker-build

解决方案


推荐阅读