Py学习  »  docker

如何在父Docker sharing docker.sock创建的子Docker中装入卷

cjds • 5 年前 • 1899 次点击  

我正试图创建一个包装容器来使用docker compose构建和运行一组无法修改的容器。Docker compose挂载多个卷,但是当从包装Docker内部启动Docker compose时,卷仍然从主机挂载,因为Docker.sock是卷挂载为主机的docker.sock。

我不想在Docker中使用完全Docker,因为在Docker中列出了与之相关的所有问题 jpetazzo's article

我也想避免 volume-from 因为我不能编辑前面提到的docker compose文件。

有没有办法让这个片段正确使用父Docker的文件,而不是转到主机文件系统并从那里装载它?

FROM docker:latest

RUN mkdir -p /tmp/parent/ && echo "This is from the parent docker" > /tmp/parent/parent.txt
CMD docker run -v /tmp/parent/parent.txt:/root/parent.txt --rm ubuntu:18.04 bash -c "cat /root/parent.txt"

当使用类似于以下命令运行时:

docker build -t parent . && docker run --rm -v /var/run/docker.sock:/var/run/docker.sock parent
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/43709
 
1899 次点击  
文章 [ 1 ]  |  最新文章 5 年前
BMitch
Reply   •   1 楼
BMitch    6 年前

在主机上和Docker映像内部使路径相同,例如。

docker run -v /var/run/docker.sock:/var/run/docker.sock \
  -v /home/user:/home/user -w /home/user/project parent_image ...

通过将卷作为/home/user安装在映像中的同一位置,命令如下 docker-compose up 使用相对绑定挂载将在与Docker套接字交谈时使用容器路径名,该套接字将与主机上的路径匹配。