[Docker] 주요 명령어 및 기본 사용법

리눅스 환경에서 Docker 명령어와 기본 사용 방법에 대해 알아보겠습니다.

운영환경

  • CentOS 7.6

설치

1
$ yum install docker

설치가 완료되면 버전을 조회하여 설치 확인을 합니다.

1
$ docker -v

컨테이너 생성 및 실행

docker run 명령어는 컨테이너를 생성 및 실행과 동시에 컨테이너 내부로 들어갑니다.

기본 포맷입니다.

1
$ docker run (<옵션>) <이미지 식별자> (<명령어>) (<인자>)

예시입니다. 가독성을 위해 (역슬래시)를 이용해 각 설정 옵션을 구분합니다.

1
2
3
4
5
6
7
$ docker run -d \
--name hgko.default.local \
--privileged \
-h hgko --network insnet \
-v /data:/data \
-p 5914:5901 \
hgko

간략한 예시입니다.

1
$ docker run -d -i -t test /bin/bash

Run 옵션 목록

  • -d : 컨테이너를 백그라운드로 실행해야 할 때 사용
  • -name : 컨테이너를 식별할 수 있도록 이름을 부여
  • -h : 컨테이너 호스트 이름 설정
  • -v : 볼륨 마운트 (컨테이너 외부 <-> 컨테이너 내부 디렉토리 마운트)
  • -p : 포트 연결 (컨테이너 외부 <-> 컨테이너 내부 포트간의 연결)
  • --link : 내부 IP를 알 필요 없이 항상 컨테이너에 별명으로 접근하도록 설정
  • --privileged : 시스템 내 장치 등 주요 자원에 접근하며 커널의 기능을 대부분 사용할 수 있도록 설정

컨테이너 생성

docker create 명령어는 컨테이너를 생성만 할 뿐 컨테이너 내부로 들어가지 않습니다.

1
$ docker create -i -t --name mycentos centos:7

컨테이너 실행

다음 명령어를 실행하여 컨테이너를 시작합니다.

1
$ docker start mycentos

컨테이너 내부로 들어갑니다.(단, -i -t 옵션을 사용 했을 때)

1
$ docker attach mycentos

컨테이너 내부 셸 사용

mycentos 컨테이너 내부에 bash 프로세스를 실행하고, -i -t 옵션을 사용해서 bash 셸을 쓸 수 있게 유지합니다.

1
2
$ docker exec -i -t  mycentos \bin\bash
$ docker exec -i -t mycentos bash

컨테이너 내부에서 빠져나오기

컨테이너 내부에서 빠져나오는 방법은 두 가지가 있습니다. 첫 번째는 컨테이너 셸에서 exit를 입력하거나 Ctrl + D를 동시에 입력하는 것 입니다. 이 방법은 컨테이너 내부에서 빠져나오면서 동시에 컨테이너를 정지시킵니다. 두 번째는 Ctrl + P, Q를 입력하는 것 입니다. 이 방법은 컨테이너를 정지하지 않고 빠져나옵니다.

컨테이너 확인

정지되지 않은 컨테이너만 출력합니다.

1
$ docker ps

정지된 컨테이너를 포함한 모든 컨테이너를 출력합니다.

1
$ docker ps -a

출력 결과가 줄바꿈되어 알아보기 힘들 때 --format 옵션을 사용합니다/

1
$ docker ps --format "table {{.ID}}\{{.Status}}\t{{.Image}}"

특정 컨테이너를 출력합니다.

1
$ docker ps | grep mycentos

컨테이너 이름 변경

1
$ docker rename mycentos my_centos

컨테이너 삭제

정지된 컨테이너만 삭제 가능합니다.

1
$ docker rm mycentos

실행 중인 컨테이너도 삭제 가능합니다. (-f : 강제 삭제)

1
$ docker rm -f mycentos

모든 컨테이너 삭제 가능합니다.

1
$ docker container prune

이미지 목록

1
$ docker images

이미지 삭제

1
$ docker rmi <이미지 식별자>

이미지 빌드

1
$ docker build -t hgko ./image/
Share