본문 바로가기

Dev

Docker 기본 명령어 튜토리얼

Docker는 애플리케이션과 서비스를 실행할 수 있는 격리된 환경인 컨테이너를 생성하고 실행하는 데 유용한 도구입니다. 이 튜토리얼에서는 가장 일반적인 docker 명령어와 그 사용법에 대해 알아보겠습니다.

Docker Search

docker search 명령어를 사용하면 Docker Hub에서 이미지를 검색할 수 있습니다. Docker Hub는 컨테이너를 생성하는 데 사용할 수 있는 이미지의 공개 저장소입니다. 예를 들어, Ubuntu Linux 이미지를 찾고 싶다면 다음과 같이 실행할 수 있습니다:

docker search ubuntu

이렇게 하면 "ubuntu"라는 쿼리와 일치하는 이미지 목록과 함께 별점(사용자가 이미지를 좋아한 횟수), 설명, 공식 상태(Docker가 관리하는 이미지인지 여부) 등의 정보가 반환됩니다.

필터와 옵션을 사용하여 검색 결과를 세부적으로 조정할 수도 있습니다. 예를 들어, 공식 이미지 중에서 최소 100개의 별점을 받은 이미지만 찾고 싶다면 다음과 같이 실행할 수 있습니다:

docker search --filter=is-official=true --filter=stars=100 ubuntu

이렇게 하면 ubuntu와 ubuntu-upstart 두 개의 이미지만 반환됩니다.

Docker Pull

docker pull 명령어를 사용하면 Docker Hub나 다른 레지스트리에서 이미지를 로컬 머신에 다운로드할 수 있습니다. 예를 들어, 최신 버전의 Ubuntu Linux 이미지를 다운로드하고 싶다면 다음과 같이 실행할 수 있습니다:

docker pull ubuntu

이렇게 하면 "latest"라는 태그가 붙은 이미지가 다운로드됩니다. 이 태그는 보통 Ubuntu의 가장 최근 안정 버전에 해당합니다. Ubuntu의 특정 버전을 원한다면 다른 태그를 지정할 수도 있습니다. 예를 들어, Ubuntu 18.04 LTS (Bionic Beaver)을 원한다면 다음과 같이 실행할 수 있습니다:

docker pull ubuntu:18.04

Docker Hub에서 각 이미지의 사용 가능한 태그 목록을 확인하거나 --all-tags 옵션을 docker search와 함께 사용하여 확인할 수 있습니다.

Docker Images

docker images 명령어를 사용하면 로컬 머신에 저장된 모든 이미지들을 나열할 수 있습니다. 예를 들어, 다음과 같이 실행하면:

docker images

로컬 머신에 다운로드하거나 생성한 모든 이미지들과 함께 저장소 이름(이미지의 이름), 태그(이미지의 버전), 이미지 ID(각 이미지에 대한 고유 식별자), 생성 날짜(이미지가 생성된 날짜), 크기(이미지가 차지하는 디스크 공간) 등의 정보가 표시됩니다.

필터와 옵션을 사용하여 나열된 내용을 세부적으로 조정할 수도 있습니다. 예를 들어, Docker Hub에서 공식적으로 제공되는 이미지만 보고 싶다면 다음과 같이 실행할 수 있습니다:

docker images --filter=is-official=true

이렇게 하면 ubuntu, alpine, busybox 등의 이미지만 표시됩니다.

Docker Run

docker run 명령어를 사용하면 이미지로부터 컨테이너를 생성하고 실행할 수 있습니다. 예를 들어, 다음과 같이 실행하면:

docker run ubuntu

ubuntu 이미지로부터 컨테이너를 생성하고 실행합니다. 그러나 이 명령어는 컨테이너에 어떤 명령어도 전달하지 않기 때문에 컨테이너는 바로 종료됩니다.

컨테이너가 무엇인가를 수행하도록 하려면 컨테이너에 명령어를 전달해야 합니다. 예를 들어, 다음과 같이 실행하면:

docker run ubuntu echo "Hello World"

