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
Suchen Sie immer noch nach einer Möglichkeit, Hyp...
Ich möchte das grafische Tutorial zur Installatio...
Geben Sie net start mysql in cmd ein und die Eing...
1. Laden Sie das MySQL 5.7-Installationspaket von...
Dieser Artikel beschreibt, wie lamp-php7.0 in ein...
Normalerweise gibt es bei der Entwicklung von Lin...
AWS – Amazons Cloud-Computing-Serviceplattform Ic...
Schritte zur Linux-Installation von JDK1.8 1. Übe...
Was ist ein Generator? Ein Generator ist ein Code...
Inhaltsverzeichnis 1. Nutzen Sie Komponenten sinn...
Ursache Beim Ausführen des Docker-Skripts tritt e...
a href="#"> Nach dem Klicken auf den ...
MySQL implementiert Oracle-ähnliche Sequenzen Ora...
Vorwort Um Dateiberechtigungen im Terminal eines ...
Inhaltsverzeichnis Themen dynamisch ändern Die er...