1. 개념 및 용어
- 컨테이너(Container): 격리된 공간에서 프로세스가 동작하는 기술
- 이미지(Image): 컨테이너 실행에 필요한 파일과 설정값등을 포함하고 있는 것
2. 설치
- 리눅스 설치
- curl -s https://get.docker.com/ | sudo sh
- cf) docker 는 기본적으로 root 권한 필요함(sudo). 일반 유저가 사용하려면 아래와 같이 한다.
- sudo usermod -aG docker $USER # 현재 접속중인 사용자에게 권한주기
- sudo usermod -aG docker your-user # your-user 사용자에게 권한주기
3. 커맨드
버전확인
- docker version
컨테이너 실행
- docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]
-d detached mode 흔히 말하는 백그라운드 모드
- -p 호스트와 컨테이너의 포트를 연결 (포워딩)
- -v 호스트와 컨테이너의 디렉토리를 연결 (마운트)
- -e 컨테이너 내에서 사용할 환경변수 설정
- -name 컨테이너 이름 설정
- -rm 프로세스 종료시 컨테이너 자동 제거
- -it -i와 -t를 동시에 사용한 것으로 터미널 입력을 위한 옵션
- -link 컨테이너 연결 [컨테이너명:별칭]
컨테이너 목록 확인하기 (ps)
docker ps [OPTIONS]
맨 처음 실행했다가 종료된 컨테이너(Exited (0))가 추가로 보입니다. 컨테이너는 종료되어도 삭제되지 않고 남아있습니다. 종료된 건 다시 시작할 수 있고 컨테이너의 읽기/쓰기 레이어는 그대로 존재합니다. 명시적으로 삭제를 하면 깔끔하게 컨테이너가 제거됩니다.
컨테이너 중지하기 (stop)
docker stop [OPTIONS] CONTAINER [CONTAINER...]
컨테이너 제거하기 (rm)
docker rm [OPTIONS] CONTAINER [CONTAINER...]
이미지 목록 확인하기 (images)
docker images [OPTIONS] [REPOSITORY[:TAG]]
이미지 다운로드하기 (pull)
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
이미지 삭제하기 (rmi)
docker rmi [OPTIONS] IMAGE [IMAGE...]
컨테이너 로그 보기 (logs)
docker logs [OPTIONS] CONTAINER
컨테이너 명령어 실행하기 (exec)
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]