Docker
리눅스의 응용 프로그램들을 프로세스 격리 기술들을 사용해 컨테이너로 실행하고 관리하는 오픈 소스 프로젝트
장점
- 의존성 충돌 문제 해결
- 개발과 배포 환경을 일치시켜줌
- 수평 확장에 용이
- 각 서버에 새로운 내용을 배포하기에 용이
컨테이너에 의해 격리되어 개별적으로 소유할 수 있는 자원
- 프로세스
- 컨테이너 안에서 실행되는 프로세스는 다른 컨테이너의 프로세스에게 영향을 줄 수 없음 - 네트워크
- 컨테이너에는 하나의 IP 주소가 기본으로 할당되어 있음 - 파일시스템
- 컨테이너 안에서 사용되는 파일 시스템은 구획화되어 있음
컨테이너 기술의 가장 큰 장점은 실행 환경의 일치이다.
- 레지스트리(Registry)
- Docker Hub : https://hub.docker.com/
- 도커 이미지를 관리하는 공간
- 특별히 다른 것을 지정하지 않는다면, 도커 허브(Docker Hub)를 기본 레지스트리로 설정
- 레지스트리는 Docker Hub, Private Docker Hub, 회사 내부용 레지스트리 등으로 나뉠 수 있음 - 레포지토리(Repository)
- 레지스트리 내에 도커 이미지가 저장되는 공간
- 이미지 이름이 사용되기도 함
- GitHub의 레포지토리와 유사 - 태그(Tag)
- 해당 이미지를 설명하는 버전 정보를 주로 입력
- 특별히 다른 것을 지정하지 않는다면 latest 태그를 붙인 이미지를 가져옴
Docker 주요 명령어
- docker image pull
- docker image ls
- docker container run
- docker container ls
- docker container ps -a
- docker container rm
- docker image rm
- docker container commit : https://docs.docker.com/engine/reference/commandline/container_commit/
- docker exec
- docker-compose up # -d
- docker-compose up {특정 이미지}
- docker-compose down
- Docker Container, Data Volume
- https://ko.wikipedia.org/wiki/%EB%B3%BC%EB%A5%A8_(%EC%BB%B4%ED%93%A8%ED%8C%85)
- https://www.joinc.co.kr/w/man/12/docker/Guide/DataWithContainer
- Dockerfile : https://docs.docker.com/engine/reference/builder/
컨테이너와 VM(Virtual Machine) 비교

- https://commons.wikimedia.org/wiki/File:Docker-containerized-and-vm-transparent-bg.png
VM은 Docker와 달리 한 호스트 컴퓨터에 여러 개의 컨테이너를 띄워도 컴퓨터에 크게 무리가 가지 않는다.
또, VM을 사용하기 위해서는 해당 VM 위에 OS를 설치해야 하지만, Docker는 그럴 필요가 없다.
'Develop > DevOps' 카테고리의 다른 글
Cloud 운영 전략 (0) | 2022.12.09 |
---|---|
리눅스 명령어 - 프로세스 Kill (1) | 2022.12.08 |
Cloud 개요 및 AWS 서비스 - 수동 배포 (0) | 2022.12.08 |
Cloud 배포 자동화 (0) | 2022.12.08 |
애플리케이션 빌드 / 실행 / 배포 (0) | 2022.11.15 |