Docker-Nutzung
1. Docker PS zum Anzeigen laufender Container
2. Docker-Bilder zum Anzeigen von Docker-Bildern
3. Docker-RM-ID (Container-ID) Löschen Sie den Container (die Container-ID kann über Docker PS angezeigt werden, der Container muss gestoppt werden, bevor er gelöscht werden kann)
3.1 Alle Container löschen docker rm `docker ps - a -q`
4. Docker-Stopp-ID (Container-ID) Stoppen Sie die Ausführung des Containers
5. Docker-RMI-ID (Spiegel-ID) Löschen das Bild
#🎜🎜 # 6. docker pull ubuntu:16.04 (Bildname: Versionsnummer) Laden Sie das Bild herunter 7. docker run -it ubuntu:16.04 Erstellen Sie den Container-Container und führen Sie ihn aus -t bedeutet, ein Pseudoterminal oder Terminal im neuen Container anzugeben -i bedeutet, dass wir mit (stdin) im Container interagieren können#🎜 🎜# -p gibt den zugeordneten Port an
# 🎜🎜# -d Führen Sie den Container im Hintergrund aus und drucken Sie die Container-ID 7.1 docker run -dit ubuntu:16.04 Erstellen Sie den Container und führen Sie ihn aus im Hintergrund 7.2 docker run -ditp 8080:8080 (Host-Port: Container-Port) ubuntu:16.04 Erstellen Sie den Container im Hintergrund, führen Sie ihn aus und ordnen Sie den Port des Containers zu#🎜 🎜# 8. Docker-Attach-ID (Container-ID) Betreten Sie die laufende Containerumgebung
#🎜 🎜# 9. Verlassen Sie den Container 9.1 Beenden Verlassen Sie den Container direkt und beenden Sie die Ausführung des Containers#🎜 🎜#9.2 [Strg+P]+[Strg+Q] (Tastenkombination) Verlassen Sie den Container. Der ausgeführte Container wird jedoch nicht beendet.
10. docker commit -m'version Identification' id (Container-ID) ubuntu:16.04 (Image- und Versionsnummer) Senden Sie das Image und generieren Sie das Image (Sie können diesen Befehl verwenden, um das Image zu erstellen). Gute Container werden in ein neues Image gepackt oder überschreiben das Original-Image (d. h , ändern Sie den ursprünglichen Bildinhalt, und der generierte Bildname ist derselbe wie die Versionsnummer und kann direkt überschrieben werden))
Okay, jeder kennt Docker Werfen wir einen Blick darauf. nginx hat das Rollproblem des Protokolls selbst nicht gelöst, sondern den Ball zum Benutzer geworfen. In der Regel können Sie für diese Aufgabe das Tool „logrotate“ verwenden oder, wenn Sie möchten, verschiedene Skripts schreiben, um dieselbe Aufgabe auszuführen. Der Autor dieses Artikels stellt vor, wie man durch die in Docker ausgeführte Nginx-Protokolldatei scrollt (das Bild unten stammt aus dem Internet).Gedanken
nginx Der Beamte gab tatsächlich Anweisungen zum Rollen des Baumstamms: # 🎜🎜#
rotierende ProtokolldateienUm Protokolldateien zu rotieren, müssen sie zuerst umbenannt werden, danach wird das usr1-Signal an den Masterprozess gesendet Öffnen Sie alle aktuell geöffneten Protokolldateien erneut und weisen Sie ihnen einen nicht privilegierten Benutzer zu, unter dem die Arbeitsprozesse ausgeführt werden. Als Eigentümer schließt der Masterprozess nach erfolgreichem erneuten Öffnen alle geöffneten Dateien und sendet die Nachricht an den Arbeitsprozess, um sie dazu aufzufordern Durch das erneute Öffnen von Dateien werden auch neue Dateien geöffnet und alte Dateien sofort geschlossen, sodass alte Dateien fast sofort für die Nachbearbeitung verfügbar sind, z. B. für die Komprimierung.
dieser Absatz Die allgemeine Beschreibung lautet:
•Benennen Sie zuerst die alte Protokolldatei um
•Senden Sie dann das usr1-Signal an den Nginx-Masterprozess
•Der Nginx-Masterprozess empfängt die signal Danach wird eine gewisse Verarbeitung durchgeführt, und dann wird der Arbeitsprozess aufgefordert, die Protokolldatei erneut zu öffnen
Tatsächlich ist die einzige Arbeit, die wir wirklich erledigen müssen, zwei Punkte vorher!
Erstellen Sie eine Testumgebung
Vorausgesetzt, dass Docker in Ihrem System installiert wurde, führen wir hier direkt einen Nginx-Container aus:
$ docker run -d \ -p 80:80 \ -v $(pwd)/logs/nginx:/var/log/nginx \ --restart=always \ --name=mynginx \ nginx:1.11.3Beachten Sie, dass wir Binden Sie das Nginx-Protokoll und mounten Sie es in das Protokollverzeichnis im aktuellen Verzeichnis.
Speichern Sie den folgenden Inhalt in der test.sh-Datei:
#!/bin/bash for ((i=1;i<=100000;i++)) do curl http://localhost > /dev/null sleep 1 done
Führen Sie dann dieses Skript aus, um die Generierung kontinuierlicher Protokolldatensätze zu simulieren.
Skript zum Erstellen eines fortlaufenden Protokolls
#!/bin/bash getdatestring() { tz='asia/chongqing' date "+%y%m%d%h%m" } datestring=$(getdatestring) mv /var/log/nginx/access.log /var/log/nginx/access.${datestring}.log mv /var/log/nginx/error.log /var/log/nginx/error.${datestring}.log kill -usr1 `cat /var/run/nginx.pid`getdatestring-Funktion nimmt die aktuelle Zeit und formatiert sie B. „201807241310“, bevorzugt der Autor die Verwendung von Datum und Uhrzeit zum Benennen von Dateien. Beachten Sie, dass die Zeitzone hier durch tz='asia/chongqing' angegeben wird, da das Format standardmäßig UTC-Zeit ist, was seltsam zu verwenden ist (Sie müssen +8 Stunden in Echtzeit berechnen). Die folgenden zwei MV-Befehle werden zum Umbenennen von Protokolldateien verwendet. Senden Sie abschließend das usr1-Signal über den Kill-Befehl an den Nginx-Masterprozess. Fügen Sie über den folgenden Befehl ausführbare Berechtigungen zur Datei „rotatelog.sh“ hinzu und kopieren Sie sie in das Verzeichnis $(pwd)/logs/nginx:
$ chmod +x rotatelog.sh $ sudo cp rotatelog.sh $(pwd)/logs/nginx
Geplant Ausführung Rollvorgang
Unser Nginx läuft in einem Container, daher müssen wir das usr1-Signal an den Nginx-Masterprozess im Container senden. Daher müssen wir das Skript „rotatelog.sh“ im Mynginx-Container über den Docker-Exec-Befehl ausführen:Durch einmaliges Ausführen des obigen Befehls wird ein neuer generiert Stapel neuer Dateien wie geplant Protokolldatei:
Lassen Sie uns diesen Befehl in einer geplanten Aufgabe konfigurieren und ihn jeden Morgen um 1 Uhr ausführen lassen. Führen Sie den Befehl crontab -e aus und fügen Sie die folgenden Zeilen am Ende der Datei hinzu:
* 1 * * * docker exec mynginx bash /var/log/nginx/rotatelog.sh
* 1 * * * docker exec mynginx bash /var/log/nginx/rotatelog.sh
保存并退出就可以了。下图是笔者测试过程中每 5 分钟滚动一次的效果:
为什么不在宿主机中直接 mv 日志文件?
理论上这么做是可以的,因为通过绑定挂载的数据卷中的内容从宿主机上看和从容器中看都是一样的。但是真正这么做的时候你很可能碰到权限问题。在宿主机中,你一般使用的是普通用户,而在容器中产生的日志文件的所有者是会是特殊的用户,并且一般不会给其它用户写和执行的权限:
当然,如果你在宿主机中使用的是 root 用户就不会有问题。
能从宿主机中发送的信号吗?
其实这个问题的全称应该是:能从宿主机中给 docker 容器中的 nginx master 进程发送信号吗?
答案是,可以的。
笔者这一文中介绍了容器中信号的捕获问题,感兴趣的朋友可以去看看。在那篇文章中我们介绍了 docker 向容器中进程发送信号的 kill 命令。我们可以通过命令:
$ docker container kill mynginx -s usr

