Docker란?
- 컨테이너 기반의 가상화 플랫폼 (오픈소스)
Container(컨테이너)란?
- 격리된 공간에서 프로세스가 동작하도록 하는 기술
- 리눅스기반 컨테이너를 지원한다.
Image(이미지)란?
- 컨테이너를 실행시키기 위한 파일들과 설정값들을 포함하고 있는 것
- layer개념을 사용하여 저장되기 때문에, 효율적으로 저장할 수 있다.
도커 설치하는 방법
- Linux : Install Docker Engine on Ubuntu
- Desktop for Window, Desktop for Mac
도커 Command
컨테이너
- 설치 : docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]
- 목록 확인 : docker ps [OPTIONS]
- 중지 : docker stop [OPTIONS] CONTAINER [CONTAINER...]
- 제거 : docker rm [OPTIONS] CONTAINER [CONTAINER...]
- 로그보기 : docker logs [OPTIONS] CONTAINER
- 컨테이너 명령어 실행 : docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
- 컨테이너 업데이트하는 방법 : 새 image (pull) → 기존 컨테이너 (stop, rm) → 새 컨테이너 (run)
* 호스트 디렉토리 마운트 추천
이미지
- 목록 확인 : docker images [OPTIONS] [REPOSITORY[:TAG]]
- 이미지 다운로드 : docker pull [OPTIONS] NAME[:TAG|@DIGEST]
- 이미지 삭제하기 : docker rmi [OPTIONS] IMAGE [IMAGE...]
이미지 빌드하기
- docker build [OPTIONS] PATH | URL | -
Dockerfile
- 일반적인 소스파일들과 dockerfile을 통해 도커 이미지를 생성한다.
- dockerfile로는 이미지 빌드용 DSL(Domain Specific Language)파일을 사용한다.
- dockerfile이 있는 path에서 build 커맨드 실행시 image가 생성된다.
Dockerfile 명령어
- FROM <image>:<tag>
- MAINTAINER <name>
- COPY <src>... <dest>
- ADD <src>... <dest>
- RUN <command>
- CMD command param1 param2
- WORKDIR /path/to/workdir
- EXPOSE <port> [<port>...]
- VOLUME ["/data"]
- ENV <key> <value>
Docker Repository
- 설치형 오픈소스 무료 이미지 저장소
Docker Hub
- Docker Inc.에서 서비스하는 기본 이미지 저장소.
- 공식 이미지들이 저장되어 있다.
- 비공개 저장은 유료이다.
Docker Compose
- YAML 형식의 설정 파일(.yml)로 여러 컨테이너 / 여러 복잡한 명령어들을 실행할 수 있도록 지원하는 툴.
- https://docs.docker.com/compose/
https://subicura.com/2017/01/19/docker-guide-for-beginners-1.html
https://www.inflearn.com/course/%EB%8F%84%EC%BB%A4-%EC%9E%85%EB%AC%B8?inst=446961aa