【问题标题】:Cannot Mount local dir to docker container无法将本地目录挂载到 docker 容器
【发布时间】:2020-03-08 06:22:20
【问题描述】:

我在本地创建了一个卷:

docker volume create <volume_name>

我可以使用以下方法查看它的路径:

docker volume inspect <volume_name>

我复制了一个我想在每次运行时上传到容器的文件,使用:

sudo scp file.txt /data/docker/volumes/store_data/_data/.

现在我手动将文件添加到本地卷中,我想运行安装此本地卷的容器,以便它可以读取其中的 txt 文件:

方法一:

docker run --name <container_name> -v "/data/docker/volumes/store_data/_data:/app" <image_name>

这种方法给出的错误:

FileNotFoundError: [Errno 2] 没有这样的文件或目录:'file.txt'

方法二:

docker run --name <container_name> --mount "source=<volume_name>,target=/app" <image_name>

这种方法给出的错误:

/bin/bash: ./runit.sh: 没有这样的文件或目录

我的 Dockerfile:

FROM python:3.5.5
RUN pip install docker
RUN pip install pandas
RUN pip install scikit-learn
WORKDIR /app
ADD . /app
RUN true
COPY ./runit.sh /app
RUN chmod 755 runit.sh
ENTRYPOINT ["/bin/bash", "./runit.sh"]
CMD []

runit.sh 包含一个 !#bin/python shebang 并执行一个 python 脚本。

如何将卷挂载到容器?我错过了什么? 谢谢。

【问题讨论】:

    标签: python docker containers volume mount


    【解决方案1】:

    像这样运行你的容器:

    docker run --name <container_name> <image_name>
    

    您已经复制了 Dockerfile 中的所有内容,使用 volumes 和相同的目标目录 /app 只会覆盖运行时中的所有数据。

    【讨论】:

      猜你喜欢
      • 2022-10-20
      • 1970-01-01
      • 2016-06-10
      • 2016-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-24
      • 1970-01-01
      相关资源
      最近更新 更多