Andockfenster im Andock-Container

8

Ich möchte Docker in einem aktiven Docker-Container installieren.

%Vor%

Mein Basiscontainer verwendet Centos, ich kann mich mit docker exec im laufenden Container anmelden. Aber wenn ich versuche, docker mit yum install -y docker zu installieren, wird es installiert.

Aber irgendwie kann ich den Docker-Dienst mit docker -d & nicht starten, es gibt mir einen Fehler als:

%Vor%

Gibt es eine Möglichkeit, ich kann Docker im Docker-Container installieren oder Bild bereits mit Docker laufen lassen? Ich habe diese Beispiele bereits gesehen, aber keine funktioniert für mich.

Die Ausgabe von uname -r auf dem Hostcomputer:

%Vor%

Jede Hilfe wäre willkommen.

Vielen Dank im Voraus

    
priyank 14.12.2015, 10:10
quelle

3 Antworten

7

Aktualisieren

Dank Ссылка möchte ich einen anderen Ansatz zeigen.

Anstatt die docker -Binärdatei des Hosts zu mounten, sollten Sie eine containerspezifische Version der docker -Binärdatei kopieren oder installieren. Da Sie es nur in einem Client-Modus verwenden, müssen Sie es nicht als Systemdienst installieren. Sie müssen den Docker-Socket weiterhin im Container bereitstellen, damit Sie problemlos mit der Docker-Engine des Hosts kommunizieren können.

Angenommen, Sie haben ein Basis-Image mit einer funktionierenden Docker-Binärdatei (z. B. das offizielle Andock-Image ), das Beispiel sieht jetzt so aus:

docker run\ -v /var/run/docker.sock:/var/run/docker.sock\ docker:1.12 docker info

Ohne Ihre Frage wirklich zu beantworten, würde ich vorschlagen, dass Sie Verwenden von Docker-in-Docker für Ihre CI- oder Testumgebung? Denk zweimal nach. .

Es wird erläutert, warum das Ausführen von docker-in-docker durch ein Setup ersetzt werden sollte, bei dem Docker-Container als Geschwister des Containers "outer" oder "base" ausgeführt werden. Der Artikel verlinkt auch zum ursprünglichen Ссылка Projekt, in dem Sie Arbeitsbeispiele zum Ausführen von Docker in Docker finden - falls Sie es trotzdem wollen habe docker-in-docker.

Ein Beispiel, wie ein Container auf den Docker-Dämon des Hosts zugreifen kann, sieht folgendermaßen aus:

%Vor%     
gesellix 22.12.2015 13:30
quelle
2

Wenn Sie auf dem Mac mit der Docker Toolbox arbeiten.

Der folgende Befehl WIRD NICHT FUNKTIONIEREN

%Vor%

Weil /var/run/docker.sock nicht auf Ihrem OSX-Dateisystem ist

Der Docker-Daemon läuft innerhalb der boot2docker VM - und dort befindet sich der Unix-Socket.

Sie müssen also den Container von boot2docker VM

ausführen %Vor%

Dies sieht aus wie Docker-in-Docker, fühlt sich an wie Docker-in-Docker, ist aber kein Docker-in-Docker. Wenn dieser Container mehr Container erstellt, werden diese Container im Docker der obersten Ebene erstellt / p>     

Hemerson Varela 24.06.2016 15:14
quelle
1

Sie benötigen den Parameter --privileged .

  

Docker-Container sind standardmäßig "nicht privilegiert" und können z   Führen Sie beispielsweise einen Docker-Daemon in einem Docker-Container aus.

Quelle

Führen Sie Ihr Basisbild mit dem Befehl docker run --privileged -it centos:centos7 bash aus. Dann können Sie einen weiteren Docker-Container in diesem Container installieren und ausführen.

    
michaelbahr 14.12.2015 12:14
quelle

Tags und Links