【发布时间】:2017-02-20 19:46:17
【问题描述】:
当命令指定为 CMD a b c 时,一切都按预期工作,而使用 CMD ["a", "b", "c"] 指定相同的命令 - 它会产生意想不到的结果。
我正在尝试在 docker 中运行 Jupyter (ipython)。我的CMD 命令是启动它。似乎无论我如何指定它 - Jupyter 都会启动。但是,只有当我将其指定为 CMD a b c 时,jupyter 才能真正正常工作并且可以启动内核。
在这种情况下,“新建笔记本”命令有效
FROM debian:stable
RUN apt-get update && apt-get install -y wget bzip2
RUN wget https://repo.continuum.io/miniconda/Miniconda2-latest-Linux-x86_64.sh && \
bash Miniconda2-latest-Linux-x86_64.sh -b -p /anaconda2
RUN /anaconda2/bin/conda install jupyter
#CMD ["/anaconda2/bin/jupyter", "notebook", "--port=8888", "--no-browser", "--ip=0.0.0.0", "--NotebookApp.token=''"]
CMD /anaconda2/bin/jupyter notebook --port=8888 --no-browser --ip=0.0.0.0 --NotebookApp.token=''
# docker build -t IMAGE_NAME .
# docker run --rm -it -p 8888:8888 IMAGE_NAME
在这种情况下,“新建笔记本”命令不起作用
FROM debian:stable
RUN apt-get update && apt-get install -y wget bzip2
RUN wget https://repo.continuum.io/miniconda/Miniconda2-latest-Linux-x86_64.sh && \
bash Miniconda2-latest-Linux-x86_64.sh -b -p /anaconda2
RUN /anaconda2/bin/conda install jupyter
CMD ["/anaconda2/bin/jupyter", "notebook", "--port=8888", "--no-browser", "--ip=0.0.0.0", "--NotebookApp.token=''"]
#CMD /anaconda2/bin/jupyter notebook --port=8888 --no-browser --ip=0.0.0.0 --NotebookApp.token=''
# docker build -t IMAGE_NAME .
# docker run --rm -it -p 8888:8888 IMAGE_NAME
我真的很困惑,想不出有什么区别!
【问题讨论】: