docker attach
Docker 컨테이너에 연결할 수 있지만 실제로는 같은 것이 아닙니다 ssh
. 예를 들어 컨테이너가 웹 서버를 실행중인 경우 웹 서버 프로세스 docker attach
의 표준 연결에 연결될 수 있습니다 . 반드시 쉘을 제공하지는 않습니다.
docker exec
명령은 당신이 찾고있는 무엇 아마; 기존 컨테이너 내에서 임의의 명령을 실행할 수 있습니다. 예를 들면 다음과 같습니다.
docker exec -it <mycontainer> bash
물론, 실행중인 모든 명령이 컨테이너 파일 시스템에 있어야합니다.
위의 명령 <mycontainer>
에는 대상 컨테이너의 이름 또는 ID가 있습니다. 당신이 사용하고 있는지 여부는 중요하지 않습니다 docker compose
. 다만 실행 docker ps
및 사용 ID (첫 번째 열에 표시 16 진수 문자열) 또는 이름 중 하나는 (마지막 열에 표시). 예를 들면 다음과 같습니다.
$ docker ps
d2d4a89aaee9 larsks/mini-httpd "mini_httpd -d /cont 7 days ago Up 7 days web
나는 뛸 수 있습니다:
$ docker exec -it web ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
18: eth0: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
link/ether 02:42:ac:11:00:03 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.3/16 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::42:acff:fe11:3/64 scope link
valid_lft forever preferred_lft forever
나는 다음을 실행하여 동일한 것을 달성 할 수 있습니다.
$ docker exec -it d2d4a89aaee9 ip addr
마찬가지로 컨테이너에서 쉘을 시작할 수 있습니다.
$ docker exec -it web sh
/ # echo This is inside the container.
This is inside the container.
/ # exit
$