python - docker 如何处理文件路径?
问题描述
附加到正在运行的 docker 容器时,我注意到文件路径(在 bash 中)是我本地机器的路径。例如,我的用户名是文件路径等的一部分。
如何确定要放入我的 python 脚本和 dockerfile 的适当文件路径?(两者都包含在图像中)。现在我的本地文件路径有效,但我不确定为什么我应该将我的 WORKDIR 定义为我的本地文件路径,如果它是一个全新的图像。
解决方案
当您将自己附加到 docker 容器时,您将登录到由 docker 映像构建的容器。它与您的主机操作系统无关。例如,如果您使用 UBUNTU 基础镜像,那么路径显然与 Red hat 基础镜像不同。
也就是说,您可以将本地文件路径挂载为卷或绑定挂载。如果您希望 docker 容器文件系统的某些部分在容器重新启动之间保持不变,那么就会出现这种情况。如果要包含 python 脚本,请使用 DockerFile 并构建它来添加它。下面的例子
FROM tomcat
LABEL maintainer="xxx"
RUN apt-get update && \
apt-get -y install openssh-server && \
WORKDIR /usr/src/app
COPY package.json .
RUN npm install
EXPOSE 4000
CMD [ “npm”, “start” ]
Docker 使用分层系统。因此,请确保将经常更改的代码部分放入 dockerfile 的底部,以便您可以利用它。从上面的示例中,您可以看到我将 python 文件复制到最后,并且我的图像基于 tomcat 图像。
WORKDIR 设置工作目录,如果您通过Entyrpoint、CMD 等运行脚本,它很有用。实际上它是相同的,cd /usr/src/app && np npm install
但人们更喜欢workdir
可读性。此外,它与您上面提到的全新形象无关。
希望你能得到大局。如果您有任何问题,请告诉我
推荐阅读
- sql - Rank() over(oracle 分区返回 1 条记录
- altbeacon - AltBeacon 发射器/扫描器
- c++ - 使用 Qt creator 独立编译 c++ 应用程序
- bash - 将数字参数范围传递给 Bash 脚本
- editor - “视图 -> 组 -> 最大列数:2”的 Sublime 3 键绑定
- javascript - 将字符串添加到变量中会在 javascript onkey 函数中添加“\”
- django - Django - 子模板从父模板扩展 CSS 但无法使用其 CSS
- javascript - 聚焦元素时,页面不会在 Firefox 和 IE 中滚动?
- laravel - 如何上传数组输入类型的图像
- javascript - 错误:无效的 Chai 属性:toBe。您指的是 “to” 吗?