🎜🎜Natürlich, wenn Sie es im Host verwenden Wenn Sie der Root-Benutzer sind, wird es kein Problem geben. 🎜🎜Kann das Signal vom Host-Computer gesendet werden? 🎜🎜Tatsächlich sollte der vollständige Name dieser Frage lauten: Kann ein Signal vom Host an den Nginx-Master-Prozess im Docker-Container gesendet werden? 🎜🎜🎜Die Antwort lautet: Ja. 🎜🎜🎜Der Autor stellt in diesem Artikel das Problem der Signalerfassung in Containern vor. In diesem Artikel haben wir den Kill-Befehl von Docker vorgestellt, der Signale an Prozesse in einem Container sendet. Wir können den Befehl verwenden: 🎜🎜
$ docker container kill mynginx -s usr
🎜🎜, um das usr1-Signal an Prozess Nr. 1 (Nginx-Master) im Container zu senden (diese Methode kann nur das Signal senden). zu Prozess Nr. 1): 🎜🎜🎜🎜🎜Durch die Kombination der beiden oben genannten Fragen können wir eine andere Möglichkeit schreiben, das Nginx-Protokoll im Docker zu scrollen. Diese Methode erfordert keine Ausführung von Befehlen im Container über den Docker-Exec-Befehl, sondern führt alle Vorgänge auf dem Host-Computer aus: 🎜🎜🎜•Benennen Sie zuerst die Protokolldatei im Container-Datenvolumen um🎜•Senden Sie sie an Prozess Nr. 1 im Container usr1-Signal🎜
Das obige ist der detaillierte Inhalt vonSo scrollen Sie durch Nginx-Protokolle im Docker. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Neun Unternehmen und Markensprecher Yi Yang Qianxi haben im dritten Jahr der Zusammenarbeit wieder Glanz geschaffen! Das "Battle Pond" Bath Pond Concert, exklusiv von Nr. 9 gesponsert, hat einen neuen Benchmark für die Markenverjüngung und die grenzüberschreitende Zusammenarbeit mit seinem einzigartigen künstlerischen Ausdruck und aufrichtigen emotionalen Ausdruck gesetzt. Dieses Konzert, das am 7. und 8. Dezember gestartet wurde, ist nicht nur ein weiterer innovativer Versuch im grenzüberschreitenden Marketing von Nr. 9, sondern auch ein erfolgreiches Beispiel für die tiefe emotionale Verbindung zwischen der Marke und den jungen Nutzern. Die Mischung aus Musik und Leben: Der einzigartige Charme des Bath Pool -Konzerts. Als exklusive Titelparty des Bath Pool -Konzerts von "By the Pond" hat Nr. 9 hart gearbeitet, um ein einzigartiges Musikerlebnis zu schaffen. Das Konzert ist in zwei Folgen unterteilt, die am 7. und 8. Dezember ausgestrahlt werden. Nehmen Sie den "Bath Pool" als Szene mit einer sehr lebensechten Atmosphäre