ubuntu 이미지로부터 컨테이너를 생성하고 echo "Hello World"라는 명령어를 실행합니다. 그러면 터미널에 "Hello World"라는 메시지가 출력됩니다.

컨테이너와 상호작용하기 위해서는 -it 옵션을 사용하여 대화형 모드로 실행해야 합니다. 예를 들어, 다음과 같이 실행하면:

docker run -it ubuntu bash

ubuntu 이미지로부터 컨테이너를 생성하고 bash 셸을 실행합니다. 그러면 터미널에서 컨테이너의 셸에 접속할 수 있습니다.

컨테이너에서 나오기 위해서는 exit 명령어나 Ctrl+D 키 조합을 사용할 수 있습니다.

Docker Ps

docker ps 명령어를 사용하면 로컬 머신에서 실행 중인 모든 컨테이너들을 나열할 수 있습니다. 예를 들어, 다음과 같이 실행하면:

docker ps

실행 중인 모든 컨테이너들과 함께 컨테이너 ID(각 컨테이너에 대한 고유 식별자), 이미지(컨테이너가 생성된 이미지), 명령(컨테이너가 실행하는 명령), 생성 시간(컨테이너가 생성된 시간), 상태(컨테이너의 현재 상태), 포트(컨테이너가 노출하는 포트), 이름(컨테이너의 이름) 등의 정보가 표시됩니다.

필터와 옵션을 사용하여 나열된 내용을 세부적으로 조정할 수도 있습니다. 예를 들어, ubuntu 이미지로부터 생성된 컨테이너만 보고 싶다면 다음과 같이 실행할 수 있습니다:

docker ps --filter=ancestor=ubuntu

이렇게 하면 ubuntu 이미지로부터 생성된 컨테이너들만 표시됩니다.

docker ps 명령어는 기본적으로 실행 중인 컨테이너들만 나열합니다. 종료된 컨테이너들도 보고 싶다면 -a 옵션을 사용할 수 있습니다. 예를 들어, 다음과 같이 실행하면:

docker ps -a

실행 중인 컨테이너뿐만 아니라 종료된 컨테이너들도 모두 표시됩니다.

Docker Start

docker start 명령어를 사용하면 종료된 컨테이너를 다시 시작할 수 있습니다. 예를 들어, 다음과 같이 실행하면:

docker start <container-id>

<container-id>에 해당하는 컨테이너를 다시 시작합니다. <container-id>는 docker ps -a 명령어로 확인할 수 있습니다.

 

docker stop: 컨테이너 정지하기

docker stop 명령어는 실행중인 컨테이너를 정지시키는 명령어입니다. 정지된 컨테이너는 docker start로 다시 시작할 수 있습니다.

예제:

# hello-world라는 이름의 컨테이너를 정지시킵니다.
docker stop hello-world

docker start: 컨테이너 재시작하기

docker start 명령어는 정지된 컨테이너를 다시 시작시키는 명령어입니다. 재시작된 컨테이너는 이전에 설정된 옵션들을 그대로 유지합니다.

예제:

# hello-world라는 이름의 컨테이너를 재시작합니다.
docker start hello-world

docker rm: 컨테이너 삭제하기

docker rm 명령어는 정지된 컨테이너를 삭제하는 명령어입니다. 삭제된 컨테이너는 복구할 수 없으므로 주의해야 합니다.

예제:

# hello-world라는 이름의 컨테이너를 삭제합니다.
docker rm hello-world

docker rmi: 이미지 삭제하기

docker rmi 명령어는 도커 이미지를 삭제하는 명령어입니다. 이미지가 여러 태그로 참조되고 있다면 해당 태그만 삭제되고, 태그가 하나뿐이라면 이미지와 태그 모두 삭제됩니다1. 실행중인 컨테이너의 이미지는 -f 옵션을 사용하지 않으면 삭제할 수 없습니다1.

예제:

# ubuntu:latest라는 태그의 이미지를 삭제합니다.
docker rmi ubuntu:latest