-
DockerDevOps/Docker 2025. 3. 4. 13:33
1. Docker 정의
Docker : Linux 컨테이너에 프로세스 격리기술로 쉽게 컨테이너를 실행하고 관리할 수 있게 해주는 오픈소스
Docker Engine : 컨테이너를 생성하고 관리하는 주체Virtual Machine vs Docker Container
- Docekr Container : 가상화된 공간을 생성할 때 Linux 자체 기능을 사용하여 프로세스 단위의 격리환경을 만듬 (성능 손실없음)
- 가상머신과 달리 커널을 공유하여, 컨테이너의 라이브러리 및 실행파일만 존재 (용량이 적음)
- 배포하는 시간이 가상머신에 비해 빠름
2. Docker 특징
Docker Client : Docker 설치하여 build, pull, run 등 명령어 수행
DOCKER_HOST : Docker 서버로 컨테이너와 이미지 관리
Docker deamon : docker engine
Registry : 외부 이미지 저장소로 다른사람들이 공유한 이미지를 local docker host로 pull 하도록 가능- public storage : docekr hub, quay
- private storage : AWS ECR, Docker Registry
Docker Engine 기본단위 : Image, Container
Docker Image : Container = 1 : N = (Class) : (Instance)
Docker File (docker build)→ Docker Image (docker run) → Docker Container (독립된 프로세스)
3. 명령어
docker create [image] : 도커 이미지를 컨테이너로 생성
docker start [container] : 도커 컨테이너 시작
docker run [option] [image] [command] [args] : docker create + docker start
docker run -p 80:80 -d nginx : host os , container 포트를 바인딩하기 위한 옵션
docker stop [container] : conatiner 안전하게 종료
docker kill [container] : conatiner 강제 종료
docker ps -a : 모든 container 상태확인
docker inspect [container] : container 상세정보 확인
docker rm [container] : container 삭제
docker rm -f [container] : container 실행중에도 강제 삭제
docker conatiner prune : 중지된 모든 container 삭제