docker执行exec报错的解决办法:1、把脚本中的第一行用“/bin/bash”替换;2、执行“docker exec -d service_name /bin/bash -c '/opt/start.sh'”。
本文操作环境:centos7系统、Docker 20.10.11版本、Dell G3电脑。
docker exec 执行脚本失败解决方法
背景介绍
docker容器里有一个脚本,需要在使用的时候在后台运行,但是通过docker exec 调用这个脚本却一直得不到想要的结果,于是开始了探究之路!
原始脚本
docker exec -it service_name /bin/bash -c '/opt/start.sh'
这个start.sh的作用就是在后台启动两个服务
#!/bash nohup start1.sh > start1.log 2>&1 & sleep 5 nohup start2.sh 2>&1 & echo 'server started'
问题定位
1. 脚本书写不规范
从上述的命令中可以看到docker 启动的时候用的式/bin/bash
而脚本中指定的确实/bash
.我们都知道脚本第一行的内容指定了shell脚本解释器的路径,而且这个指定路径只能放在文件的第一行。因此需要把脚本中的第一行用/bin/bash
替换了,使得它们用同一个解释器
2.启动参数有问题
docker exec 执行的过程中使用了-it
这个参数,
- -t让docker分配一个伪终端并绑定到容器的标准输入上
- -i则让容器的标准输入保持打开.
这样执行完后台脚本只能云行第一个start.sh, 第二个并不能起作用,因为执行完了终端也退出了,
看到help 中, 有一个-d, 后台云行脚本, 这一条刚好符合我们的要求
修改过程
docker exec -d service_name /bin/bash -c '/opt/start.sh'
#!/bin/bash nohup start1.sh > start1.log 2>&1 & sleep 5 nohup start2.sh 2>&1 & echo 'server started'
推荐学习:《docker教程》
Das obige ist der detaillierte Inhalt vonSo lösen Sie das Problem des Docker-Ausführungsfehlers. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Best Practices für die Verwendung von Docker unter Linux gehören: 1. Container erstellen und ausführen mit Dockerrun-Befehlen, 2. DockerCompon-Verwaltung, um mehrkontinierende Anwendungen zu verwalten. Diese Praktiken können den Benutzern helfen, Docker effizient zu verwenden, häufige Probleme zu vermeiden und Containeranwendungen zu optimieren.

Die Verwendung von Docker unter Linux kann die Entwicklung und die Bereitstellungseffizienz verbessern. 1. Installieren Sie Docker: Verwenden Sie Skripte, um Docker auf Ubuntu zu installieren. 2. Überprüfen Sie die Installation: Führen Sie die Sudodockerrunhello-Welt aus. 3. Basisnutzung: Erstellen Sie einen Nginx-Container-Dockerrun-Namemy-Nginx-P8080: 80-DNGinx. 4. Erweiterte Verwendung: Erstellen Sie ein benutzerdefiniertes Bild, erstellen und führen Sie mit Dockerfile aus. 5. Optimierung und Best Practices: Befolgen Sie Best Practices zum Schreiben von Dockerfiles mit mehrstufigen Builds und DockerComponpose.

Der Kern der Docker -Überwachung besteht darin, die Betriebsdaten von Containern zu sammeln und zu analysieren, wobei hauptsächlich Indikatoren wie CPU -Nutzung, Speicherverbrauch, Netzwerkverkehr und Festplatten -I/A enthalten sind. Durch die Verwendung von Tools wie Prometheus, Grafana und Cadvisor können eine umfassende Überwachung und Leistungsoptimierung von Containern erreicht werden.

Dockerswarm kann verwendet werden, um skalierbare und hoch verfügbare Containercluster zu erstellen. 1) Initialisieren Sie den Schwarmcluster mithilfe von Dockerswarminit. 2) Schließen Sie sich dem Swarm-Cluster an, um Dockerswarmjoin zu verwenden-gesprochen:. 3) Erstellen Sie einen Dienst mit DockerServicecreate-Namemy-Nginx-Replicas3nginx. 4) Bereitstellen komplexer Dienste mit DockStackdeploy-Cdocker-compose.ymlmyApp.

Wie benutzt ich Docker und Kubernetes, um Container -Orchestrierung von Unternehmensanwendungen durchzuführen? Implementieren Sie es in den folgenden Schritten: Erstellen Sie ein Docker -Bild und drücken Sie es auf DockerHub. Erstellen Sie Bereitstellung und Dienst in Kubernetes, um die Anwendung bereitzustellen. Verwenden Sie Eingang, um den externen Zugriff zu verwalten. Wenden Sie Leistungsoptimierung und Best Practices wie mehrstufige Konstruktion und Ressourcenbeschränkungen an.

Docker -FAQs können in den folgenden Schritten diagnostiziert und gelöst werden: 1. Containerstatus und Protokolle anzeigen, 2. Netzwerkkonfiguration überprüfen, 3. Stellen Sie sicher, dass die Volumen korrekt montiert. Durch diese Methoden können Probleme im Docker schnell lokalisiert und behoben werden, wodurch die Systemstabilität und -leistung verbessert werden.

Docker ist ein Muss für DevOps-Ingenieure. 1.Docker ist eine Open -Source -Containerplattform, die Isolation und Portabilität durch Verpackung von Anwendungen und deren Abhängigkeiten in Container erreicht. 2. Docker arbeitet mit Namespaces, Kontrollgruppen und föderierten Dateisystemen. 3. Die grundlegende Nutzung beinhaltet das Erstellen, Ausführen und Verwalten von Containern. 4. Erweiterte Verwendung umfasst die Verwendung von DockerComponpose zur Verwaltung von Anwendungen mit mehreren Konten. 5. Zu den häufigen Fehlern gehören Containerausfall, Port -Mapping -Probleme und Datenpersistenzprobleme. Zu den Debugging -Fähigkeiten gehören das Anzeigen von Protokollen, das Eingeben von Containern und das Anzeigen detaillierter Informationen. 6. Leistungsoptimierung und Best Practices umfassen Bildoptimierung, Ressourcenbeschränkungen, Netzwerkoptimierung und Best Practices für die Verwendung von DockerFile.

Zu den Methoden zur Verbesserung der Docker Security Enhancement gehören: 1. Verwenden Sie den Parameter-Cap-Drop, um Linux-Funktionen zu begrenzen. Diese Strategien schützen Container, indem sie die Exposition gegenüber der Verwundbarkeit reduzieren und die Fähigkeiten des Angreifers einschränken.


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

Herunterladen der Mac-Version des Atom-Editors
Der beliebteste Open-Source-Editor

ZendStudio 13.5.1 Mac
Leistungsstarke integrierte PHP-Entwicklungsumgebung

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

WebStorm-Mac-Version
Nützliche JavaScript-Entwicklungstools

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