0

Ubuntu 16.04 xenial をベース イメージとして使用してカスタム Docker イメージを作成し、その上に JDK-1.8 および MY-SQL レイヤーをインストールしました。以下は、イメージを作成するための Dockerfile のサンプル スナップショットです。

# Use 0.9.19 as this is the last tag that uses Ubuntu 16.04 xenial
FROM phusion/baseimage:0.9.19

# Set correct environment variables.
ENV HOME /root

# Use baseimage-docker's init system.
CMD ["/sbin/my_init"]

# Maintained by Abhi
MAINTAINER Abhishek <abhi@gmail.com>

# Set the locale. Default locale causes some Perl regexes to fail.
# http://jaredmarkell.com/docker-and-locales/
RUN locale-gen en_US.UTF-8
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8
ENV MYSQL_PWD pass123admin

# Fix warning "debconf: delaying package configuration, since apt-utils is not installed " during build.
RUN apt-get update && apt-get install -y --no-install-recommends apt-utils

# The base Ubuntu images don't come with sudo, so Add sudo
RUN apt-get update && apt-get install -y sudo

# Install JDK 8
RUN echo "deb http://debian.opennms.org/ stable main" >> /etc/apt/sources.list \
    && curl -sS http://debian.opennms.org/OPENNMS-GPG-KEY | apt-key add - \
    && apt-get update -y \
    && echo "oracle-java8-installer shared/accepted-oracle-license-v1-1 select true" | debconf-set-selections \
    && apt-get install oracle-java8-installer -y

## Install all software available via apt-get
RUN echo "mysql-server mysql-server/root_password password $MYSQL_PWD" | debconf-set-selections \
    && echo "mysql-server mysql-server/root_password_again password $MYSQL_PWD" | debconf-set-selections \
    && apt-get update -y && apt-get install -y \
        mysql-server

イメージの構築とコンテナの作成に関して、すべてが期待どおりに機能します。

しかし、このイメージを使用して作成された Docker-Container を削除しようとするたびに. その中のMY-SQLレイヤーを削除していません。

$ docker rm mycontainer mycontainerコマンドを使用して、上記のイメージを使用して作成したコンテナーを削除しました。

しかし、上記のイメージ ( --force-recreateオプションも使用) を使用してコンテナーを再作成すると、MySql データベースで以前のデータを確認できました。これは、$ docker rmが下層のレイヤーでコンテナーを完全に削除できないことを意味します。

MySQL または JDK の基礎となるレイヤーを含む docker-container を完全に削除する方法はありますか?

前もって感謝します。

4

0 に答える 0