Während der Handelssitzung des US -Aktienmarktes lag der Preis von Bitcoin über 107.000 US -Dollar, was ein Rekordhoch festlegte! Der Preis ist ab sofort leicht gesunken und hat rund 106.000 US -Dollar beibehalten. Coinglass -Daten zeigen, dass in den letzten 24 Stunden die Zahl der Personen auf dem Kryptowährungsmarkt 113.000 erreicht hat, mit einem Gesamtbetrag von bis zu 423 Millionen US -Dollar. Unter ihnen wurden die langen Positionen um 197 Millionen US -Dollar und die kurzen Positionen um 226 Millionen US -Dollar liquidiert. Insgesamt sind von Kryptowährungskonzeptaktien im Allgemeinen gestiegen. Die Aktien von RiotPlatforms stiegen um mehr als 8%, die Bitdeer -Technologien stiegen um mehr als 10%, die Kanaan -Technologie stieg um mehr als 8%und die Coinbase -Aktien stiegen um 1,52%.

Xiaomi Silvester Live: Lei Jun hat enthüllt, dass in den nächsten zehn Jahren mindestens 20 Weltklasse-Fabriken gebaut werden! Während des Silvesterabends in der letzten Nacht fasste der Vorsitzende von Xiaomi, Lei Jun, die brillanten Erfolge des Unternehmens im vergangenen Jahr zusammen und kündigte an, dass Xiaomi in den nächsten zehn Jahren plant, mindestens 20 Weltklasse-Fabriken zu bauen! Gegenwärtig verfügt Xiaomi über drei fortschrittliche Produktionsbasis: das Mobiltelefon -Manufacturing Center in Changping, das moderne Elektrofahrzeugfabrik von Peking in Yizhuang und den Wuhan Smart Home Appliances Industrial Park, der im Jahr nach morgen produziert wird. Diese Fabriken repräsentieren nicht nur den Höhepunkt der fortschrittlichen Fertigungstechnologie, sondern zeigen auch den großen Beitrag von Xiaomi zur Verbesserung der chinesischen Fertigungsindustrie. Angesichts des zunehmend wachsenden Geschäftsgebiets von Xiaomi betonte Lei Jun, dass dies nur der Anfang ist. Xiaomi wird alle Anstrengungen unternehmen, um seine intelligente Fertigungsstrategie zu fördern, und in Zukunft werden mehr hohe Fabriken fertiggestellt und in Produktion gestellt.

