更改容器分区的磁盘空间

我使用官方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文件夹,并将其用作主目录,因为由于某些原因,根分区只分配了10GB的磁盘。

 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" 

我想知道是否有更好的方法来做到这一点。 根分区的大小应与主机硬盘容量相同。


更新:

我正在使用Shizhzbuild议的Dockerfile。 但是,如果我需要的话,这里是正确的命令:

 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" 

这不是关于你的磁盘分区,但我认为你在启动shell中做了太多事情,我想build议你定义你自己的Dockerfile并build立你自己的映像。 我使用以下Dockerfiletesting:

 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"] 

然后build立你自己的形象:

 docker build -t jupyter . 

比你可以轻松开始你的服务,如:

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

当然你可以在你的主机上挂载任何目录到容器中的VOLUME /opt/notebooks

默认情况下,Docker会分配10G的数据,而不考虑主机的大小。

这个领域有一些最新的发展,docker 3.18.0是处理事物的最好方法。 Docker文档中提供了相同的细节。

根据文档,您将不得不使用以下命令序列来增加容器/图像的基本大小。

  • 请注意,上述命令是不可逆转的操作。 一旦你将尺寸设置为50G,你永远不会把它缩小。
  • 另外,这个分区目前只能在ext4分区上使用。 因此,你的主机应该有ext4分区,docker正在运行,并从中创build容器/图像。 $ sudo dockerd --storage-opt dm.basesize=50G
  • 要让更改生效,必须运行以下命令: $ sudo service docker stop $ sudo rm -rf /var/lib/docker $ sudo service docker start

另外,请注意,这将影响您将来创build的所有未来图像。 现有容器不受此命令的影响。 因此,您可能需要重新创build图像并重新创build容器。