Полностью удалите основанный на Ubuntu контейнер docker вместе с нижележащими слоями MySQL и JDK - PullRequest
0 голосов
/ 25 марта 2020

Я создал собственное изображение docker, используя Ubuntu 16.04 xenial в качестве базового изображения, и установил на него слой 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 -Контейнер создан с использованием этого изображения. Он не удаляет слой MY- SQL внутри него.

Я использовал команду $ docker rm mycontainer mycontainer , чтобы удалить контейнер, созданный с использованием приведенного выше изображения.

Но когда я воссоздал контейнер, используя приведенное выше изображение (также используется - опция принудительного воссоздания ), я смог увидеть свои предыдущие данные в MySql База данных. Это означает, что $ docker rm не может полностью удалить контейнер с нижележащими слоями.

Есть ли способ удалить полностью удалить docker -контейнер, включая его нижележащие слои MySQL или JDK?

Заранее спасибо.

...