2017-04-16 30 views
1

我使用官方docker頁面上提到的命令。更改容器分區的磁盤空間

https://hub.docker.com/r/continuumio/miniconda3/

官方命令:

docker run -i -t -p 8888:8888 continuumio/miniconda3 /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" 

我安裝tmp的文件容器內,並用它作爲主目錄,因爲某種原因,在根分區只有10 GB的磁盤分配。

docker run -i -t -p 8888:8888 -v /tmp/:/tmp/ continuumio/miniconda3 /bin/bash -c "/opt/conda/bin/conda install jupyter -y --quiet && cd /tmp/ && /opt/conda/bin/jupyter notebook --ip='*' --port=8888 --no-browser --allow-root" 

我想知道是否有更好的方法來做到這一點。根分區的大小應與主機硬盤容量相同。


更新:

我使用Dockerfile通過shizhz的建議。但這裏是正確的命令,如果萬一我需要它:

docker run -i -t -p 8888:8888 -v /tmp:/tmp continuumio/miniconda3 /bin/bash -c "/opt/conda/bin/conda install jupyter -y --quiet && cd /tmp/ && /opt/conda/bin/jupyter notebook --notebook-dir=/tmp --ip='*' --port=8888 --no-browser --allow-root" 

回答

1

這不是關於你的磁盤分區,但我認爲你在啓動shell中做了太多事情,我想建議你定義自己的Dockerfile並構建你自己的映像。我用下面的Dockerfile測試:

FROM continuumio/miniconda3 

RUN /opt/conda/bin/conda install jupyter -y --quiet && mkdir /opt/notebooks 

VOLUME /opt/notebooks 
EXPOSE 8888 
WORKDIR /opt/notebooks 

CMD ["/opt/conda/bin/jupyter", "notebook", "--notebook-dir=/opt/notebooks", "--ip='*'", "--port=8888", "--no-browser", "--allow-root"] 

然後建立自己的形象:

docker build -t jupyter . 

後比你可以輕鬆地開始你的服務,如:

docker run -d -v `pwd`/notebooks:/opt/notebooks -p 8888:8888 jupyter 

當然,你可以安裝在任何您的主機上的目錄到容器內的VOLUME /opt/notebooks

+0

這解決了我的磁盤空間問題。感謝VOLUME/opt /筆記本電腦產品線。我同意Dockerfile是最好的方式,但我想知道是否可以將該行添加到docker run命令中。 – shantanuo

+0

是的,你也可以在'docker run'上用'-v :/ opt/notebooks'添加'volume',只要確保'/ opt/notebooks'是你的工作目錄。 – shizhz

1

碼頭工人在默認情況下,不論您分配主機的大小的數據的10G。

這個領域有一些最新的發展,docker 3.18.0有最好的處理方法。相同的細節可在docker documentation中找到。

根據文檔,您將不得不使用以下命令序列來增加容器/圖像的基本大小。

  • 請注意上述命令是不可逆轉的操作。一旦你將尺寸設置爲50G,你永遠無法將它縮小。
  • 另外,這個分區目前只能在ext4分區上使用。因此,你的主機應該有ext4分區,其中docker正在運行並從中創建容器/圖像。 $ sudo dockerd --storage-opt dm.basesize=50G
  • 爲了讓設置生效,你必須運行以下命令: $ sudo service docker stop $ sudo rm -rf /var/lib/docker $ sudo service docker start

而且,請注意,這將影響所有你拉你創建/建造和未來集裝箱未來圖像。現有容器不受此命令的影響。因此,您可能需要重新創建圖像並重新創建容器。