Ich versuche, docker in meine CI-Plattform zu integrieren. Nachdem ich das mit einer Docker-in-a-docker
Lösung richtig funktionierte, stieß ich auf einen Blogpost von einem der Docker
Maintainer, wo er sagt, dass anstelle einer Docker-in-a-docker
Lösung für meine CI, ich stattdessen einfach die /var/run/docker.sock
in meinem CI-Container mounten sollte.CI & Docker-in-a-Docker
https://jpetazzo.github.io/2015/09/03/do-not-use-docker-in-docker-for-ci/
Einfach gesagt, wenn Sie Ihren CI Behälter (Jenkins oder andere) starten, anstatt etwas zusammen mit Docker-in-Docker Hacking, starten Sie es mit:
docker run -v /var/run/docker.sock:/var/run/docker.sock ...
Also habe ich das versucht. Ich lief den folgenden Befehl ein:
docker run -p 8080:8080 -p 50000:50000 -v /var/run/docker.sock:/var/run/docker.sock jenkins
jenkins als mein CI Behälter verwenden.
Wenn Sie den obigen Befehl ausführen, startet Jenkins ordnungsgemäß, und ich kann in den Container springen, um zu sehen, dass sich die Datei docker.sock
im Pfad /var/run/
befindet.
Allerdings, wenn ich den Befehl: docker
, kehrt das Gerät mit der folgenden Meldung:
bash: docker: command not found
Weiß jemand, was ich um mich fehle diese Arbeit pro dem Autor Anweisungen zu machen?
Ich benutze Docker v. 1.11.1
, auf einer frischen CentOS 7-Box.
Vielen Dank im Voraus