在我的文档下面,
FROM python:3.9.0
ARG WORK_DIR=/opt/quarter_1
RUN apt-get update && apt-get install cron -y && apt-get install -y default-jre
# Install python libraries
COPY requirements.txt /tmp/requirements.txt
RUN pip install --upgrade pip && pip install -r /tmp/requirements.txt
WORKDIR $WORK_DIR
EXPOSE 8888
VOLUME /home/data/quarter_1/
# Copy etl code
# copy code on container under your workdir "/opt/quarter_1"
COPY . .我尝试连接到服务器,然后我使用docker build -t my-python-app .进行构建,当我尝试从构建映像运行容器时,我什么也得不到,并且无法实现。
docker run -p 8888:8888 -v /home/data/quarter_1/:/opt/quarter_1 image_id

在这里工作是一个选项
发布于 2021-08-27 09:23:50
基于注释的更新
如果我理解正确的话,我的建议是使用一个基本的Docker Jupyter镜像,修改它以添加您的pip需求,然后将您的文件添加到工作路径中。我已经测试了以下内容:
从如下所示的dockerfile开始
FROM jupyter/base-notebook:python-3.9.6
COPY requirements.txt /tmp/requirements.txt
RUN pip install --upgrade pip && pip install -r /tmp/requirements.txt
COPY ./quarter_1 /home/jovyan/quarter_1上面假设您正在从包含dockerfile、"requirements.txt“和带有构建文件的"quarter_1”文件夹中运行构建。
注意:"home/joyvan“是此图像中的默认工作文件夹。
构建镜像
docker build -t biwia-jupyter:3.9.6 .启动容器,打开端口为8888。例如:
docker run -p 8888:8888 biwia-jupyter:3.9.6连接到容器以访问令牌。有几种方法可以做到,但例如:
docker exec -it CONTAINER_NAME bash
jupyter notebook list复制URL中的令牌并使用您的服务器IP和端口进行连接。您应该能够将令牌粘贴到那里,然后访问复制到构建中的文件夹,如下所示。
如果您正在将镜像部署到不同的主机,这可能是使用COPY/ADD等进行部署的最好方法,但在其他情况下,请考虑使用Docker卷,它允许您从主机访问文件夹(例如quarter_1),因此您不必在开发过程中不断地重新构建。
Python3.9.0请求的第二次编辑
使用上面的方法,3.9.0不能立即从DockerHub获得。我怀疑你在3.9.0和3.9.6之间是否会有太多的兼容性问题,但我们还是会构建它。我们可以从github下载dockerfile文件夹,更新构建参数,使用3.9.0创建我们自己的变体,然后执行上述操作。
假设你有git。否则,手动下载repo。
git clone https://github.com/jupyter/docker-stacks
cd ./base-notebook
docker build --build-arg PYTHON_VERSION=3.9.0 -t jupyter-base-notebook:3.9.0 .
FROM jupyter-base-notebook:3.9.0
我已经测试过了,它工作正常,运行Python 3.9.0没有问题。
有很多方法可以构建Jupyter图像,这只是其中一种方法。请查看docker hub for Jupyter 以查看它们的变体。
https://stackoverflow.com/questions/68950887
复制相似问题