도커를 이용해 컨테이너 이미지 다루기
백그라운드 동작 이해
- 이미지 빌드 과정
- 도커 클라이언트가 디렉터리의 컨텐츠를 데몬에 업로드
- 필요한 이미지가 로컬에 저장돼 있지 않은 경우 도커가 이미지를 pull (도커 허브)
- 새로운 이미지를 빌드 한다
- 이미지 레이어란
- 이미지는 하나의 큰 바이너리 덩어리가 아니라 여러 레이어로 구성된다
- 공유하는 이미지 레이어는 단 한번만 저장됨 (저장된 레이어가 있다면 저장되지 않은 레이어만 다운로드 함)
- 새로운 이미지 생성 시 여러 레이어를 만들게 된다
- 새로 생성된 이미지는 로컬에 저장된다
- 컨테이너 실행 과정
- 로컬 머신에 실행한 이미지가 저장돼 있는지 확인
- 이미지가 없는 경우 도커는 레지스트리(도커 허브)로부터 이미지를 pull
- 도커가 이미지로 부터 컨테이너를 생성 및 명령어 실행
명령어 모음
docker build -t <image> <directory>
- 컨테이너 이미지 생성
- <directory>의 컨텐츠를 기반으로 이미지를 빌드하라
docker images
- 도커 이미지 리스트
docker run <image>:<tag>
- tag의 default 값은 latest이다
docker run --name <containerName> -p <localPort>:<containerPort> -d <image>
- -d: 컨테이너를 백그라운드에서 실행
- local = 도커 데몬이 실행 중인 곳, DOCKER_HOST 환경 변수로 확인
docker exec -it <containerName> bash
- 컨테이너 내부에서 셸 실행
- -i: 표준 입력을 오픈으로 유지(셸에 명령어 입력)
- -t: 의사 터미널 할당(프롬프트 화면 표시)
docker ps
- 실행 중인 컨테이너 조회
- -a: 중지된 컨테이너도 조회
docker inspect <containerName>
- 상세 정보를 json으로 출력
docker stop <containerName>
- 컨테이너 중지
docker tag <image> <dockerHubId>/<imageName>
- 도커 허브의 규칙에 따라 이미지 태그 지정
쿠버네티스 클러스터
명령어
- kubectl get nodes
- 클러스터 노드 조회 (클러스터 동작 상태 확인)
- kubectl describe node
- 오브젝트 세부 정보 가져오기