我制作了一个Docker容器充当Jupyter服务器
docker run -i -t -p 8888:8888 continuumio/anaconda3 /bin/bash -c "/opt/conda/bin/conda install jupyter -y --quiet && mkdir /opt/notebooks && /opt/conda/bin/jupyter notebook --notebook-dir=/opt/notebooks --ip='*' --port=8888 --no-browser"
是否可以在不执行指定命令的情况下启动停止的容器? 在启动时,它会在尝试创建现有目录时停止。
kosh@LinuxPC:~$ docker ps -a --no-trunc
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bb9ff79baf4b2a18289e14338cecdd3cdfa3bbe2a84cba0a63430de1e624b769 condaim "/bin/bash -c '/opt/conda/bin/conda install jupyter -y --quiet && mkdir /opt/notebooks && /opt/conda/bin/jupyter notebook --notebook-dir=/opt/notebooks --ip='*' --port=8888 --no-browser --allow-root'" 24 hours ago Exited (1) 2 minutes ago jovial_clarke
kosh@LinuxPC:~$ docker start -i jovial_clarke
Collecting package metadata (current_repodata.json): ...working... done
Solving environment: ...working... done
# All requested packages already installed.
mkdir: cannot create directory ‘/opt/notebooks’: File exists
答案 0 :(得分:1)
无论何时停止然后停止容器,它都将始终运行entry命令。因此,所有您在首次启动容器时都要更改命令。
因此,如果该目录不存在,则应该创建逻辑目录(逻辑目录应该为mkdir -p /opt/notebooks
,因为错误来自此命令。
因此请相应地更新docker run命令,它将在下次启动时起作用。
docker run -i -t -p 8888:8888 continuumio/anaconda3 /bin/bash -c "/opt/conda/bin/conda install jupyter -y --quiet && mkdir -p /opt/notebooks && /opt/conda/bin/jupyter notebook --notebook-dir=/opt/notebooks --ip='*' --port=8888 --no-browser"