docker - 在 Docker 运行命令中找不到 Pandas [附加卷]
问题描述
当我构建我的 docker 映像并使用以下命令运行它时:
docker build -t iter1 .
docker run -it --rm --name iter1_run iter1
我的应用程序运行得很好。但是,当我尝试附加卷并执行以下命令时:
docker run -it --rm --name iter_run -v /Users/xxxx/Desktop/Docker_Builds/SingleDocker/xxxxxx:/usr/src/oce -w /usr/src/oce python:3 python oce_test.py
文件 oce_test.py 找不到 Pandas。
Traceback (most recent call last):
File "oce_test.py", line 1, in <module>
import pandas as pd
ModuleNotFoundError: No module named 'pandas'
我的 Dockerfile 的内容如下:
# Docker image
FROM python:3
# Copy requirements
COPY requirements.txt /
# Install Requirements
RUN pip install -r /requirements.txt
# Copy scripts needed for execution
COPY ./xxxx /usr/src/oce
# Establish a working directory
WORKDIR /usr/src/oce
# Execute required script
CMD ["python", "oce_test.py"]
我的requirements.txt的内容如下:
numpy==1.18.1
pandas==1.0.1
matplotlib==3.1.3
scipy==1.4.1
Python-dateutil==2.8.1
解决方案
David Maze 回答了这个问题:
您的 docker run 命令正在运行一个没有安装其他软件包的普通 python:3 映像。如果您想使用 Dockerfile 中的映像,但要使用主机中的任意内容覆盖映像中的应用程序代码,请改用您的映像名称 iter1。(您不需要重复图像的 WORKDIR 或 CMD 作为 docker run 选项。)
推荐阅读
- java - DL4J 特征重要性
- android - 为什么 Android Studio 更新 SDK 会列出我手机中不再连接的文件?
- sql - 选择查询 select with Substr 返回 NULL
- apache-camel - 更改 Camel 的基本 /camel url
- cygwin - Cygwin 未通过 ssh 显示 Vi 编辑器内容
- python - 获取带有访问令牌的 URL
- prolog - 如何将旅行/3写入路径/2
- odoo-14 - 在 addons /odoo 的现有员工模块中创建新角色
- android-studio - KMM:找不到 embedAndSignAppleFrameworkForXcode 任务
- dataframe - 如何克服 Spark 中单列值的 2GB 限制