Spezifische Inhalte finden Sie in der offiziellen Dokumentation. Jeder Befehl enthält eine detaillierte Beschreibung: https://arthas.aliyun.com/doc/ Dieser Artikel stellt nicht die Verwendung von Arthas vor. Wir möchten hier darüber sprechen, wie man Arthas in unserem Docker-Container verwendet. Da es ziemlich umständlich ist, arthas in einem Docker-Container zu verwenden, müssen wir die Container-ID finden, das gesamte arthas-Verzeichnis in den Container kopieren, den Container aufrufen, zum Benutzer des Zieldienstes wechseln und arthas starten. Diese Schritte sind für viele Studenten, die mit Linux-Befehlen und Docker-Befehlen nicht vertraut sind, nicht benutzerfreundlich. Daher habe ich ein Skript geschrieben, das die obigen Schritte direkt ersetzen kann. Der Effekt ist in der folgenden Abbildung dargestellt: Einfach den kompletten Servicenamen (hier den IMAGE-Namen des Containers) nach dem Skript eintragen und schon kann es genutzt werden. Einfach und bequem. Verwendung: Zuerst müssen Sie arhas-bin.zip auf dem Linux-Server entpacken. Die entpackte Version ist die Arthas-Software. Stellen Sie sicher, dass Docker auf Ihrem Computer installiert ist Download-Verzeichnis von arhas-bin.zip: https://github.com/alibaba/arthas/releases Legen Sie das Skript arthasDocker.sh in das soeben entpackte Arthas-Verzeichnis, öffnen Sie das Skript, bearbeiten Sie die Variable Inhalt des Skripts arthasDocker.sh: #!/bin/bash # # Autor: dijia478 # Datum: 20.8.2020 18:14:38 # desc: Dieses Skript muss im Verzeichnis arthas platziert und zusammen mit dem gesamten Verzeichnis in den Docker-Container kopiert werden. Der Hauptzweck besteht darin, den Benutzer des Zieldienstes im Container zu wechseln und Arthas zu starten echo "Starten Sie die Abfrage der Prozess-ID und des Benutzers des Zieldienstes …" PID=`ps -eo pid,Benutzer=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -o args | grep java | grep -v grep | awk '{print $1}'` echo "Die Prozess-ID des Zieldienstes ist ${PID}" USER=`ps -eo pid,user=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -o args | grep java | grep -v grep | awk '{print $2}'` echo "Der Benutzer des Zieldienstes ist ${USER}" wenn [[ ! -d "/home/${USER}" ]] Dann mkdir -p /home/${USER} echo "Verzeichnis /home/${USER} erstellen" fi chmod 777 /home/${USER} echo "Beginnen Sie mit dem Benutzerwechsel und starten Sie Arthas …" # Der folgende Arthas-Pfad muss geändert werden und sollte mit dem startArthas.sh-Skript ARTHAS_PATH="/opt/arthas" übereinstimmen. su ${USER} -c "java -jar ${ARTHAS_PATH}/arthas-client.jar 127.0.0.1 3658 -c 'stop'" su ${USER} -c "java -jar ${ARTHAS_PATH}/arthas-boot.jar ${PID}" Legen Sie das Skript startArthas.sh auf dem Linux-Server ab. Es wird empfohlen, es im Verzeichnis ~ abzulegen. Öffnen Sie das Skript, bearbeiten Sie die Variable Inhalt des Skripts startArthas.sh: #!/bin/bash # # Autor: dijia478 # Datum: 18.9.2020 10:36:27 # desc: Der Hauptzweck dieses Skripts besteht darin, das Diagnosetool Arthas zu starten, um einen Java-Dienst in einem Docker zu diagnostizieren, wenn [[ ${1} == '' ]] Dann echo "Bitte wählen Sie einen Dienst aus:" sudo docker ps | awk 'NR>1 {print $2}' Ausfahrt 0 fi echo "Suche nach Container für Dienst ${1} wird gestartet …" DOCKER_LIST=`sudo docker ps | awk 'NR>1 {print $2}'` FLAGGE=0 für i in ${DOCKER_LIST[@]} Tun wenn [[ ${i} == ${1} ]] Dann FLAG=1 brechen fi Erledigt wenn [[ ${FLAG} == 0 ]] Dann DOCKER_NAME=`sudo docker ps | awk 'NR>1 {print $2}' | grep ${1}` wenn [[ ${DOCKER_NAME} == '' ]] Dann echo "Der Container für diesen Dienst wurde nicht gefunden. Bitte wählen Sie den Dienst erneut aus:" sudo docker ps | awk 'NR>1 {print $2}' anders echo "Bitte geben Sie den vollständigen Namen des Dienstes ein:" sudo docker ps | awk 'NR>1 {print $2}' | grep ${1} fi anders ID=`sudo docker ps --filter ancestor=${1} | awk '{print $1}' | sed -n '2p'` echo "Container ${ID} gefunden" echo "Beginnen Sie mit dem Kopieren von Arthas in den Container …" # Der folgende Arthas-Pfad muss geändert werden und sollte mit dem arthasDocker.sh-Skript ARTHAS_PATH="/opt/arthas" übereinstimmen. sudo docker exec -it ${ID} /bin/bash -c "rm -rf ${ARTHAS_PATH}" sudo docker cp ${ARTHAS_PATH} ${ID}:${ARTHAS_PATH} echo "Kopieren abgeschlossen" echo "Wird gleich in den Container eintreten..." sudo docker exec -it ${ID} /bin/bash -c "bash ${ARTHAS_PATH}/arthasDocker.sh" fi Führen Sie abschließend einfach das Skript startArthas.sh aus. © Copyright-Erklärung Das Urheberrecht des Artikels liegt beim Autor. Nachdruck ist willkommen, allerdings muss der Originallink angegeben werden, andernfalls behalten wir uns das Recht vor, rechtliche Schritte einzuleiten. ENDE Dies ist das Ende dieses Artikels zur Verwendung von Arthas in Docker-Containern. Weitere Informationen zur Verwendung von Arthas mit Docker finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Erfahrungsaustausch über die Priorität des Ladens von CSS-Stilen
>>: MySQL 8.0 Upgrade-Erfahrung
Dieser Artikel beschreibt die gemeinsame Abfrageo...
1. Laden Sie das Ubuntu16.04-Image und den entspr...
Inhaltsverzeichnis Die Groß-/Kleinschreibung von ...
Dieser Artikel veranschaulicht anhand von Beispie...
In diesem Artikel wird die Installationsmethode d...
Inhaltsverzeichnis Ereignisschleife Ereignisschle...
Es gibt zwei Möglichkeiten, Daten in MySQL zu lös...
Inhaltsverzeichnis 1. Inline-Stile 2. Importmetho...
Inhaltsverzeichnis 1. Unterschiede und Merkmale z...
Inhaltsverzeichnis Vorwort Schritt Vorwort Heute ...
Lösen Sie das Problem, dass der vom Server nach d...
Vorwort Ich habe heute eine kleine Demo geschrieb...
Offizielle Dokumentation: https://nginx.org/en/li...
1. Im vorherigen Kapitel haben wir gelernt, dass ...
In diesem Artikelbeispiel wird der spezifische Co...