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
In diesem Artikel wird der spezifische Code für d...
Würmer replizieren sich, wie der Name schon sagt,...
Einführung Um Datenverlust in einer Produktionsum...
Inhaltsverzeichnis Vorwort Hintergrunddatenspleiß...
Inhaltsverzeichnis 1. Vorteile der Verwendung von...
Inhaltsverzeichnis 01-Ereignisse brodeln 1.1- Ein...
Wenn in Ihrer Organisation bereits eine Kennwortr...
Vorwort: Während der Projektentwicklung stießen w...
Vue+Openlayer verwendet „modify“, um Elemente zu ...
Beachten Sie, dass dieser Artikel Ihnen nicht ein...
Neueste Version von MySQL 8.0.22 zur Kennwortwied...
Die übliche Nginx-Konfiguration ermöglicht domäne...
Häufig gestellte Fragen Wenn Sie easyswoole zum e...
Vorwort Wenn Sie jemand fragt: „Was sind die Merk...
Inhaltsverzeichnis Vorwort 1. Laden Sie MySQL 8.0...