首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >容器和主机之间的Docker卷共享

容器和主机之间的Docker卷共享
EN

Stack Overflow用户
提问于 2018-08-17 16:56:15
回答 1查看 221关注 0票数 0

我正在尝试使用Docker构建一个带有debmirror的本地Ubuntu存储库。我希望将下载的文件存储在主机上名为./repo的目录中

容器能够将文件下载到容器中,我可以用docker exec <container_id>...确认这一点,但是这些文件不会反映在主机上的./repo目录中。

代码语言:javascript
复制
$ docker ps 
CONTAINER ID    IMAGE             COMMAND                  CREATED             STATUS            PORTS     NAMES
2338e107050e    21b98483ec19      "/bin/sh -c '/bin/..."   15 minutes ago      Up 15 minutes               admiring_kirch

$ docker exec 2338e107050e ls -lF /repo
total 12
-r--r--r-- 1 root root   15 Aug 17 08:13 Archive-Update-in-Progress-f502fa9e2b7d
drwxr-xr-x 5 root root 4096 Aug 17 08:15 dists/
drwxr-xr-x 3 root root 4096 Aug 17 08:23 pool/

$ ls -lF ./repo/ 
total 0

这些是我的docker-compose.yml配置。

代码语言:javascript
复制
$ cat docker-compose.yml 
version: '2'
services:
    debmirror:
        build: ./app
        container_name: "debmirror"
        volumes:
            - repo:/repo
        stdin_open: true
        tty: true

volumes:
    repo:

这些是我的Dockerfile配置。

代码语言:javascript
复制
$ cat app/Dockerfile 
FROM ubuntu:16.04

ENV http_proxy "http://proxy.example.com:80/"
ENV https_proxy "http://proxy.example.com:80/"

RUN mkdir -p /app/mirrorkeyring \
    && chown -R root:www-data /app \
    && chmod -R 755 /app

RUN mkdir /repo \
    && chown -R root:www-data /repo \
    && chmod -R 571 /repo

VOLUME /repo

RUN apt update && apt install -y debmirror xz-utils
COPY mirrorbuild.sh /app/mirrorbuild.sh
RUN chmod +x /app/mirrorbuild.sh

RUN gpg --no-default-keyring --keyring /app/mirrorkeyring/pubring.gpg --import /usr/share/keyrings/ubuntu-archive-keyring.gpg
RUN gpg --no-default-keyring --keyring /app/mirrorkeyring/trustedkeys.gpg --import /usr/share/keyrings/ubuntu-archive-keyring.gpg

RUN /bin/bash -c /app/mirrorbuild.sh

你知道为什么我在主机上的./repo目录中看不到任何文件吗?

EN

回答 1

Stack Overflow用户

发布于 2018-08-17 17:06:28

更改您的docker组合,如下所示,使其在主机的./repo上可用-

代码语言:javascript
复制
version: '2'
services:
    debmirror:
        build: ./app
        container_name: "debmirror"
        volumes:
            - ${PWD}/repo:/repo
        stdin_open: true
        tty: true

基本上,当您在组成文件中定义一个卷时,它会创建一个命名卷,您可以通过执行docker volume ls命令看到,卷数据保留在主机/var/lib/docker容器卷/数据目录中。使用它,您可以在多个容器之间共享相同的数据。

但是,如果您想查看主机上某个特定文件夹中的数据,您必须使用主机绑定/挂载卷,就像我上面在撰写文件中建议的那样。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51891769

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档