Docker Container 접속
개요
Docker 이미지를 실행한 후에 컨테이너 안으로 들어가서 확인 및 작업을 해야 할 때가 있다.
여기서는 Docker Container 접속하는 방법에 대해서 소개한다.
테스트 컨테이터 실행
먼저 테스트할 컨테이터를 실행하도록 한다.
% docker run --name nginx-server -d -p 80:80 nginx
기존에 이미 실행된 컨테이너가 있다면, 해당 컨테이너로 해도 상관 없다.
실행중인 컨테이너 목록 확인
현재 실행중인 컨테이너 목록 확인한다.
% docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7346db27830e nginx "/docker-entrypoint.…" 23 seconds ago Up 22 seconds 0.0.0.0:80->80/tcp nginx-server
컨테이너에 접속
위에서 확인한 접속을 하려는 컨테이너에 CONTAINER ID
혹은 NAMES
을 입력해서 접속을 하면 된다.
컨테이너에 CONTAINER ID
로 접속을 하면 된다.
% docker exec -it 7346db27830e /bin/bash
root@7346db27830e:/#
혹은, NAMES
로 접속을 하면 된다.
% docker exec -it nginx-server /bin/bash
root@7346db27830e:/#
exec
명령은 도커 컨테이너 안에서 명령어를 전송할때 사용된다. 이 때, 명령에 /bin/bash
로 인자로 넣게 되면, 도커 컨테이너 안에 있는 bash 쉘이 실행되는 것이다.
접속이란게 결국 리눅스의 쉘을 사용하겠다는 뜻이고, 이런 방식으로 컨테이너에 접속을 할 수 있게 된다.
컨테이너 접속 종료
컨테이너에서 접속 종료를 하려면 exit
명령을 사용하면 된다.
% docker exec -it 7346db27830e /bin/bash
root@7346db27830e:/# exit
exit
/bin/sh
으로 접속
간혹, 도커 이미지 마다 /bin/bash
명령어가 없는 경우가 있는데, 그럴 경우에는 아래와 같이 접속이 되지 않는 경우도 있다.
% docker exec -it 2910a51bdaf7 /bin/bash
OCI runtime exec failed: exec failed: unable to start container process: exec: "/bin/bash": stat /bin/bash: no such file or directory: unknown
이럴때는 /bin/sh
으로 컨테이너에 접속을 실행해 보도록 하자.
docker exec -it 285c3f2a0024 /bin/sh
최종 수정 : 2023-01-07