Heim > Artikel > Betrieb und Instandhaltung > So passt Docker Bilder an
Wie passt Docker das Bild an?
1. Um die Docker-Technologie nutzen zu können, müssen Sie zuerst das Docker-Paket installieren
Dieses Mal habe ich docker-engine-1.12.1-1 verwendet .centos.x86_64.rpm; Docker-Technologie basiert auf dem zugrunde liegenden System der lokalen Maschine. Auf dem System werden Anwendungen gepackt und bereitgestellt. Dadurch können Container genauso schnell gestartet werden wie ein Prozess.
Basierend auf der Docker-Technologie können die erforderlichen Mindestsystemumgebungen als Spiegel gekapselt und wie ein Prozess gestartet werden.
2. Erstellen Sie ein benutzerdefiniertes Docker-Image
Laden Sie zunächst ein Docker-Image von der offiziellen Docker-Website herunter
docker search docker docker pull docker
Die Bilder auf der offiziellen Website sind alle Es handelt sich um eine minimale Installation, daher müssen Sie zuerst eine Yum-Quelle konfigurieren, die übliche Software im Centos-Image installieren und httpd und sshd starten. Die spezifischen Vorgänge sind wie folgt:
yum -y install docker-engine-1.12.1-1.el7.centos.x86_64.rpm mkdir testcd testtouch Dockerfile vim Dockerfile FROM centos:latest RUN rm -f /etc/yum.repos.d/* ADD centos7.repo /etc/yum.repos.d/centos7.repo RUN yum -y install httpd openssh-server net-tools bash-completion.noarch \ iproute vim-enhanced EXPOSE 80 22 RUN echo "123456" |passwd --stdin root RUN /usr/sbin/sshd-keygen ENV EnvironmentFile=/etc/sysconfig/sshd WORKDIR /var/www/html RUN echo "<h1><font color=red>this is centos1:httpd">index.html ENV EnvironmentFile=/etc/sysconfig/httpd ADD qd.sh /root/qd.sh CMD ["/root/qd.sh"] :wq
Hinweis:
EXPOSE gibt an, welche Ports des offenen Containers
ADD überträgt die Dateien im aktuellen Verzeichnis in das angegebene Verzeichnis im Container;
RUN bezieht sich darauf zum Ausführen im Container Which commands;
FROM gibt das Quellbild an, d. h. auf welchem Bild dieses Bild basiert.
WORKDIR ist das Arbeitsverzeichnis im angegebenen Container, was dem Befehl cd im Centos-System entspricht.
ENV definiert die Umgebungsvariable.
CMD gibt den ersten Befehl an, der nach dem Start des Containers ausgeführt werden soll . Sie müssen [] durch Anführungszeichen getrennt verwenden, zum Beispiel: ["/usr/sbin/sshd", "-D"]
Die erstellte Datei muss Dockerfile heißen 🎜>Wenn Sie diese Befehle manuell schreiben möchten, vergleichen Sie sie. Es ist kompliziert. Sie können das Basisbild eingeben, um verschiedene Befehle auszuführen, dann den Verlauf verwenden, um die Befehle anzuzeigen, den Befehl cp verwenden und ihn durch das entsprechende Format oben ersetzen.
3. Schreiben Sie das Startskript Da der CMD des Docker-Images der erste Standardbefehl ist, der nach dem Starten des Containers ausgeführt wird, können Sie nur Schreiben Sie den Befehl CMD A ein. In diesem Fall möchten wir die beiden Programme sshd und httpd starten. Daher müssen wir ein Skript schreiben und CMD das Skript direkt ausführen lassen.
vim qd.sh#!/bin/bash/usr/sbin/sshd -D & /usr/sbin/httpd -DFOREGROUND :wqchmod +x qd.sh //Ausführungsberechtigungen hinzufügen
4. Um einen Spiegel zu erstellen, muss im aktuellen Verzeichnis ausgeführt werden
docker build -t wang:sh2 .
5. Starten Sie das Image und ordnen Sie den Port des Containers zu
docker run -d -p 80:80 -p 2022:22 wang:sh2Ordnen Sie Port 80 des Containers Port 80 der physischen Maschine zu und ordnen Sie Port 22 zu des Containers an den Port 2022 der physischen Maschine.
6. Zugriffsüberprüfung
firefox http://192.168.1.194(物理机) ssh -p 2022 192.168.1.194
7. ErweiterungSie können auch zuerst einen Spiegel des SSHD-Dienstes erstellen und dann erstellen ein httpd-Container basierend auf dem SSHD-Image:
im Dockerfile FROM wang:sshd RUN yum -y httpd EXPOSE 80 22ENV EnvironmentFile=/etc/sysconfig/httpd WORKDIR /var/www/html RUN echo "<h1><font color=red>this is httpd and sshd">index.html ADD qd.sh /root/qd.sh CMD ["/root/qd.sh"] :wqVerwandte Referenzen:
Das obige ist der detaillierte Inhalt vonSo passt Docker Bilder an. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!