Loading…

Blog

Viel Spass beim Lesen, vielleicht findest Du ja ein paar nützliche Informationen
Los geht's

Docker in der Ubuntu bash unter Windows

Nach meiner Ubuntu Integration unter Windows, stand ich vor dem Problem, dass ich auch unter Linux Zugriff auf die Docker Container benötigte. Nach langer Suche bin ich auf den Blogeintrag „Running Docker containers on Bash on Windows“ von gestoßen, der mir sehr geholfen hat. Er löste zwar nicht alle Problem, aber der Artikel hat mich in die richtige Richtung geschubst.

Voraussetzung für den Zugriff auf Docker, unter Linux auf einer Windowsmaschine, ist natürlich das Docker unter Windows installiert ist.

Einstellungen unter Docker

Im den Docker Einstellungen, sollte der Haken „Expose daemon on tcp://localhost:2375 without tls“ gesetzt werden.

 

Einstellung unter Ubuntu

Unter Ubuntu muss der Pfad der Docker Applikation ergänzt werden. Diesen kann man in seiner  ~/.bashrc hinzugefügt.

export PATH="$PATH:/mnt/c/Program\ Files/Docker/Docker/resources/bin"

Zusätzlich benötigt man noch 2 Aliases auf die Programme docker.exe und docker-compose.exe, dieses können auch in der ~/.bashrc hinzugefügt werden.
Wenn man es allerdings sauber machen mächte, legt man in seinem Home Verzeichnis die Datei ~/.bash_aliases an.

alias docker=docker.exe 
alias docker-compose=docker-compose.exe

 

Testen von Docker unter Linux

Nun kann überprüft werden, ob docker unter Ubuntu erreichbar ist.

/$ docker -v
Docker version 17.12.0-ce, build c97c6d6

 

Stolperfall von bash Scripten und Aliasen

Wenn man nun docker oder docker-compose innerhalb eines shell Script aufrufen möchten, kommt es leider zu einer Fehlermeldung.

/$ ./myscript.sh
docker-compose: Befehl nicht gefunden

 

Hierzu der Hinweis:
„Aliases are not expanded when the shell is not interactive, unless the expand_aliases shell option is set using shopt (see the description of shopt under SHELL BUILTIN COMMANDS below).“

Damit die aliase also greifen, muss die bash mit dem -i (interactive) Parameter gestartet werden, dann werden auch die Aliase erkannt.

> bash -i myscript.sh