컨테이너 제어 명령어
컨테이너 내려받기
예시로 nginx 컨테이너를 받는다면 다음과 같이 적을 수 있다. latest 태그는 가장 최신 버전의 컨테이너 이미지를 가져온다.
# docker pull NAME[:TAG] $ docker pull nginx:latest |
컨테이너 실행
컨테이너 실행은 일반적으로 docker run 명령어를 사용하며 다음과 같은 형식을 가진다. ubuntu:16.04 컨테이너를 실행한다면 다음과 같이 실행할 수 있다
# docker run [OPTION] IMAGE[:TAG] [COMMAND] $ docker run -i -t ubuntu:16.04 /bin/bash |
포어그라운드(fore-ground) 실행
t 옵션은 tty를 할당하고 i옵션은 표준 입출력을 사용한다. 예시로 ubuntu 16.04 버전의 컨테이너를 -i, -t 옵션을 주어 생성하고 해당 컨테이너의 기본 커맨드인 /bin/bash를 실행한다. 해당 커맨드는 입력해주지 않아도 같은 동작을 예상한다.
$ docker run -i -t ubuntu:16.04 bin/bash |
데몬으로(detached) 실행
-d 옵션을 통해 데몬으로 실행한다. 일반적으로 웹서버 컨테이너 등을 해당 모드들로 실행한다. 예시로 nginx 컨테이너를 실행한다.
$ docker run -d -p 80:80 nginx |
컨테이너 이름 할당
컨테이너를 명령어로 관리하기 위해 --name 옵션을 통해 이름을 지정한다. 이름을 지정하지 않으면 랜덤하게 이름이 부여되지만 관리하기는 어려우니 주의하자.
$ docker run -i -t --name my_ubuntu ubuntu:16.04 /bin/bash |
컨테이너 포트 포워딩
생성 시에 -p 옵션 부여한다. 위의 데몬 실행 예시에서 nginx 컨테이너에 80포트를 노출하였는데 여러개를 노출 시키려면 -p를 여러개 사용하면 된다.
$ docker run -d --name my_nginx -p 80:80 -p 3306:3306 nginx:latest |
컨테이너 종료 & 나오기
주로 컨테이너 내에서 터미널을 통해 입력하는데 exit과 Ctrl + P,Q 2가지로 나뉜다. exit 명령어는 컨테이너를 아예 종료한다. Ctrl + P,Q 명령어는 현재 컨테이너 상태를 그대로 두고 본인의 연결만 빠져나온다.
# 컨테이너 종료 $ exit |
컨테이너를 종료 시키지않고 백그라운드로 전환하고 싶을 때에는 Ctrl을 누른 상태에서 P와 Q를 순차적으로 눌러서 빠져나온다.
# 컨테이너 나오기 $ Ctrl + P,Q |
컨테이너 관리 명령어
컨테이너 목록 확인
docker ps 명령어를 통해 현재 가동되고 있는 컨테이너의 정보를 출력한다.
$ docker ps |
모든 컨테이너 목록 확인
docker ps 명령어는 가동이 중지된 컨테이너는 출력하지 않는다. -a 옵션을 포함하면 만들어져 있는 모든 컨테이너 정보를 출력한다.
$ docker ps -a |
컨테이너 재시작 및 연결
docker start 명령어를 통해 기존 실행이 중지 된 컨테이너를 시작할 수 있다. 그 후 docker attach 명령어를 통해 해당 컨테이너에 접속한다.
$ docker start my_ubuntu |
start 한 컨테이너에 내부에 attach를 통해 붙는다.
$ docker attach my_ubuntu |
컨테이너 정지
docker stop 명령어를 통해 현재 실행되고 있는 컨테이너를 구동 정지한다.
$ docker stop my_ubuntu |
컨테이너 삭제
docker rm 명령어를 통해 실행을 중지 한 컨테이너를 컨테이너 목록에서 삭제한다. 삭제하지 않고 구동만 정지한 컨테이너는 스토리지 어딘가에 남아있어 용량을 차지한다.
$ docker rm my_ubuntu |
정지와 삭제를 한번에
docker rm -f 옵션을 통해 가동 되고 있는 컨테이너를 한번에 정지 및 삭제를 할 수 있다.
$ docker rm -f my_ubuntu |
컨테이너 목록에 있는 모든 컨테이너 삭제
컨테이너 목록에 있는 모든 컨테이너를 한번에 지울 수 있다. 항상 모든, 강제라는 용어가 들어간 명령어를 사용할 때는 다시 확인하고 주의해서 사용하자.
$ docker container prune |
컨테이너 종료 시 자동 삭제 옵션
docker run --rm 옵션을 통해 컨테이너를 종료하면 자동으로 삭제되도록 설정한다.
$ docker run -i -t --rm ubuntu:16.04 |
위 명령어는 우분투 16.04 컨테이너를 실행하고 내부에서 작업을 마치고 exit 명령어로 컨테이너 종료 시 해당 컨테이너를 자동으로 삭제한다.
컨테이너 자세한 상태 정보 출력
docker inspect 명령어를 통해 해당 컨테이너의 자세한 정보 및 상태를 알 수 있다. 컨테이너가 비정상 종료 된 원인 혹은 컨테이너의 세부 정보를 보고 싶을 때 주로 사용한다.
# docker inspect [container] $ docker inspect my_ubuntu |
이미지 관련 명령어
도커 이미지 목록
docker pull 명령어를 통해 내려받은 도커 이미지 들의 목록을 출력한다.
$ docker images |
도커 이미지 삭제
컨테이너도 더 이상 사용하지 않고 해당 이미지도 사용하지 않아 삭제하게 된다면 docker rmi 명령어를 통해 이미지를 삭제할 수 있다.
# docker rmi IMAGE[:TAG] $ docker rmi ubuntu:16.04 |
참고: Docker run reference | Docker Documentation
'서버 (Linux, Windows, AWS) > Docker' 카테고리의 다른 글
[Docker] Windows 에서 Docker Desktop설치 시, WSL 2 installation is incomplete 에러 해결 (0) | 2023.02.16 |
---|