키워드
컨테이너 : 애플리케이션 상자 (의존성, 네트워크 환경, 파일 시스템 등 실행환경 일치)
이미지 : 애플리케이션 및 애플리케이션 구성을 함꼐 담아놓은 템플릿
: 한 개의 이미지로 여러개의 컨테이너를 만들 수 있다
레지스트리 : 이미지를 저장하는 저장소.
: 도커 CLI에서 이미지를 이용해 컨테이너를 생성할 때, 호스트 컴퓨터에 이미지가 존재하지 않는다면,
기본 레지스트리로부터 다운받게됨
( Docker Hub, Amazon ECR 등 )
프로세스, 네트워크, 파일시스템 : 컨테이너에 의해 격리되어 개별적으로 소유할 수 있는 자원
*즉, 레지스트리 > 이미지 > 컨테이너 > 프로세스,네트워크,파일시스템
도커 설치
1. for Windows : https://docs.docker.com/desktop/install/windows-install/
2. for Ubuntu : https://docs.docker.com/engine/install/ubuntu/
+ 도커 컴포즈 https://docs.docker.com/compose/install/
3. for MacOS : https://docs.docker.com/desktop/install/mac-install/
*설치 후 windows의 CLI(WSL, CMD 등)를 통해 버젼확인
docker --version
*도커 컴포즈(docker-compose) 버전확인
windows와 MacOS의 경우, 도커를 설치하면 도커컴포즈도 같이 설치된다
docker-compose --version
* 만약 Ubuntu 환경에서 도커를 사용할 경우, 명령어 앞에 sudo(관리자 권한)를 반드시 넣어야 한다
도커 특징
: 개발과 배포환경 일치, 수평확장 용이, 각 서버에 새로운 내용 배포 용이
1. 설치환경에 구애받지 않음
2. 의존성 충돌문제를 해결
: 컨테이너식 격리 및 독립적인 자원 소유
1) 프로세스 : 특정 컨테이너안에서 작동하는 프로세스는 해당 컨테이너 안에서만 액세스 가능
다른 컨테이너의 프로세스에 영향을 줄수 없음
2) 네트워크 : one 컨테이너 one IP 할당
3) 파일 시스템 : 컨테이너 안에서 사용되는 파일 시스템은 구획화 되어있음(해당 컨네이너의 명령이나 액세스의 제한)
3. 개발과 배포환경 일치 : Compose 툴 등을 이용
docker run --name postgres -e POSTGRES_PASSWORD=mysecret -d postgres
docker-compose up
4. 수평확장 용이 + 각 서버에 새로운 내용 배포 용이
: 리버스 프록시(로드 밸런서)를 통해 분산된 트래픽으로 프록시 서버를 운영함으로써, 동일한 서비스가 여러 컴퓨터에서 작동할 수 있게 해줌 ( 실행환경의 일치 )
'Codestates [Back-end] > 데일리 로그 [TIL]' 카테고리의 다른 글
22.10.06 Cloud - 배포 자동화 [Step 1. 개념] (0) | 2022.10.06 |
---|---|
22.10.05 Docker - 명령어 (0) | 2022.10.05 |
22.10.04 Step 3. 데이터베이스 연결 [ RDS ] (0) | 2022.10.01 |
22.10.02 Step 2. 클라이언트 배포 [ S3 ] (0) | 2022.10.01 |
22.10.01 AWS - Step 1. 서버 배포 [ EC2 ] (0) | 2022.10.01 |