我有一个Python项目,在我的主机上具有以下目录结构:
Host Machine:
├── project/
│ ├── src/
│ │ ├── file1.py
│ │ ├── file2.py
│ │ └── ...
│ └── docs/
│ ├── conf.py
│ ├── index.rst
│ ├── index.html (Output)
│ └── ...
└── Dockerfile
我想为这个项目设置一个Docker环境,其中Python文件位于Docker机器内的/src
文件夹中。但是,我不想将整个/project
文件夹复制到Docker机器中。此外,我在主机上的/docs
目录中有特定的文件(conf.py
、index.rst
)和一个index.html
文件(用作输出)。
Docker机器的目录结构应该如下所示:
Docker Machine:
└── code/
├── file1.py
├── file2.py
└── ...
有没有一种方法可以利用绑定挂载或任何其他Docker实用程序直接从Docker容器访问主机上/src
和/docs
目录中的文件?我想在Docker环境中执行命令,例如生成index.html
文件,但将输出保存在主机上的相应位置。
具体来说,我想为Docker容器中/code
目录中的Python文件生成index.html
文件,并将此输出文件保存在主机上的project/docs/
目录中。
如果您有任何关于如何使用绑定挂载或其他Docker实用程序实现此设置的指导或建议,我们将不胜感激。谢谢你!
1条答案
按热度按时间bzzcjhmw1#
您可以使用
docker run
cli的-v
或--volume
参数将本地目录和文件挂载到容器。在python项目目录中运行以下命令。
说明:
--volume $(pwd):/project
允许您挂载本地文件系统,其中包括容器的/project
路径中的src和docs文件夹--workdir /project
允许您指定容器内的工作目录。在这个例子中,我将其命名为project
at/
path。--entrypoint bash
,这样您就可以使用容器中挂载的文件系统访问shell。这将允许您运行通常在终端上运行的命令来构建/运行Python项目。-ti
获取交互式TTY。--rm
在退出时删除容器。这是可选的。python:3
这将获取最新版本的python 3。您可以通过替换3为项目选择Python版本。例如python:3.6或python:2.7