리눅스 환경에서 Docker 명령어와 기본 사용 방법에 대해 알아보겠습니다.
운영환경
설치
설치가 완료되면 버전을 조회하여 설치 확인을 합니다.
컨테이너 생성 및 실행
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
컨테이너 실행
다음 명령어를 실행하여 컨테이너를 시작합니다.
컨테이너 내부로 들어갑니다.(단, -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를 입력하는 것 입니다. 이 방법은 컨테이너를 정지하지 않고 빠져나옵니다.
컨테이너 확인
정지되지 않은 컨테이너만 출력합니다.
정지된 컨테이너를 포함한 모든 컨테이너를 출력합니다.
출력 결과가 줄바꿈되어 알아보기 힘들 때 --format
옵션을 사용합니다/
1 $ docker ps --format "table {{.ID}}\{{.Status}}\t{{.Image}}"
특정 컨테이너를 출력합니다.
1 $ docker ps | grep mycentos
컨테이너 이름 변경
1 $ docker rename mycentos my_centos
컨테이너 삭제
정지된 컨테이너만 삭제 가능합니다.
실행 중인 컨테이너도 삭제 가능합니다. (-f : 강제 삭제)
모든 컨테이너 삭제 가능합니다.
1 $ docker container prune
이미지 목록
이미지 삭제
이미지 빌드
1 $ docker build -t hgko ./image/