Am 25. Dezember wird die mit Spannung erwartete Tastatur "Mo Ran Qiankun" gemeinsam von JD.com erstellt, und "Black Myth: Wukong" wird offiziell gestartet! Die Tastatur "Mo ran Qiankun" ist ein exklusives Kooperationsprojekt von Black Myth IP in der Kategorie Tastatur und das einzige Tastaturprodukt, das das IP-Party-Kreativteam für Spielen für das Spielen von IP-Party-Spielen erhalten hat, um vollständig am Aussehensdesign teilzunehmen. Es wird davon ausgegangen, dass die Tastatur "Tinte-Dyeing the Universe" in drei Versionen unterteilt ist: Gedenkversion, Sammlerversion und Limited Collector's Version mit Preisen von 699 Yuan, 999 Yuan bzw. 1499 Yuan. Unter ihnen hat die limitierte Ausgabe von "Ink Raining the Universe" nur 1.000 Einheiten in der Welt veröffentlicht. In Bezug auf das Produktdesign enthält die Tastatur "Ink-Dyeing-Universum" in JD.com viele traditionelle kulturelle Elemente und Spielelemente von "Black Myth: Wukong". Zum Beispiel Collector's Edition und Limited Edition

Gerüchte über Nintendos Switch Game Console Switch2 in der nächsten Generation fermentieren weiter. Die kürzlich freiliegenden Produktbilder von Zubehörherstellern von Drittanbietern zeigen einige Details dieser neuen Handheld-Konsole. Zum Beispiel weist das von DBRAND veröffentlichte Switch2 -Bild von DBRAND auf seine Größenänderung hin. Laut DBRAND -Head Adam Ijaz beträgt die Größe des Switch2 etwa 270 mm breit, 116 mm hoch, 14 mm dick und der Host -Teil basierend auf 3D -Scandaten von realer Hardware. Im Vergleich zu Schalten (242 mmx102 mmx13,9 mm) hat das Volumen des Switch2 signifikant zugenommen. Diese Größenänderungsauslöser

In diesem Artikel werden die Konstruktions- und Konfigurationsmethoden von Nginx eingeführt. 1. Installieren Sie Nginx: Verwenden Sie Sudoyumininstallnginx auf CentOS, verwenden Sie Sudoapt-Getinstallnginx auf Ubuntu und beginnen Sie mit dem SudosystemCTLStartNginx nach der Installation. 2. Grundlegende Konfiguration: Ändern Sie die Datei /etc/nginx/nginx.conf, ändern Sie hauptsächlich die Anweisungen zum Hören (Port) und Root (Site Root Directory) im Serverblock und verwenden Sie nach der Änderung sudosystemctlrestartNginx, um neu zu starten und wirksam zu werden. 3.. Virtuelle Hostkonfiguration: In nginx.co

Der Schlüssel zur effizienten Kombination von Nginx und PHP-FPM ist, dass Nginx PHP an PHP-FPM weiterleitet. 1.Nginx-Konfiguration muss Standortblöcke enthalten, Regeln für die Verarbeitung von .php-Dateien angeben und FASTCGI_PASS festlegen, um auf die Höradresse von PHP-FPM zu verweisen (normalerweise 127.0.0.1:9000). 2. Die erweiterte Konfiguration umfasst NGINX -Lastausgleich, statische Ressourcen von Cache und sichere Konfiguration. 3. Die häufig gestellten Fragen enthalten PHP-FPM-Startfehler, Nginx kann keine Verbindung zu PHP-FPM- und 502-Fehlern herstellen, und Sie müssen die Konfiguration und den PHP-FPM-Prozess überprüfen. 4. Die Leistungsoptimierung kann eingestellt werden, indem die Anzahl der PHP-FPM-Prozesse angepasst, OPCACHE aktiviert und aktiviert wird

Der Schlüssel zur NGINX -Sicherheitskonfiguration liegt im Prinzip der Mindestberechtigungen und der kontinuierlichen Überwachung. 1. Schließen Sie unnötige Module, um potenzielle Schwachstellen zu verringern; 2. Verwenden Sie Standortanweisungen, um die Rechte des Ressourcenzugriffs genau zu kontrollieren, z. B. das Verbot des Zugriffs auf sensible Verzeichnisse; 3. Verwenden Sie die Anweisungen Limit_req und Limit_Conn, um die Zugriffsfrequenz und gleichzeitige Verbindungen zu begrenzen, um Angriffe zu verhindern. 4. Überprüfen Sie die Protokolle regelmäßig und aktualisieren Sie NGINX -Versionen, um Schwachstellen rechtzeitig zu beheben. Nur kontinuierliches Lernen und Praxis können die Sicherheit der Website wirklich gewährleisten.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

DVWA
Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software

VSCode Windows 64-Bit-Download
Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

MinGW – Minimalistisches GNU für Windows
Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

ZendStudio 13.5.1 Mac
Leistungsstarke integrierte PHP-Entwicklungsumgebung

WebStorm-Mac-Version
Nützliche JavaScript-Entwicklungstools