초보자를 위한 8가지 필수 Docker 명령
주요 핵심 사항
- Docker 풀(Pull): Docker Hub 또는 다른 저장소에서 미리 빌드된 이미지를 다운로드하는 명령입니다. 복잡한 설정을 직접 할 필요 없이 간편하게 사용할 수 있습니다.
- Docker 실행(Run): 이미지를 기반으로 새로운 컨테이너를 생성합니다. 분리 모드로 실행하거나 컨테이너가 계속 작동하도록 설정할 수 있습니다.
- Docker ps: 현재 실행 중인 Docker 컨테이너들의 상세 정보를 표시합니다. 컨테이너 ID, 이미지, 생성일, 상태, 할당된 포트 등을 한눈에 확인할 수 있습니다.
Docker 컨테이너는 다양한 환경에서도 문제없이 실행될 수 있도록 애플리케이션 구성 요소를 하나로 모아 관리하는 단위입니다.
Docker는 다양한 명령어를 제공하여 컨테이너를 편리하게 생성, 실행, 중지, 삭제 및 관리할 수 있도록 돕습니다.
1. 도커 풀 (Docker Pull)
docker pull 명령어를 사용하면 Docker 레지스트리에서 이미지를 가져올 수 있습니다. Docker Hub에는 사전 빌드된 다양한 이미지가 있어서 사용자가 직접 설정할 필요 없이 바로 사용할 수 있습니다.
이러한 이미지를 템플릿 삼아 애플리케이션용 Docker 컨테이너를 만들 수 있습니다. 또한, docker pull 명령어를 활용하여 저장소에 보관된 이미지를 다운로드할 수 있습니다.
터미널에서 이미지를 가져오는 명령어 형식은 다음과 같습니다.
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
이미지 태그를 지정하지 않으면 Docker는 기본 태그를 사용하여 이미지를 다운로드합니다. 예를 들어, Ubuntu 이미지를 가져오는 예시를 살펴봅시다.
docker pull ubuntu
명령어를 실행하면 다음과 유사한 결과를 볼 수 있습니다.

이미지가 제대로 다운로드되었는지 확인하려면 다음 명령어를 실행하세요.
docker images
결과로 다운로드한 이미지에 대한 자세한 정보를 확인할 수 있습니다.

한 번에 여러 이미지를 가져오려면 다음 형식을 사용합니다.
docker image pull --all-tags ubuntu
docker image pull --help 명령어를 통해 이미지 다운로드 관련 옵션들을 확인해 볼 수 있습니다.
2. 도커 실행 (Docker Run)
docker run 명령어를 사용하면 이미지에서 새로운 Docker 컨테이너를 시작할 수 있습니다. 컨테이너는 실행 중인 이미지의 인스턴스라고 할 수 있습니다. 애플리케이션을 작동시키려면 코드가 담긴 컨테이너를 실행하는 것이 필수적입니다.
컨테이너를 실행하는 기본 명령어 형식은 다음과 같습니다.
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
컨테이너가 정상적으로 실행되고 있는지 확인하기 위해 분리 모드로 실행할 수 있습니다. 다음 예시는 분리 모드로 Ubuntu 이미지를 실행하는 방법입니다.
docker run -d ubuntu:latest
터미널에는 컨테이너가 성공적으로 실행되었음을 알리는 코드가 표시될 것입니다. 예를 들어 다음과 같습니다.
8faa77f621f33473af6992c94a9e2d97c12b5c1d11a1c44897344ee862eec7e1
일반적으로 컨테이너는 잠시 실행된 후 자동으로 종료됩니다. 컨테이너가 계속 실행되도록 하려면 -t 또는 -tty 옵션을 추가해야 합니다.
docker run -d -t ubuntu:latest
docker ps 명령어를 사용하면 현재 실행 중인 컨테이너 목록을 확인할 수 있습니다. 실행 중인 Ubuntu 컨테이너를 확인할 수 있을 것입니다. Ubuntu를 Docker 컨테이너로 실행하는 방법에 대한 자세한 가이드도 참조할 수 있습니다.

컨테이너에 이름을 지정하거나, 볼륨을 추가하거나, 포트를 생성하는 등 다양한 추가 옵션을 사용할 수 있습니다. 작은 컨테이너일수록 더 빠르게 작동하므로, 알파인 이미지 등을 활용하여 이미지 크기를 줄이는 것이 좋습니다.
docker run --help 명령어를 실행하여 다양한 Docker 실행 옵션을 확인해 보시기 바랍니다.
3. 도커 ps
시스템에서 실행 중인 Docker 컨테이너 목록을 보려면 docker ps 명령어를 사용하십시오. 이 명령어는 컨테이너 ID, 이미지, 생성 날짜, 상태 등의 정보를 제공합니다. 또한 컨테이너 상태 및 컨테이너에 할당된 포트 정보도 확인할 수 있습니다.
기본 명령어 형식은 다음과 같습니다.
docker ps [OPTIONS]

