Docker Image와 Container 관리
client와 통신
CLI 방식을 이용하여 Docker 운영
GUI 방식으로 Docker 운영
Linux Kernel이 동작하지 않는 환경에서 Docker 운영가능한 환경 제공
Docker Engine은 최신 버전(latest)을 설치하는 것보다는 버전을 지정하여 설치하는 것이 일반적
-> 최신 버전을 설치하면 latest 시점에 따른 변경사항 및 동일 코드라도 실행시 오류 발생 가능
운영 환경에서 Docker Engine 설치시에는 최신버전 (latest)보다는 안정적인 지정된 버전 설치 권장
sudo apt-get remove docker docker-engine docker.io containerd runc
sudo apt-get update
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
apt-cache madison docker-ce
출력된 버전 정보 中 1의 버전 번호를 shell 변수에 등록
VERSION=<docker ce 버전 정보>
sudo apt-get install docker-ce=$VERSION docker-ce-cli=$VERSION containerd.io docker-compose-plugin
docker version
원칙적으로 docker 명령 사용
현재 사용자를 docker 그룹에 소속시켜 사용
sudo usermod -aG docker <사용자 ID>
sudo yum update
sudo amazon-linux-extras install docker
sudo systemctl start docker
sudo systemctl enable docker
docker daemon
container daemon
OCI (Open Container Initiative) run-time
docker image 생성 기능
docker 명령을 실행하는 client 도구
어플리케이션 코드 작성
1.1 제공하려는 서비스
1.2 어플리케이션 개발 환경 필요 : 에디터 프로그램, compiler/interpreter, debugger
베이스 이미지를 이용한 Dockerfile 작성
Dockerfile build를 통해 docker image 생성
3.1 생성된 docker image를 이용한 container 실행
3.2 docker compose를 이용한 다중 container 실행
docker container 서비스 테스트
1~4 과정은 하나의 docker image 생성 과정
public/private registry에 docker image 배포
Git과 같은 버전 관리 도구를 이용하여 Dockerfile 관리
지속적인 어플리케이션 관리
1~6 과정 반복
docker <명령> [옵션] 대상 [인자]
docker 명령은 '무엇을' '어떻게' '대상은' 형식으로 사용
image, container, volume, network
manage command : image, container, volume, network
경우에 따라 생략하고 사용
command : 상위 명령에 대한 동작
명령에 대한 옵션
명령이 적용되는 대상
대상에 대한 인수
docker client 명령
docker 명령 사용법 출력
docker 구성 정보 확인
docker 디스크 사용량 확인
[<저장소(repository) 이름>/]<image 이름>:<버전 번호>
docker hub에서 image 검색
ex) docker search (linux / httpd / apache 등등...)
ex) docker pull httpd
현재 system에 존재하는 image 목록 확인
image 세부 정보
image 구성 layer와 실행 정보 확인
docker image 삭제
docker image pull (다운로드) / docker image 생성 (build)
-> docker container 생성 (create) : 격리된 프로세스 생성
-> docker container 실행 (start) : application 실행
-> docker container 중지 (stop) -> 재시작 (restart)
-> docker container 삭제 (remove) : application 종료