: 도커 데몬이 동작하고 있는 시스템
: 실행파일과 운영환경이 모두 들어 있는 독립된 공간
: 컨테이너 이미지를 생성할 수 있는 지시어(Instruction)을 적어놓은 파일
# | comment |
FROM | 컨테이너 베이스 이미지 (운영환경) |
MAINTAINER | 이미지 생성한 사람의 이름 및 정보 |
LABEL | 컨테이너 이미지에 컨테이너 정보를 저장 |
RUN | 컨테이너 빌드를 위해 Base Image에서 실행할 Command |
COPY | 컨테이너 빌드시 호스트의 파일을 컨테이너로 복사 |
ADD | 컨테이너 빌드시 호스트의 파일(tag, url)을 컨테이너로 복사 |
WORKDIR | 컨테이너 빌드시 명령이 실행될 작업 디렉터리 설정 |
ENV | 환경 변수 지정 |
USER | 명령 및 컨테이너 실행시 적용할 유저 설정 |
VOLUME | 파일 또는 디렉토리를 컨테이너의 디렉토리로 마운트 |
EXPOSE | 컨테이너 동작 시 외부에서 사용할 포트 지정 |
CMD | 컨테이너 동작 시 자동으로 실행할 서비스나 스크립트 지정 |
ENTRYPOINT | CMD와 함께 사용하면서 command 지정 시 사용 |
https://docs.docker.com/engine/reference/builder/
registry 컨테이너를 이용해 Private 컨테이너 레지스트리 운영
docker run -d -p 5000:5000 --restart always --name registry registry:2
docker images eundms.com:5000/ubuntu:18.04 #private registry 는 url까지 명시해야 한다
docker pull eundms.com:5000/ubuntu:18.04
docker search [옵션] <이미지이름:태그명>
docker pull [옵션] <이미지이름:태그명> # 이미지 다운로드
docker images # 다운로드 받은 잉미지 목록 출력
docker inspect [옵션] <이미지이름:태그명> # 다운로드 받은 이미지 상세보기
docker rmi [옵션] <이미지이름> # 이미지 삭제
docker create [옵션] <이미지이름:태그명> #컨테이너 생성
docker start [옵션] 컨테이너이름 #컨테이너 실행
docker run [옵션] <이미지이름:태그명> #컨테이너 생성/실행
docker ps [옵션] #실행 중인 컨테이너 목록 확인
docker stop [옵션] 컨테이너이름 #동작중인 컨테이너 중지
docker rm [옵션] 컨테이너이름 #컨테이너 삭제
docker ps [옵션] #실행중인 컨테이너 목록 확인
docker attach [옵션] 컨테이너이름 #포그라운드로 실행중인 컨테이너에 연결
docker exec [옵션] 컨테이너이름 #동작중인 컨테이너에 NEW 명령어 추가 실행
docker top [옵션] 컨테이너이름 #컨테이너에서 동작되는 프로세스 확인
docker logs [옵션] 컨테이너이름 #동작중인 컨테이너가 생성한 로그 보기
- 컨테이너는 호스트 하드웨어 리소스의 사용 제한을 받지 않는다
- 컨테이너가 필요로 하는 만큼의 리소스만 할당해야 한다
- Docker command를 통해 CPU, Memory, Disk I/O 을 제한할 수 있다
- 제한 단위는 b, k, m,g 로 할당
--memory, -m # 컨테이너가 사용할 최대 메모리 양 지정
--memory-swap # 컨테이너가 사용할 스왑 메모리 영역에 대한 설정, 메모리 + 스왑. 생략시 메모리의 2배가 설정됨
--memory-reservation # --memory값보다 적은 값으로 구성하는 소프트 제한 값 설정
--oom-kill-disable # OOM Killer가 프로세스 kill하지 못하도록 보호
docker run -d -m 512m --memory-reservataion 500m nginx:1.14
--cpus # 컨테이너에 할당할 CPU core수 지정, --cpus="1.5" 컨테이너가 최대 1.5개의 CPU 파워 사용 가능
--cpuset-cpus #컨테이너가 사용할 수 있는 CPU나 코어를 할당. cpu index는 0부터, --cpuset-cpus=0-4
--cpu-share #컨테이너가 사용하는 CPU 비중을 1024값을 기반으로 설정 --cpu-share 2048 기본 값보다 두 배 많은 CPU 자원을 할당
https://youtu.be/7HA_00KNtbc?list=PLApuRlvrZKogb78kKq1wRvrjg1VMwYrvi&t=749
docker monitoring commands
docker stats [OPTIONS] [CONTAINER...] #실행 중인 컨테이너의 런타임 통계를 확인
docker events -f container=<NAME> #도커 호스트의 실시간 event 정보를 수집해서 출력
docker image -f container=<NAME>
https://github.com/google/cadvisor
[Docker] Docker 네트워크 구조 + 종류와 각각의 특징 (2) (0) | 2025.01.11 |
---|---|
[Docker] Docker의 네트워크 구조에 대해 알아보자 (1) (0) | 2024.01.01 |
[AWS] IAM ? (0) | 2022.06.19 |
05. 클라우드 실현 기술 (0) | 2021.10.04 |
04. 클라우스 서비스와 그 이용법 (0) | 2021.10.01 |