首页 > 解决方案 > 如何将 jupyter 添加到摇杆图像?

问题描述

我是新手docker,我正在尝试将jupyterand添加python到我的docker图像中Rocker(我想同时拥有pythonand R)。我能够安装python3jupyter使用依赖项。图像创建成功。运行容器后,我可以访问RStudio serveron port 7878,但不幸的8888 jupyter是 on port 无法正常工作。

我的Dockerfile样子是这样的:

FROM rocker/rstudio:3.5.0

# Basic dependencies
RUN apt-get update && apt-get install -y \
      libcurl4-gnutls-dev \
      libssl-dev \
      libpng-dev \
      vim \
      nano \
      libxml2 \
      libxml2-dev \
      curl \
      gnupg2 \
      build-essential libssl-dev \
      libpq-dev \
      ssh
SHELL ["/bin/bash", "-c"]

# Install python3 and pip3
RUN apt-get update && apt-get install -y python3 \
    python3-pip \
    build-essential

# Install jupyter
RUN pip3 install jupyter

EXPOSE 8888
RUN mkdir /notebooks
CMD jupyter notebook --no-browser --ip 0.0.0.0 --allow-root --port 8888 /notebooks

CMD ["/init"]

构建并运行:

docker build -f Dockerfile -t user/my_docer:1.0 .
docker run -d --name my_docker -p 8787:8787 -p 8888:8888 -v `pwd`:/mnt user/my_docer:1.0

标签: dockerjupyter-notebookjupyter

解决方案


您不能使用多个CMD指令 - 第二个会覆盖第一个。如果您需要在容器中运行多个进程,这被视为一种不好的做法,最好使用supervisord.

另一种选择是将所有内容放在一条CMD指令中,例如

CMD ["/bin/bash", "-c", "'jupiter blahblah && /init'"]

推荐阅读