본문 바로가기
개발/인프라

docker - 컨테이너를 다루는 다양한 옵션 (생성, 확인, 삭제)

by 컴쏘 2023. 6. 28.

Docker Container 관련 주요 명령

docker container 관련해서는 몇몇 가장 많이 쓰이는 옵션(예를 들어, 생성하는 명령어, 실행하는 명령어, 생성하면서 실행하는 명령어…)을 포함한 명령어들 이 있다.

하지만, 처음 익힐 경우, 관련 명령이 어떻게 구성될 수 있는지, 차근차근 세부 명령을 알아볼 필요가 있다.

1. 컨테이너 생성

  • 각 이미지는 컨테이너로 만들어줘야 실행이 가능하다.
  • 이미지와 컨테이너는 각각 관리해줘야 한다.
  • 컨테이너 생성 시, docker 프로그램에서 이름이 자동 부여 된다.
docker create [이미지명]
docker create [이미지명:태그]

이미지만 입력하면 latest 이미지이다.

명령어의 의미는 해당 이미지를 가지고 container를 생성한다는 의미 (ex. docker create ubuntu)

입력 결과 (강의 화면 캡쳐)

명령어를 입력하면 docker container의 id가 나오게 된다. (실제 아이디는 그림과 같이 길다.)

2. 생성된 컨테이너 확인

현재 실행 중인 컨테이너 확인

docker ps

입력 결과 (강의 화면 캡쳐)

위의 입력 결과는 현재 실행 중인 컨테이너가 없는 상황의 결과이다. 

 

만약 실행 중이지 않은 컨테이너까지 포함한 전체 컨테이너를 확인하고 싶다면

docker ps -a

입력 결과 (강의 화면 캡쳐)

결과에서 나오는 항목과 그에 해당하는 설명

항목 설명
CONTAINER ID 컨테이너 ID
IMAGE 이미지 이름
COMMAND 컨테이너 실행 시 실행되는 프로세스 이름
CREATED 컨테이너 생성 후 경과 시간
STATUS 컨테이너 실행 상태 [ 대표적인 4가지 : Created(생성), Up(실행 중), Pause(중지), Existed(종료) ]
PORTS 호스트와 컨테이너 포트 사이 연결 관계 (이후 과정에서 별도로 상세히 설명)
NAMES 컨테이너 이름

docker는 어떠한 프로그램을 감싸는 개념

docker의 container는 어떤 program을 실행하는 container라는 의미

따라서, 각각의 container는 container를 만드는 이미지에 해당 container에서 실행될 명령이 무엇인지를 명시하게 되어있는데, 그것이 COMMAND이다.

예시에 나와있는 "/bin/bash"라는 의미는 bin 폴더 안에 있는 bash 프로그램이다.  따라서, shell을 실행시키도록 하는 명령어

+) bash는 shell이다.  & 운영체제가 실행되면 운영체제 위에 shell이 뜬다.

❗ 각 이미지마다, container 생성 시 실행되는 process를 기재할 수 있음 (이후 과정에서 별도로 상세히 설명). ubuntu의 경우 bash 쉘 프로그램이 실행되며, 이를 COMMAND 항목에서 확인할 수 있음 (실제 실행 파일은 리눅스 시스템에서 bin 디렉토리에 bash 프로그램을 실행하기 때문에 /bin/bash로 표기됨)

 

실행 중이지 않은 컨테이너 포함해서, 전체 컨테이너의 ID 만 출력하기 (다른 명령과 함께 사용되므로, 익혀두는 것이 좋음)

docker ps -a

입력 결과 (강의 화면 캡쳐)

3. 컨테이너 삭제

docker rm [삭제할 컨테이너 이름]

삭제할 컨테이너 이름은 컨테이너 리스트의 NAMES에 있는 이름을 의미

주의) 예시로 docker rm ubuntu 입력하면 에러가 난다. (이미지 명으로만 지울 수 없음)

Error: No such container: ubuntu

따라서,

방법 1. docker rm keen_beaver 로 하거나,

방법 2. docker rm [container ID]

입력 결과 (강의 화면 캡쳐)

ID의 일부만 써도 삭제된다. 

 

+) 컨테이너 관리를 위해 컨테이너 이름을 직접 붙일 수 있음

  • —name 옵션
docker create --name [내가 원하는 컨테이너 명] [이미지명]

# 예시
docker create --name myubuntu ubuntu

입력 결과 (강의 화면 캡쳐)


본 글은 인프런 강의 "풀스택을 위한 도커와 최신 서버 기술"에 대해 공부하여 정리한 글입니다.
[강의 링크] : https://www.inflearn.com/course/%EC%84%9C%EB%B2%84%EA%B8%B0%EC%88%A0-%ED%92%80%EC%8A%A4%ED%83%9D-3/dashboard