😍 Docker Services
🔹 Different pieces of the app
😍 Docker Services
🔹 사용자의 웹브라우저 어플리케이션을 사용자에게 제공
🔹 4가지의 서비스
▫ 웹브라우저 - 웹사이트 접속
▫ 웹백엔드 - 사용자가 접속 후에 프로트앤드 코드를 가져가는 경우
▫ 데이터 베이스 서비스 - 사용자에게 전달한 콘텐츠를 저장하는 곳
▫ intellignece service - 사용자에게 데이터를 주고, in-put을 받고 처리하는 작업
🧡 즉, 사용자의 요구를 받는 백앤드 서비스를 장고로 만들고, 백엔드가 정보추출, 저장 할 데이터베이스를 오픈소스로 만듦
🧡 따라서, 사용자에게 하나의 어플리케이션을 제공하지만, 내부적으로는 3가지의 서비스가 존재함 --> 이는 도커컨테이너로 구현이됨
😍 Docker Services
🔹 서비스는 실제로 "생산 중인 컨테이너"
▫ 서비스는 하나의 이미지만 실행
▫ but, 이미지가 실행되는 방식을 코드화함
▫ 어떤 포트를 사용해야 하는지 서비스가 필요한 용량을 갖기 위해 실행해야 하는 포함된 복제본의 수 등
▫ 서비스를 확장하면, 해당 SW를 실행하는 컨테인 인스턴스의 수가 변경됨
▫ 프로세스에서 서비스에 더 많은 컴퓨팅 자원 할당
➡ 서비스는 웹 사이트 어플리케이션을 제품화하고, 컨테이너로 구현됨
➡ 하나의 서비스는 하나의 이미지와 매핑이됨
ex. 컨테이너의 개수 조절 가능
😍 Port Mapping
◻ NAT/PAT
▫ NAT : Network Address Translation
▫ PAT : Port Address Translation
😍 YAML: markup language
: 프로그래밍언어들과 독립적으로 데이터 형태를 정의하는데 사용됨
: 데이터는 데이터! 동작은 동작이기 때문
: 동작자체는 데이터가 가정될 때, 그 데이터 프로그래밍 언어 동작이 독립적일 필요는 없음
: "YAML"라는 언어의 표준으로, 데이터의 형태를 나타내는 언어임
: YAML 파일 포멧으로 docker compose 파일을 만듦
➡ 데이터를 주고 받아야 할 때
➡ 즉, 포맷을 데이터로 주고 받는 표준언어
⭐ 코드는 다음과 같음
# 어플리케이션의 모든 서비스를 활성화 (start)
docker-compose up
# 어플리케이션 안의 모든 컨테이너와 서비스를 중지 (stop)
docker-compose down
# 특정 컨테이너의 개수를 늘리고 싶을 때
docker-compose scale
😍 Creat Services & port mapping
version: '3.7'
services:
web:
image: nginx
ports:
- "xxxx:xx"
database:
image: redis
⭐ 코드는 다음과 같음
# create services
docker-compose up -d
# check activated services
docker-compose config
# check activated services
docker container ls -a
docker image ls
docker stats
# stop services
docker-compose down
⭐ 코드는 다음과 같음
docker-compose up -d
docker container ls -a
curl (web browser)
docker cotainer exec -it{master container ID} /bin/bash
apt-get update
apt-get upgrade
apt-get -y install curl
# #은 번호임
curl http://worker#:##
curl http://worker#:##
docker-compose down
🌟 실행결과