Schreiben einer Docker-Datei Konfigurieren Sie die Yum-Quelle cd /tmp/docker vim Docker-Datei VON rhel7 EXPOSE 80 22 # Ports 80 und 22 der Außenwelt zugänglich machen COPY dvd.repo /etc/yum.repos.d/dvd.repo && yum install -y httpd openssh-server openssh-clients supervisor && yum alles reinigen && ssh-keygen -q -t rsa -f /etc/ssh/ssh_host_rsa_key -N "" && ssh-keygen -q -t ecdsa -f /etc/ssh/ssh_host_ed25519_key -N "" && echo root:redhat | chpasswd KOPIEREN Sie supervisord.conf /etc/supervisord.conf CMD ["/usr/bin/supervisord"] vim supervisord.conf [Vorgesetzter] nodaemon=wahr [Programm:sshd] Befehl=/usr/sbin/sshd -D [Programm:httpd] Befehl=/usr/sbin/httpd Docker-Build -t rhel7:v3 Senden des Build-Kontexts an den Docker-Daemon 8.192 kB Schritt 1/6: VON rhel7 ---> 0a3eb3fde7fd Schritt 2/6: EXPOSE 80 22 ---> Wird ausgeführt in 5727c9e984a5 ---> e25a8a0821f7 Zwischenbehälter entfernen 5727c9e984a5 Schritt 3/6: KOPIEREN Sie dvd.repo /etc/yum.repos.d/dvd.repo ---> 2d9e8f9648a7 Zwischenbehälter ausbauen 62955f7a7a74 Schritt 4/6: FÜHREN Sie rpmdb --rebuilddb aus und yum install -y httpd openssh-server openssh-clients supervisor und yum clean all und ssh-keygen -q -t rsa -f /etc/ssh/ssh_host_rsa_key -N "" und ssh-keygen -q -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N "" und ssh-keygen -q -t ecdsa -f /etc/ssh/ssh_host_ed25519_key -N "" und echo root:redhat | chpasswd Abhängigkeit aktualisiert: elfutils-libelf.x86_64 0:0.166-2.el7 Vollständig! Nicht lesbares Repository „///etc/yum.repos.d/rhel7.repo“ wird übersprungen Bereinigen von Repositorys: Docker DVD-Rhel Alles aufräumen ---> 1cb2f9e34bac Zwischenbehälter entfernen 33cb452dbc8d Schritt 5/6: KOPIEREN Sie supervisord.conf /etc/supervisord.conf ---> e8de2ff5ca3c Zwischenbehälter entfernen f219cb2b6a88 Schritt 6/6: CMD /usr/bin/supervisord ---> Wird ausgeführt in eddfb3973ad2 ---> dbf4cf5cb116 Zwischenbehälter entfernen eddfb3973ad2 Erfolgreich erstellt dbf4cf5cb116
Docker-Inspektion vm1 "Netzwerke": { "Brücke": { "IPAMConfig": null, "Links": null, "Aliase": null, "NetworkID": "126902125dd9c54631622845c1a75d656b45023840c57944ec24f4acecf6dc3f", "EndpointID": "3d995f01fce91968f59b151a19ba3868292efe0a61c2ef355bcd1eb84bda7248", "Gateway": "172.17.0.1", "IPAddress": "172.17.0.2", # IP des Containers "IPPrefixLen": 16, "IPv6Gateway": "", "GlobalIPv6Address": "", "GlobalIPv6PrefixLen": 0, "MacAdresse": "02:42:ac:11:00:02" } } verifizieren:
Überprüfen Sie den SSHD-Dienst: Ergänzendes Wissen: Verwenden Sie Dockerfile, um ein Supervisor-Container-Bereitstellungsprojekt zu erstellen. Die Ausführung von CMD ["supervisord", "-c", "/etc/supervisord.conf"] ist fehlgeschlagen Problembeschreibung: Beim Schreiben einer Docker-Datei zum Erstellen eines Supervisor-Containers funktioniert der letzte Befehl zum Starten des Supervisors nicht -> CMD ["supervisord","-c","/etc/supervisord.conf"], aber die Ausführung von supervisord -c /etc/supervisord.conf innerhalb des Containers kann erfolgreich ausgeführt werden. Fügen Sie zuerst den Dockerfile-Dateicode ein VON python:latest ARBEITSVERZEICHNIS /root/ Führen Sie mkdir /etc/supervisor aus. RUN mkdir -p /root/projects/logs/gunicorn/ RUN mkdir -p /root/projects/logs/celery/ RUN mkdir -p /root/projects/Sy_EvaluateJkApi/logs/ RUN echo "deb http://mirrors.aliyun.com/debian/ buster main non-free contrib" > /etc/apt/sources.list RUN echo "deb-src http://mirrors.aliyun.com/debian/ buster main non-free contrib" >> /etc/apt/sources.list RUN echo "deb http://mirrors.aliyun.com/debian-security buster/updates main" >> /etc/apt/sources.list RUN echo "deb-src http://mirrors.aliyun.com/debian-security buster/updates main" >> /etc/apt/sources.list RUN echo "deb http://mirrors.aliyun.com/debian/ buster-updates main non-free contrib" >> /etc/apt/sources.list RUN echo "deb-src http://mirrors.aliyun.com/debian/ buster-updates main non-free contrib" >> /etc/apt/sources.list RUN echo "deb http://mirrors.aliyun.com/debian/ buster-backports main non-free contrib" >> /etc/apt/sources.list RUN echo "deb-src http://mirrors.aliyun.com/debian/ buster-backports main non-free contrib" >> /etc/apt/sources.list Führen Sie apt-get update -y aus. Führen Sie apt-get install -y git lrzsz vim aus. Führen Sie „pip install supervisor -i“ aus: https://mirrors.aliyun.com/pypi/simple/ Führen Sie „pip install gunicorn -i“ aus: https://mirrors.aliyun.com/pypi/simple/ Führen Sie „pip install gevent -i“ aus: https://mirrors.aliyun.com/pypi/simple/ RUN /usr/local/bin/echo_supervisord_conf > /etc/supervisord.conf RUN echo "[include]">>/etc/supervisord.conf RUN echo "Dateien = /etc/supervisor/*.ini">>/etc/supervisord.conf ADD sy.ini /etc/supervisor/sy.ini HINZUFÜGEN Sy_EvaluateJkApi /root/projects/Sy_EvaluateJkApi Führen Sie den Befehl pip3 install -r /root/projects/Sy_EvaluateJkApi/requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ aus. EXPOSE 8800 CMD ["supervisord","-c","/etc/supervisord.conf"] Beim Erstellen des Container-Images mit dem Befehl „docker build -t system:test“ tritt keine Ausnahme auf. Beim Ausführen des Containers mit „docker run -itd system:test“ wird jedoch angezeigt, dass der Container nicht ausgeführt wird. Lösung: Ändern Sie den Befehl CMD ["supervisord","-c","/etc/supervisord.conf"] in CMD ["supervisord","-n","-c","/etc/supervisord.conf"] und er wird erfolgreich ausgeführt. Dies ist, was in Supervisor -n/--nodaemon -- im Vordergrund laufen geschrieben wird (dasselbe wie „nodaemon=true“ in der Konfigurationsdatei). Durch Hinzufügen von -n kann Supervisor weiterhin im Vordergrund laufen. Der obige Multiservice-Image-Packaging-Vorgang von Dockerfile unter Supervisor ist der gesamte Inhalt, den der Editor mit Ihnen teilt. Ich hoffe, er kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen. Das könnte Sie auch interessieren:
|
Das Flexbox-Layoutmodul soll eine effizientere Mö...
Vorwort Der Ubuntu-Server des Unternehmens platzi...
1. Maven herunterladen Offizielle Maven-Website: ...
Übersetzt aus der offiziellen Docker-Dokumentatio...
Laden Sie die offizielle Website herunter Wählen ...
Um die Lebensdauer der Festplatte zum Speichern v...
Inhaltsverzeichnis Vorwort Umfeld Installieren Er...
In diesem Artikel wird der spezifische JavaScript...
Ich habe heute mit der Arbeit an meinem Abschluss...
Da eine bestimmte Funktion meines Projekts erford...
In den letzten Tagen habe ich gelernt, wie man Sp...
Breite: automatisch Das untergeordnete Element (e...
Voraussetzungen Compose ist ein Tool zum Orchestr...
In Sprachen werden häufig Makros zur Implementier...
Inhaltsverzeichnis Die erste Methode: Router-Link...