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:
|
Originallink: https://vien.tech/article/138 Vorwo...
Inhaltsverzeichnis Ursache des Vorfalls Verwenden...
1. Erstellen Sie einen neuen Benutzer wwweee000 [...
BinLog BinLog ist ein Binärprotokoll, das alle Än...
Sehen wir uns zunächst verschiedene Möglichkeiten...
Arbeitsmodus von vim einstellen (vorübergehend) :...
Inhaltsverzeichnis Überblick Lösung 1: Verschlüss...
Bei den tatsächlichen Projekten, an denen ich tei...
Hier sind einige gängige MySQL-Befehle für Sie: -...
Inhaltsverzeichnis 1. Sortierfunktion 2. Vorberei...
Inhaltsverzeichnis Vorwort Einführung in Closures...
Der „Abbrechen“-Button ist nicht Teil des notwend...
MySQL ist ein relationales Datenbankverwaltungssy...
Inhaltsverzeichnis Controllertyp von k8s Beziehun...
Wenn wir den Inhalt einer archivierten oder kompr...