Docker 명령어
컨테이너 실행
docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]
- 자주 사용하는 옵션
-d
: detached mode (백그라운드 모드)
-p
: 호스트와 컨테이너의 포트를 연결 (포워딩)
-v
: 호스트와 디렉토리를 연결 (마운트)
-e
: 컨테이너 내에서 사용할 환경변수 설정
-name
: 컨테이너 이름 설정
-rm
: 프로세스 종료 시 컨테이너 자동 제거
-it
: -i
와 -t
를 동시에 사용한 것 (터미널 입력을 위한 옵션)
-i
: 컨테이너의 입출력을 키보드와 화면을 통해 연결
-t
: 텍스트 기반 터미널 실행
-link
: 컨테이너 연결 [컨테이너명:별칭]
run
명령어 사용 시, 사용할 이미지가 저장되어 있는 지 확인하고 없으면 다운로드 한 후 컨테이너를 생성하고 시작
docker run ubuntu:16.04
- ubuntu 16.04 컨테이너 생성
- 위 코드의 경우 무엇을 수행할 지를 전달하지 않아 컨테이너가 생성되자마자 종료
/bin/bash
명령어를 입력해 컨테이너 실행
- redis container: redis는 메모리 기반의 다양한 기능을 가진 스토리지
- MySQL container
- tensorflow
기본 명령어
- 컨테이너 목록 확인
docker ps [OPTIONS]
-a
옵션 추가 시, 실행했다가 종료한 컨테이너도 보임
- 컨테이너 중지
- 컨테이너 제거
- 중지된 컨테이너 ID를 가져와 한번에 삭제하는 방법
- 이미지 목록 확인
- 이미지 다운로드
- 이미지 삭제
컨테이너 둘러보기
- 컨테이너 로그 보기
- 컨테이너 명령어 실행
- 컨테이너 이름 변경
- 종료 상태의 컨테이너 시작
- 컨테이너 접속
- 컨테이너 내부로 외부 파일 복사
- 컨테이너 파일로 백업
- 컨테이너 로드
컨테이너 업데이트
- 컨테이너 업데이트 과정
- 새 버전의 이미지 다운(
pull
)
- 기존 컨테이너 삭제(
stop
, rm
)
- 새 컨테이너 실행(
run
)
- 기존 컨테이너 삭제 시, 컨테이너에서 생성된 파일이 모두 사라짐
- 이를 방지하기 위해서는 외부 스토리지에 저장해야 함
- 또는 데이터 볼륨을 컨테이너에 추가해 사용해야 함
- 해당 디렉토리는 컨테이너와 별도로 저장
- 컨테이너를 삭제해도 데이터가 지워지지 않음
호스트 디렉토리 마운트
Docker Compose
- 컨테이너 조합이 많아지고 여러 설정이 추가되면 명령어가 금방 복잡해짐
- 이를 쉽게 관리하기 위해 YAML 방식의 설정파일을 이용해 Docker Compose 툴 제공
이미지 생성
docker build [OPTIONS] PATH | URL | -
-t
: 생성할 이미지 이름을 지정하는 옵션
PATH
에 Dockerfile을 만든 디렉토리 입력
Reference
- 초보를 위한 도커 안내서 - 설치하고 컨테이너 실행하기
- 초보를 위한 도커 안내서 - 이미지 만들고 배포하기