如何在摇摆图像中添加jupyter?

时间:2019-01-11 10:20:52

标签: docker jupyter-notebook jupyter

我是docker的新手,我想将jupyterpython添加到基于Rockerdocker图像中(我想同时拥有pythonR)。我能够安装python3jupyter及其相关性。图像创建成功。运行容器后,我可以访问端口RStudio server上的7878,但是很遗憾,端口8888 jupyter上的端口无法正常工作。

我的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

1 个答案:

答案 0 :(得分:0)

您不能使用多个CMD指令-第二个指令将覆盖第一个指令。如果您需要在容器中运行多个进程,这是一种不好的做法,则最好使用supervisord之类的软件。

另一种选择是将所有内容放入单个CMD指令中,例如

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