
1. docker 설치
docker에 필요한 패키지 설치
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
도커 패키지 저장소를 인증하기 위한 인증 키 추가
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
인증키가 정상적으로 추가 되었는지 확인
sudo apt-key fingerprint 0EBFCD88

안정 버전을 제공하는 저장소 추가
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
도커 엔진 패키지 설치
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
도커 컴포즈 설치
sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
도커 설치 확인
docker version

도커 컴포즈 설치 확인
docker-compose version

도커 환경 초기화
docker container rm -f $(docker container ls -aq)
도커 디스크 용량 초기화
docker image rm -f $(docker image ls -f reference='diamol/*' -q)
2. 컨테이너 개념
컨테이너는 도커가 관리하는 독립적인 가상 리소스를 가진다.
컨테이너를 통해 격리(호스트별 어플리케이션 분리)와 밀집(한 시스템에서 CPU, 메모리를 최대한 사용) 두가지 조건을 충족 시킬 수 있다.

가상 머신(Virtual Marchine)과의 차이
어플리케이션이 독립적으로 실행되는것에 대해서는 컨테이너와 차이가 존재하지 않지만 호스트 컴퓨터의 운영체제를 공유하지 않고 별도의 운영체제를 필요로 한다. 그렇기 때문에 컨테이너보다 CPU, 메모리 소비량이 더 크고, 운영체제가 많아지기 때문에 라이선스 문제가 발생한다.

도커가 컨테이너를 실행하는 원리
도커 엔진을 통해 도커 컨테이너를 관리한다. 도커 엔진이란 도커의 관리 기능을 맡는 컴포넌트이고 백그라운드로 항시 동작하는 프로세스이다.

3. 컨테이너 실행
컨테이너 생성
docker container run --interactive --tty diamol/base
# --interactive: 컨터이너에 접속한 상태
# --tty: 터미널 세션을 통해 컨테이너 조작

현재 실행중인 컨테이너 목록 출력
docker container ls

컨테이너 내부의 어플리케이션이 실행중이여야 컨테이너의 상태도 실행 중이 되고, 컨테이너를 종료하면 CPU나 메모리를 소모하지 않는다.
컨테이너를 통해 간단한 웹 사이트 호스팅
docker container run --detach --publish 8088:80 diamol/ch02-hello-diamol-web
# --detach: 컨테이너를 백그라운드에서 실행하며 컨테이너 ID 출력
# --publish: 컨테이너 포트를 호스트 컴퓨터에게 공개 (80 -> 8088)

웹페이지 접근


컨테이너 삭제
docker container rm --force [컨테이너 ID]
# --force: 실행중인 컨테이너 삭제
#모든 컨테이너 삭제
docker container rm --force $(docker container ls --all --quiet)
4. 컨테이너 접근
docker exec -it [컨테이너 ID] sh
docker exec -it [컨테이너 ID] /bin/bash
# -i: 표준 입출력 사용
# -t: 가상 tty를 통해 접근
컨테이너 이미지 다운로드
docker image pull [이미지 이름]
docker image pull diamol/ch03-web-ping

공부&일상 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요! 질문은 언제나 환영입니다😊