English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Unterschiedliche Einführung bei der Erstellung von Docker-Images und dem Start des Containers (Zusammenfassung)

Docker basiert auf dem Linux-Kernel und wird in den meisten gängigen Linux-Systemen nativ unterstützt und bietet die beste Benutzererfahrung. Natürlich wird Docker auch auf Windows- und MacOS-Plattformen unterstützt, nur muss eine ähnliche Boot2Docker und andere Virtualisierungstools, um Linux-Unterstützung bereitzustellen.

Nachfolgend werde ich die Unterschiede zwischen den beiden Methoden zur Erstellung von Docker-Abbildern beim Starten von Containern im Detail vorstellen. Freunde, die daran interessiert sind, können mit dem Autor zusammen lernen!

1Wenn ein Abbild, das mit docker commit generiert wurde, gestartet wird, kann eine Schrittkette zum Starten der eigenen Anwendung geladen werden, zum Beispiel:

docker run -d -P tomcat7.0b:jdk1.6 /run.sh

Der/run.sh startet die Tomcat-Anwendung, was bedeutet, dass bei der Startigung des Containers gleichzeitig die Tomcat-Anwendung gestartet wird. Andernfalls wird nur der Container gestartet, aber nicht die eigene Anwendung.

Der Inhalt von run.sh ist wie folgt:

#!/bin/bash
/usr/sbin/sshd -D &
exec ${CATALINA_HOME}/bin/catalina.sh run

Und noch zu beachten ist, dass dieser Container auf einer auf einem Docfile-Datei generierten Abbild instanziert wurde. Wenn Sie nach der Operation docker commit verwenden, um auf diesem Container ein neues Abbild zu generieren, dann muss der Container, der auf dem neuen Abbild basiert, ebenfalls eine Schrittkette laden, um seinen eigenen Anwendung zu starten.

2Wenn Sie ein Image erstellen, das aus einem Docfile generiert wurde, müssen Sie diesen Skript beim Starten des Containers nicht hinzufügen

FROM sshd3:ubuntu
MAINTAINER waitfish from dockerpool.com([email protected])
ENV DEBIAN_FRONTEND noninteractive
RUN echo "Asia/Shanghai" > /etc/timezone && dpkg-reconfigure -f noninteractive tzdata
RUN apt-get install -yq --no-install-recommends wget pwgen ca-certificates && apt-get clean && rm -rf /var/lib/apt/lists/*
ENV CATALINA_HOME /tomcat 
ENV JAVA_HOME /jdk
ADD apache-tomcat-7.0.69 /tomcat
ADD jdk1.6.0_45 /jdk
#ADD create_tomcat_admin_user.sh /create_tomcat_admin_user.sh
ADD run.sh /run.sh
RUN chmod +x /*.sh
RUN chmod +x /tomcat/bin/*.sh
EXPOSE 8080
CMD ["/run.sh"]

Weil das letzte CMD bedeutet, dass dieser Skript beim Starten des Containers aufgerufen wird.

Die folgenden sind von mir vorgestellten beiden Arten, um Docker-Images zu erstellen, und die Unterschiede beim Starten der Container zusammengefasst. Ich hoffe, das hilft Ihnen. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht, ich werde rechtzeitig antworten. Ich möchte auch allen für die Unterstützung der Yelling-Anleitung Webseite danken!

Empfohlene Artikel