Docker文件如下:
FROM adoptopenjdk/openjdk11:alpine
RUN apk --no-cache add \
ca-certificates \
curl \
fontconfig \
msttcorefonts-installer \
tini \
&& update-ms-fonts \
&& fc-cache -f
RUN mkdir -p /opt \
&& curl http://www.jthink.net/songkong/downloads/build1114/songkong-linux-docker.tgz?val=130| tar -C /opt -xzf - \
&& find /opt/songkong -perm /u+x -type f -print0 | xargs -0 chmod a+x
RUN /opt/java/openjdk/bin/jlink --module-path=/opt/java/openjdk/jmods \
--add-modules java.desktop,java.datatransfer,java.logging,java.management,java.naming,java.net.http,java.prefs,java.scripting,java.sql,jdk.management,jdk.unsupported,jdk.scripting.nashorn \
--output /opt/songkong/jre
RUN rm -fr /opt/java
EXPOSE 4567
ENTRYPOINT ["/sbin/tini"]
# Config, License, Logs, Reports and Internal Database
VOLUME /songkong
# Music folder should be mounted here
VOLUME /music
WORKDIR /opt/songkong
CMD /opt/songkong/songkongremote.sh
根据docker图像的性质,这是正常的。一个Docker图像是基于多个堆叠在一起的层,每个层都是不可变的(不能更新另一个层的内容)。
因此,当一个文件在一个层中创建并在另一个层中删除时,该文件仍然存在,但没有更多可用的文件,而且Dockerfile中的大多数指令都创建了一个新层。
在您的例子中,我们将把您的图像减少到3层进行演示:
[Layer that remove the /opt/java folder]
[Layer with the new JRE]
[Base image with the JDK]
# First stage - Create the JRE
FROM adoptopenjdk/openjdk11:alpine AS jre
RUN /opt/java/openjdk/bin/jlink --module-path=/opt/java/openjdk/jmods \
--add-modules java.desktop,java.datatransfer,java.logging,java.management,java.naming,java.net.http,java.prefs,java.scripting,java.sql,jdk.management,jdk.unsupported,jdk.scripting.nashorn \
--output /opt/songkong/jre
# Second stage
FROM alpine
RUN apk --no-cache add \
ca-certificates \
curl \
fontconfig \
msttcorefonts-installer \
tini \
&& update-ms-fonts \
&& fc-cache -f
COPY --from=jre /opt/songkong/jre /opt/songkong/jre
RUN mkdir -p /opt \
&& curl http://www.jthink.net/songkong/downloads/build1114/songkong-linux-docker.tgz?val=130| tar -C /opt -xzf - \
&& find /opt/songkong -perm /u+x -type f -print0 | xargs -0 chmod a+x
EXPOSE 4567
ENTRYPOINT ["/sbin/tini"]
# Config, License, Logs, Reports and Internal Database
VOLUME /songkong
# Music folder should be mounted here
VOLUME /music
WORKDIR /opt/songkong
CMD /opt/songkong/songkongremote.sh
我有以下图片: 当我试图移除其中一个时,我得到: 我怎样才能移除它们?为什么会有这样的冲突?
然后尝试了这个解决方案,我尝试了,但没有返回任何内容,还尝试了,显示0 GB。 我还计划在docker内安装其他程序到操作系统,因此希望从现有的子映像中产生新的子映像。我到处搜索,没有一个很好的解决方案删除一个父图像在docker和原因,我阅读是因为一些父层被使用的子图像。在docker中生成一个新的子映像后,是否没有办法删除父映像?
我正在OS X 10.8.4(Mountain Lion)下的Vagrant下运行Docker,每当我试图删除一个保存的图像时,我会得到一个错误: 根据帮助,正确的语法是,我不知道该如何解释。 如何删除图像? 有趣的是,当我运行时,根本没有容器显示。运行将显示四(4)个图像和一(1)个图像。
如何删除悬空的Docker图像?我试过了 尝试连接到unix上的Docker后台程序套接字时获取的权限被拒绝:///var/run/Docker.sock:获取http://%2fvar%2frun%2fdocker.sock/v1.35/images/json?filters=%7b%22dangling%22%3a%7b%22true%22%3atrue%7d%7d:拨号unix/var/ru
我正在使用回收器视图显示具有多个视图的项目。每当我启动应用程序时,就会显示一些空白。正好等于我的列表项。我提供了截图,请浏览一下。 我想我的代码没有问题。下面是我的代码RecycerView 适配器代码 请帮帮我。谢谢。
问题内容: 鉴于: 结果是两张图像之间只有一个空格。似乎正常的行为是将任意数量的空格,换行符和制表符显示为单个空格。我知道我可以执行以下操作: 要么 要么 或任何其他数量的黑客。有没有办法用CSS删除空白?例如 问题答案: 使它们在您的CSS中。