다양한 옵션을 활용하여 컨테이너 목록을 원하는 형식으로 출력할 수 있습니다. 모든 옵션을 확인하려면 docker ps --help 명령어를 사용하세요.
예를 들어, --quiet 옵션을 사용하면 컨테이너 ID만 출력하고, --format 옵션을 사용하면 컨테이너 정보를 사용자 지정 형식으로 출력할 수 있습니다. --latest 옵션을 사용하여 가장 최근에 생성된 컨테이너 정보를 출력하거나 --size 또는 -s 옵션으로 컨테이너 크기 정보도 확인할 수 있습니다.
4. 도커 중지 (Docker Stop)
docker stop 명령어를 사용하여 실행 중인 하나 이상의 컨테이너를 중지시킬 수 있습니다. 사용하지 않거나 업데이트가 필요한 컨테이너를 중지할 때 유용합니다.
기본 명령어 형식은 다음과 같습니다.
docker stop [OPTIONS] CONTAINER [CONTAINER...]
컨테이너 ID를 사용하여 특정 Ubuntu 컨테이너를 중지할 수 있습니다.
docker stop 45404fe7b36e
터미널에는 중지된 컨테이너의 ID가 출력됩니다. docker ps 명령어를 실행하여 실행 중인 컨테이너 목록을 확인하면 중지된 Ubuntu 컨테이너가 더 이상 목록에 나타나지 않는 것을 확인할 수 있습니다.

다음과 같이 여러 컨테이너를 한 번에 중지할 수도 있습니다.
docker stop 90148165353a 5f0de5ef4b2b
docker stop 명령어에 대한 다른 옵션을 확인하려면 docker stop --help 명령어를 실행해 보세요.
5. 도커 시작 (Docker Start)
다음 명령어를 사용하면 중지된 컨테이너를 다시 시작하여 계속 실행할 수 있습니다.
docker start [OPTIONS] CONTAINER [CONTAINER...]
예를 들어, 이전에 중지했던 Ubuntu 컨테이너를 다시 시작해 보겠습니다.
docker start 45404fe7b36e
이제 실행 중인 컨테이너 목록에서 해당 컨테이너를 다시 확인할 수 있습니다.

docker start 명령어에 대한 추가 옵션을 확인하려면 docker start --help를 실행하세요.
6. 도커 로그 (Docker Logs)
docker logs 명령어는 실행 중인 컨테이너에서 생성된 로그를 검색하는 데 유용합니다. 로그를 통해 컨테이너의 동작을 디버깅하거나 모니터링하고 이해할 수 있습니다. docker logs 명령어의 형식은 다음과 같습니다.
docker logs [OPTIONS] CONTAINER
다양한 옵션을 사용하여 컨테이너에서 특정 정보를 검색할 수 있습니다. 여기에는 스트림 출력, 특정 타임스탬프, 환경 변수와 같은 추가 속성에 대한 로그 정보 등이 포함될 수 있습니다.
예를 들어, 컨테이너 ID를 사용하여 Ubuntu 컨테이너의 타임스탬프가 포함된 로그를 검색하는 방법은 다음과 같습니다.
docker logs --timestamps 45404fe7b36e
출력 결과는 다음과 같이 타임스탬프와 함께 표시됩니다.
2023-08-21T13:10:31.979307895Z root@45404fe7b36e:/# 2023-08-21T13:51:27.442944740Z root@45404fe7b36e:/#
다른 옵션을 사용하려면 docker log --help 명령어를 실행해 보세요.
7. 도커 실행 (Docker Exec)
docker exec 명령어를 사용하여 컨테이너 내부에서 명령어를 실행할 수 있습니다. 이 명령어를 통해 실행 중인 컨테이너의 프로세스와 상호 작용할 수 있으며, 컨테이너 내부 셸에 접속하여 문제를 해결하고 관리할 수 있습니다.
기본 명령어 형식은 다음과 같습니다.
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
먼저 docker exec 명령어를 Ubuntu 컨테이너에 적용하기 전에 해당 컨테이너가 실행 중인지 확인해야 합니다. 실행 중이지 않다면 docker start 명령어로 다시 시작할 수 있습니다.
그런 다음 다음과 같이 명령어를 실행합니다.
docker exec -it 45404fe7b36 /bin/bash
Docker는 컨테이너 내부에서 셸을 실행합니다.
root@45404fe7b36e:/#
이제 이 셸에서 컨테이너 내부의 다른 명령어를 실행할 수 있습니다.
8. 도커 푸시 (Docker Push)
docker push 명령어는 가장 중요한 Docker 명령어 중 하나입니다. 로컬 시스템의 이미지를 온라인 Docker 저장소로 업로드하는 데 사용됩니다.
Docker Hub에 이미지를 저장하면 어디서든 다운로드할 수 있다는 장점이 있습니다. 이를 통해 다른 사람들과 이미지를 공유하고 공동 작업도 할 수 있습니다.
명령어의 형식은 다음과 같습니다.
docker push [OPTIONS] NAME[:TAG]
Docker Hub에 Ubuntu 이미지를 푸시하여 사용하는 방법을 예시로 보여드리겠습니다. 이를 위해서는 먼저 Docker Hub 계정이 있어야 합니다.
먼저 터미널에서 Docker 엔진에 로그인해야 합니다. 그 다음, 푸시하려는 이미지 이름을 온라인 저장소를 가리키는 새로운 이름으로 변경해야 합니다. 마지막으로, 이름을 변경한 이미지를 Docker Hub에 푸시하면 됩니다. Docker 저장소에 앱을 호스팅하고 푸시하는 구체적인 단계에 대해 더 자세히 알아볼 수 있습니다.
고급 도커 명령어
Docker에는 Docker Compose, Docker Swarm과 같은 고급 개념이 있습니다. 이러한 도구들은 복잡한 애플리케이션을 구성하고 컨테이너를 관리하는 데 도움을 줍니다. 이러한 도구와 관련된 명령어를 학습하여 Docker 활용 능력을 향상시킬 수 있습니다.