首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将docker镜像作为容器成功运行

问如何将docker镜像作为容器成功运行
EN

Stack Overflow用户
提问于 2021-08-27 09:12:42
回答 1查看 120关注 0票数 3

在我的文档下面,

代码语言:javascript
复制
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 .进行构建,当我尝试从构建映像运行容器时,我什么也得不到,并且无法实现。

代码语言:javascript
复制
  docker run -p 8888:8888 -v /home/data/quarter_1/:/opt/quarter_1 image_id

​

在这里工作是一个选项

EN

回答 1

Stack Overflow用户

发布于 2021-08-27 09:23:50

基于注释的更新

如果我理解正确的话,我的建议是使用一个基本的Docker Jupyter镜像,修改它以添加您的pip需求,然后将您的文件添加到工作路径中。我已经测试了以下内容:

从如下所示的dockerfile开始

代码语言:javascript
复制
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“是此图像中的默认工作文件夹。

构建镜像

代码语言:javascript
复制
docker build -t biwia-jupyter:3.9.6 .

启动容器,打开端口为8888。例如:

代码语言:javascript
复制
docker run -p 8888:8888 biwia-jupyter:3.9.6

连接到容器以访问令牌。有几种方法可以做到,但例如:

代码语言:javascript
复制
docker exec -it CONTAINER_NAME bash
jupyter notebook list

复制URL中的令牌并使用您的服务器IP和端口进行连接。您应该能够将令牌粘贴到那里,然后访问复制到构建中的文件夹,如下所示。

Jupyter screenshot

如果您正在将镜像部署到不同的主机,这可能是使用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。

  1. 下载Jupyter Docker堆栈存储库

git clone https://github.com/jupyter/docker-stacks

  1. 切换到克隆存储库的base-notebook目录

cd ./base-notebook

  1. 使用python 3.9.0构建镜像

docker build --build-arg PYTHON_VERSION=3.9.0 -t jupyter-base-notebook:3.9.0 .

  1. 使用您复制的文件夹创建版本,并通过上述步骤创建3.9.0版本,并将dockerfile中的第一行替换为:

FROM jupyter-base-notebook:3.9.0

我已经测试过了,它工作正常,运行Python 3.9.0没有问题。

有很多方法可以构建Jupyter图像,这只是其中一种方法。请查看docker hub for Jupyter 以查看它们的变体。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68950887

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档