Více na
Jak dostat bash nebo ssh do běžícího kontejneru v režimu na pozadí?
Chci ssh nebo bash do běžícího kontejneru docker. Podívejte se prosím na příklad:
$ sudo docker run -d webserver
webserver is clean image from ubuntu:14.04
$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
665b4a1e17b6 webserver:latest /bin/bash ... ... 22/tcp, 80/tcp loving_heisenberg
Nyní chci získat něco takového (přejít do běžícího kontejneru):
$ sudo docker run -t -i webserver (or maybe 665b4a1e17b6 instead)
$ root@665b4a1e17b6:/#
However when I run the line above I get new CONTAINER ID
$ root@42f1e37bd0e5:/#
Použil jsem Vagrant a rád bych dosáhl podobného chování jako vagrant ssh
.
940
3
Odpovědí je příkaz
attach
společnosti Docker. Takže pro můj příklad výše bude řešení následující:Pro Docker verze 1.3 nebo novější: Děkujeme uživateli WiR3D, který navrhl jiný způsob, jak získat shell kontejneru. Pokud použijeme
attach
, můžeme použít pouze jednu instanci shellu. Pokud tedy chceme otevřít nový terminál s novou instancí kontejnerového'shellu, stačí spustit následující příkaz:nebo
Od verze Docker 1.3:
Pokud byl kontejner Docker spuštěn pomocí příkazu
/bin/bash
, můžete k němu přistupovat pomocí příkazuattach
. Pokud ne, je třeba provést příkaz pro vytvoření instance Bash uvnitř kontejneru pomocíexec
.Také pro ukončení Bash, aniž byste nechali Bash běžet v nepovoleném procesu:
Ano, je to tak jednoduché.
Zkuste toto:
Zdroj: https://docs.docker.com/articles/basics/#running-an-interactive-shell