我创建了一个泊坞窗映像,使我可以在GPU上使用RStudio运行Tensorflow。
docker文件如下:
FROM tensorflow/tensorflow:latest-gpu
MAINTAINER "Ben"
ENV CRAN_URL https://cloud.r-project.org/
ENV DISTRIB_NAME disco-cran35
ENV DEBIAN_FRONTEND=noninteractive
RUN set -e \
echo "deb ${CRAN_URL}bin/linux/ubuntu ${DISTRIB_NAME}/" \
| tee -a /etc/apt/sources.list \
&& apt-get -y update \
&& apt-get install -y --no-install-recommends --allow-unauthenticated \
r-base \
r-base-dev \
gdebi-core \
libcurl4-openssl-dev \
&& apt-get -y autoremove \
&& apt-get clean
COPY rstudio-server-1.2.5033-amd64.deb /tmp/rstudio.deb
RUN set -e \
&& gdebi -n /tmp/rstudio.deb \
&& rm -rf /tmp/* \
&& apt-get -y autoremove \
&& apt-get clean
RUN set -e \
&& useradd -m -d /home/rstudio rstudio \
&& echo rstudio:rstudio \
| chpasswd \
&& apt-get -y autoremove \
&& apt-get clean
EXPOSE 8787
CMD ["/usr/lib/rstudio-server/bin/rserver", "--server-daemonize=0", "--server-app-armor-enabled=0"]
在构建映像之前,我下载了rstudio-server-1.2.5033-amd64.deb文件并将其放置在与docker文件相同的文件夹中。
我使用以下图像构建图像:
nvidia-docker build --rm -f deep-learning-r.dockerfile --tag rdev:0.1 .
该映像正确构建,但是我有很多中间映像没有被删除并占用了磁盘空间(我想):
$ docker image ls -a
REPOSITORY TAG IMAGE ID CREATED SIZE
rdev 0.1 ea1ed3cac83b 18 seconds ago 5.2GB
<none> <none> be5bb119b557 19 seconds ago 5.2GB
<none> <none> edb790d02942 20 seconds ago 5.2GB
<none> <none> 438f58c4e831 23 seconds ago 5.2GB
<none> <none> 00c43a9ccb32 41 seconds ago 4.38GB
<none> <none> 0f0f4e16879d 43 seconds ago 4.34GB
<none> <none> 661b40cf3675 About a minute ago 4.09GB
<none> <none> 9b5f6f63a93e About a minute ago 4.09GB
<none> <none> 4f6e541b4d79 About a minute ago 4.09GB
<none> <none> de9347c3f0e0 About a minute ago 4.09GB
tensorflow/tensorflow latest-gpu 3c0df9ad26cc 8 weeks ago 4.09GB
我了解需要Tensorflow图像,但是标签和存储库中似乎有很多冗余图像。
运行
docker images -f "dangling=true" -q
不返回任何内容。
我真的需要那些中间图像吗?我该如何摆脱它们?