๐Ÿ“’ Docker(3)

Kimdongkiยท2024๋…„ 5์›” 29์ผ

DB

๋ชฉ๋ก ๋ณด๊ธฐ
22/33

๐Ÿ“Œ Docker ๋ช…๋ น์–ด

1. Image

  • ์ด๋ฏธ์ง€ ๋นŒ๋“œ
    • docker build --platform=linux/amd64 -t urface0411/hangman
  • ์ด๋ฏธ์ง€ ๊ฒ€์ƒ‰
    • docker images
    • docker image ls
  • ์ด๋ฏธ์ง€ ์‚ญ์ œ (Image_id or Image_name)
    • docker rmi
    • docker image rm

2. Docker Hub

  • docker login -u user_id -p user_pw
  • docker pull urface0411/hangman
  • docker push urface0411/hangman

3. Container

  • docker create
  • docker run --name -p -v Image_name
  • docker ps
  • docker ps -a
  • docker ps -p
  • docker ๋ช…๋ น์–ด Container_name or Containr_id
    • start
    • stop
    • restart
    • kill
    • pause
    • unpause
    • rm

4. Conatiner logs

  • docker logs -f Container_name or Container_id
  • docker logs --tail 100 Container_name or Container_id

5. exec

  • docker run --name=hangman urface0411/hangman
  • docker exec hangman cat /etc/hosts

6. Container detach & attach

  • docker run urface0411/hangman
  • docker run -d urface0411/hangman
    k0ka0*
  • docker attach k0ka0

๐Ÿ“Œ Docker Volume

1. Docker Volume์˜ ํ•„์š”์„ฑ

  • ํŠน์  SW๊ฐ€ Docker Container๋ฅผ ํ†ตํ•ด ์ผํšŒ์„ฑ์œผ๋กœ ๋™์ž‘ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๊ณ„์†ํ•ด์„œ ๋™์ž‘ํ•ด์•ผ ํ•œ๋‹ค๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ์˜๊ตญ์ ์œผ๋กœ ๋ณด๊ด€๋˜์–ด์•ผ ํ•œ๋‹ค.

  • ์ด๋ฅผ ๋ณด์žฅํ•˜๋Š” ๊ธฐ๋Šฅ์ด Docker Volume => Data Persistence์ด๋‹ค.

  • Docker Container๋‚ด์˜ ๊ฐ€์ƒ ํŒŒ์ผ ์‹œ์Šคํ…œ๊ณผ ํ˜ธ์ŠคํŠธ ์‹œ์Šคํ…œ์˜ ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ๋งคํ•‘ํ•œ๋‹ค.

    • ex) Host File System์˜ /home/urface/logs๋ฅผ Docker Container์˜ /var/lib/airflow/logs๋กœ ๋งคํ•‘
    • ์ด ๊ฒฝ์šฐ Docker Container๊ฐ€ ์ค‘๋‹จ๋˜๋”๋ผ๋„ ๋ชจ๋“  Airflow logs๋Š” ๊ธฐ๋ก์ด ๋‚จ๊ฒŒ ๋œ๋‹ค.
  • ์ฆ‰ Container์™€ Host System์ด ํŠน์ • ํด๋”๋ฅผ ๊ณต์œ ํ•œ๋‹ค.

    • Contrinaer๊ฐ€ ์—†์–ด์ง€๋”๋ผ๋„ ๋ฐ์ดํ„ฐ๋Š” ๋‚จ๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

2. Docker Volume์˜ ์ •์˜

  • Host File System ํด๋”๋ฅผ Docker Container File System์˜ ํด๋”๋กœ ๋งˆ์šดํŠธํ•˜๋Š”๊ฒƒ์ด๋‹ค.
    • Host์—์„œ ๋‚ด์šฉ์„ ๋ฐ”๊พธ๋ฉด๋ฐ”๋กœ Docker Container์—๋„ ๋ฐ˜์˜๋œ๋‹ค.
    • ์ด๋ฅผ ํ†ตํ•ด์„œ Docker Container์˜ ์ƒํƒœ์™€ ๊ด€๊ณ„์—†์ด ๋ฐ์ดํ„ฐ๋ฅผ ์˜๊ตฌ์ ์œผ๋กœ ๋ณด๊ด€ํ•œ๋‹ค.
  • File System Mount
    • ๋งˆ์šดํŠธ๋ž€ ๋””์Šคํฌ์™€ ๊ฐ™์€ ๋ฌผ๋ฆฌ์ ์ธ ์žฅ์น˜๋ฅผ File System์˜ ํŠน์ • ์œ„์น˜(ํด๋”)์— ์—ฐ๊ฒฐํ•ด์ฃผ๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.
    • ex) ์œˆ๋„์šฐ์—์„œ USB๋ฅผ ์—ฐ๊ฒฐํ•˜๋ฉด ๋‚ด ์ปดํ“จํ„ฐ์— ์ƒˆ๋กœ์šด :D ๋˜๋Š” :E์™€ ๊ฐ™์€ ์‹์œผ๋กœ ์ƒˆ๋กœ์šด ํด๋”๊ฐ€ ์ƒ๊ธฐ๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ ๋งˆ์šดํŠธ์ด๋‹ค. (์—ฐ๊ฒฐํ•ด๋ณด๋ฉด ์œˆ๋„์šฐ์—์„œ ๋งˆ์šดํŠธ๋ผ๋Š” ๋ง์„ํ•˜๋ฉด ์‚ฌ์šฉ์ž์—๊ฒŒ ์ ‘๊ทผํ•  ๊ฒƒ์ด๋‹ค.)

3. Docker Volume Type

  • Host Volumes : docker run -v๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ํŽ˜์–ด๋กœ ์ง€์ •

    • docker run -v /home/urface/logs:/var/lib/airflow/logs
    • : ์•ž์ด Host File System Pass์ด๊ณ  ๋’ค๊ฐ€ Container File System Pass์ด๋‹ค.
  • Anonymous Volumes : docker run -v๋ฅด ์‹คํ–‰ํ•  ๋•Œ ์ปจํ…Œ์ด๋„ˆ ํŒจ์Šค๋งŒ ์ง€์ •

    • docker run -v /var/lib/mysql/data
    • ์ด ๋ฐฉ์‹์ด Dockerfile์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ์‹์œผ๋กœ Host์ชฝ์— Access๋˜์ง€๋Š” ์•Š์ง€๋งŒ ์žฌ์‹œ์ž‘ํ•ด๋„ ์œ ์ง€๋œ๋‹ค.
  • Named Volumes : docker run-v๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ์ด๋ฆ„๊ณผ ์ปจํ…Œ์ด๋„ˆ ํŒจ์Šค๋ฅผ ์ง€์ •

    • docker run -v name:/var/lib/mysql/data
    • ๊ฐ€์žฅ ์„ ํ˜ธ๋˜๋Š” ๋ฐฉ์‹์ด๋‹ค.
    • ์ด ๋ฐฉ์‹์ด ํ•˜๋‚˜์˜ Volume์„ ๋‹ค์ˆ˜์˜ ์ปจํ…Œ์ด๋„ˆ์—์„œ ๊ณต์œ ํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ด์ค€๋‹ค.
    • ์ด ํฌ๋งท์œผ๋กœ ๋’ค์—์„œ ์‚ดํŽด๋ณผ docker-compose์—์„œ๋„ ์‚ฌ์šฉ๋œ๋‹ค.
  • Volume์„ ReadOnly๋กœ ์ง€์ •ํ•˜๊ณ  ์‹ถ์„ ๊ฒฝ์šฐ

    • name:/var/lib/mysql/data:ro

4. Docker Volume ์‚ฌ์šฉ๋ฒ•

  • Dockerfile
    • VOLUME ๋ช…๋ น์„ ํ†ตํ•ด anonymous volume๋งŒ ์ง€์ • ๊ฐ€๋Šฅ
  • docker-compose
    • Host Volume์ด๋‚˜ Named Volume์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ด๋‹ค.

5. Docker Volume ์‚ฌ์šฉ ์˜ˆ : nginx

  • docker run -d --name=nignx -p 8081:80 nginx
  • Browser : http://localhost:8081/
  • docker exec --user=root -it nginx sh
    • apt update
    • apt install nano
    • nano /usr/share/nginx/html/index.html (๋‚ด์šฉ ํŽธ์ง‘ : Welcome to Docker Volume)
    • exit
  • docker restart nginx
    • ์œ„ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•˜์—ฌ /usr/share/nginx/html/index.html ๋‚ด์šฉ ํ™•์ธ์‹œ ์›์ƒ๋ณต๊ตฌ๋˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

6. Docker Volume ์‚ฌ์šฉ ์˜ˆ : nginx -v ์˜ต์…˜ ์‚ฌ์šฉ

  • ls -tl /Users/jobox/Downlads/grepp/kdt/nginx/html
    • index.html
    • test.html
  • docker run -p 8081:80 -d --name nginx_demo -v /Users/jobox/Downloads/grepp/kdt/nginx/html:/usr/share/nginx/htmlnginx
  • http://localhost:8081/
  • index.html ๋‚ด์šฉ์„ ์ˆ˜์ •ํ•˜๊ณ  ๋ธŒ๋ผ์šฐ์ €์—์„œ ์žฌ๋ฐฉ๋ฌธ
  • nginx๋ฅผ ์žฌ์‹œ์ž‘ํ•˜๊ณ  ๋‚ด์šฉ์ด ์œ ์ง€๋˜๋Š”์ง€ ํ™•์ธ

7. Docker Volume์„ docker-compose.yml์—์„œ ์‚ฌ์šฉํ•œ ์˜ˆ์‹œ

  • Host File System : airflow-setup/dags
    MySQL_to_Redshift_v2.py
    UpdateSymbol_v3.py
    UpdateSymbol.py
  • Docker Container File System : /opt/airflow/dags
    • docker exec Container_id ls -tl /opt/airflow/dags
      MySQL_to_Redshift_v2.py
      UpdateSymbol_v3.py
      UpdateSymbol.py
  • ์ด ๋‘˜์˜ ๋‚ด์šฉ์ด ๋™์ผํ•ด์•ผํ•œ๋‹ค.

8. Docker Volume ๋ช…๋ น์–ด

  • docker volume ls
  • docker volume rm
  • docker volume prune : ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋ชจ๋“  Volume ์‚ญ์ œ
  • docker volume inspect : ํŠน์ • Volume์˜ ๋‚ด์šฉ์„ ๋” ๊นŠ๊ฒŒ ์‚ดํŽด๋ณด๊ธฐ

๐Ÿ“Œ ๋‹ค์ˆ˜์˜ Container๋กœ ๊ตฌ์„ฑ๋œ SW

1. Docker ํ™˜๊ฒฝ ํด๋ฆฐ์—… - ์ปค๋งจ๋“œ ๋ผ์ธ

  • Docker Desktop์—์„œ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ง๊ด€์ ์ด๋‹ค.
    • Image๋ฅผ ์‚ญ์ œํ•˜๋ ค๋ฉด ๋จผ์ € ์‹คํ–‰ ์ค‘์ธ Container๊ฐ€ ์—†์–ด์•ผํ•œ๋‹ค.
    • ๋”ฐ๋ผ์„œ Container๋ฅผ ์ค‘๋‹จํ•œ ๋’ค Image๋ฅผ ์‚ญ์ œํ•œ๋‹ค.
  • Container ์‚ญ์ œ
    • docker container rm ~~~
    • docker container rm -f $(docker container ls -aq)
  • Image ์‚ญ์ œ
    • docker image rm ~~~
    • docker image rm $(docker image ls -q)
  • ์‚ญ์ œ ํ™•์ธ
    • docker ps
    • docker images

2. Docker ํ™˜๊ฒฝ ํด๋ฆฐ์—… - Desktop์—์„œ Troubleshoot ๋ฉ”๋‰ด ์‚ฌ์šฉ

  • Docker Desktop์—์„œ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ง๊ด€์ ์ž„

3. Voting application

4. ๋งค๋‰ด์–ผํ•˜๊ฒŒ ๋นŒ๋“œํ•˜๊ธฐ

  • docker build -t vote ./vote

  • docker build -t result ./result

  • docker build -t worker ./worker

  • docker images

  • redis์™€ postgres๋Š” ๊ณต์‹ ์ด๋ฏธ์ง€์ด๊ธฐ ๋•Œ๋ฌธ์— ๋นŒ๋“œํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค.

5. ๋งค๋‰ด์–ผํ•˜๊ฒŒ ์‹คํ–‰

  • docker run -d --name=redis redis

  • docker run -d -e POSTGRES_PASSWORD=password --name=db postgres

  • docker run -d --name=vote -p 5001:80 result

  • docker run -d --name=result -p 5002:80 result

  • docker run -d --name=worker worker

  • ์ด๋ ‡๊ฒŒ ์‹คํ–‰ํ•˜๋ฉด ๋™์ž‘ ํ• ๊นŒ?
    -> ๊ฐ ์ปดํฌ๋„ŒํŠธ๋“ค๊ฐ„์˜ ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ์ด ์•ˆ๋œ๋‹ค.

6.

7.

8. Docker Network Create

  • docker container rm -f $(docker container ls -aq)
  • docker network create mynetwork
  • docker run -d --name=redis --network mynetwork redis
  • docker run -d --name=db -e POSTGRES_PASSWORD=password --network mynetwork postgres
  • docker run -d --name=vote -p 5001:80 --network mynetwork vote
  • docker run -d --name=result -p 5001:80 --network mynetwork result
  • docker run -d --name=worker --network mynetwork worker

๐Ÿ“Œ Docker-Compose๋กœ ๋‹ค์ˆ˜์˜ Container ์‹คํ–‰

1. Docker-Compose๋ž€

  • ๋‹ค์ˆ˜์˜ Container๋กœ SW๊ฐ€ ๊ตฌ์„ฑ๋˜๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํˆด + ํ™˜๊ฒฝ์„ค์ •ํŒŒ์ผ

    • docker-compose.yml๋กœ ์„ค์ •
    • ์—ฌ๊ธฐ์„œ ๋‹ค์–‘ํ•œ ํ…Œ์ŠคํŠธ๋“ค๋„ ์ˆ˜ํ–‰๊ฐ€๋Šฅํ•˜๋‹ค.
    • ๋‹ค์–‘ํ•œ ๋ฒ„์ „์„ ๋งŒ๋“œ๋Š” ๊ฒƒ๋„ ์ผ๋ฐ˜์ ์ด๋‹ค.(dev, test, prod๋“ฑ๋“ฑ)
  • ๊ฐœ๋ณ„ Container๋ฅผ ๋”ฐ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ํ›จ์”ฌ ๋” ์ƒ์‚ฐ์„ฑ์ด ๋†’๋‹ค.

  • ํ™˜๊ฒฝ์„ค์ • ํŒŒ์ผ์˜ ์ด๋ฆ„์€ docker-compose.yml์ด๋‚˜ docker-compose.yaml์ด๋‹ค.

  • ํ•˜์ง€๋งŒ ๊ทธ๋งŒํผ ๋ฐฐ์›Œ์•ผํ•  ๊ฒƒ๋„ ๋งŽ๊ณ  ๋ณต์žกํ•ด์ง„๋‹ค.

  • ์‚ฌ์šฉ๋ฒ• ์ž์ฒด๋Š” ๊ฐ„๋‹จํ•˜๋‹ค -> SW๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ชจ๋“  ์ปจํ…Œ์ด๋„ˆ์—๊ฒŒ ์ ์šฉ๋œ๋‹ค.

    • docker-compose build
    • docker-compose up -> run๊ณผ ๊ฐ™์€ ๊ธฐ๋Šฅ
    • docker-compose pull
    • docker-compose ps
    • docker-compose down
    • docker-compose start
    • docker-compose stop
    • docker-compose rm
  • ๋ฆฌ๋ˆ…์Šค์˜ ๊ฒฝ์šฐ docker-compose๋ฅผ ๋”ฐ๋กœ ์„ค์น˜ํ•ด์•ผํ•œ๋‹ค.

    $docker-compose --version

2. docker-compose.yml ์ž‘์„ฑ

  • ๋‹ค์–‘ํ•œ ๋ฒ„์ „์ด ์กด์žฌํ•˜์ง€๋งŒ v2์™€ v3๊ฐ€ ํ•ฉ์ณ์ง„๊ฒƒ์„ ์‚ฌ์šฉํ•˜์ž
  • services : ๋‹ค์Œ์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌ์„ฑํ•˜๋Š” ์„œ๋น„์Šค๋“ค์„ ์ง€์ •
    • ๊ฐ ์„œ๋น„์Šค๋Š” ๋ณ„๊ฐœ์˜ Docker Image ์ง€์ •๊ณผ Docker Container ์‹คํ–‰์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.
    • ๊ฐ ์„œ๋น„์Šค๋Š” ์ž์‹ ์˜ Dockerfile์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผํ•œ๋‹ค.
    • ์•„๋‹ˆ๋ฉด docker hub๋“ฑ์—์„œ Image๋ฅผ ๋‹ค์šด๋กœ๋“œ ํ•œ๋‹ค.
    • ์„œ๋น„์Šค ์ด๋ฆ„์€ ์–ด๋–ป๊ฒŒ ์ž‘๋ช…ํ•˜๋“  ์ƒ๊ด€ ์—†๋‹ค.
  • Volumes : ์•ž์„œ ์‚ฌ์šฉ๋œ docker volume๋“ค์„ ์ง€์ •ํ•œ๋‹ค.
  • networks : ์•ž์„œ ์‚ฌ์šฉ๋œ network๋“ค์„ ์ง€์ •ํ•œ๋‹ค.

3. docker-compose vs. docker compose

  • v1 : docker-compose
  • v2 : docker compose
  • Dokcer 1.27ver ๋ถ€ํ„ฐ docker์— ๋ช…๋ น์œผ๋กœ compose๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ๋‹ค.
    • docker-compose ๋ณด๋‹ค๋Š” "docker compose"๋ฅผ ์“ฐ๋Š” ๊ฒƒ์ด ๋” ์ข‹๋‹ค.
    • ๋ณ„๋„๋กœ docker-compose๋ฅผ ์„ค์น˜ํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค.
    • ํ•˜์ง€๋งŒ ์•„์ง๊นŒ์ง€ ๋Œ€๋ถ€๋ถ„์˜ DOC์ด docker-compose์ค‘์‹ฌ์œผ๋กœ ์ž‘์„ฑ๋˜์–ด์žˆ๋‹ค.

4. docker-compose.yaml or docker-compose.yml

  • docker compose ๋ช…๋ น์˜ ์œ„ ๋‘˜ ์ค‘์˜ ํ•˜๋‚˜๋ฅผ ์ฐพ๋Š”๋‹ค.
    • ๋งŒ์ผ ๋‘˜๋‹ค ์กด์žฌํ•œ๋‹ค๋ฉด ERROR๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.
  • ๋งŒ์ผ ๋‹ค๋ฅธ ์ด๋ฆ„์˜ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด -f ์˜ต์…˜์„ ์‚ฌ์šฉํ•œ๋‹ค.
    • docker-compose -f docker-compose.mac.yml up
  • docker-compose.yml ์˜ˆ์‹œ
services:
	frontend:
    	build: ./forntend
        ports:
        	- 3000:3000
    backend:
    	build: ./backend
        ports:
        	- 3001:3001
        environment:
        	DB_URL: mongodb://database/vidly
    database:
    	image: mongo:4.0-xenial
        ports:
        	- 27017:27017
        volumes:
        	- vidly: /data/db

volumes:
	vidly:
    ...
    
networks:
	...

5. docker-compose๋กœ ์ด๋ฏธ์ง€ ์ƒ์„ฑ๊ณผ ๋ถ„๋ฆฌ

  • docker-compose build
    • build ํ‚ค๋กœ ์ง€์ •๋œ ๊ฒƒ๋“ค ๋Œ€์ƒ
  • docker-compose pull
    • docker hub์—์„œ ์ด๋ฏธ์ง€๋“ค์„ ์ฝ์–ด์˜ค๋ ค๊ณ  ํ•œ๋‹ค.
  • docker images
    • ๊ฐ ๊ฐœ๋ณ„ ์ด๋ฏธ์ง€ ์•ž์— ํด๋” ์ด๋ฆ„์„prefix๋กœ ๋ถ™์ธ๋‹ค.(docker hub์—์„œ ์ฝ์–ด์˜จ ๊ฒƒ ์ œ์™ธ)
  • docker-compose images
    • ์ปจํ…Œ์ด๋„ˆ์— ์˜ํ•ด ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” ์ด๋ฏธ์ง€๋“ค๋งŒ ๋ณด์—ฌ์ค€๋‹ค.
  • docker-compose push
    • docker hub๋กœ ์ด๋ฏธ์ง€๋“ค์„ ํ‘ธ์‹œํ•˜๋ ค๊ณ  ํ•œ๋‹ค.

6. docker-compose๋กœ SW ์‹œ์ž‘๊ณผ ์ค‘๋‹จ

  • docker-compose up : build -> create -> start

    • docker-compose create
    • docker-compose start
  • docker-compose down

  • docker-compose stop

  • docker-compose rm

  • docker-compose ls
    -> docker-compose๋ฅผ ๊ทธ๋ฃน๋ณ„๋กœ ๋ณด์—ฌ์ค€๋‹ค.

  • docker-compose ps
    -> docker-compose๋กœ ์‹คํ–‰๋œ ์ปจํ…Œ์ด๋„ˆ์˜ ๊ฐœ๋ณ„์  ์ƒํƒœ๋ฅผ ๋ณด์—ฌ์ค€๋‹ค.

7. docker-compose Networking

  • docker ๋ผ๋ฆฌ ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ
    • services์— ์ค€ ์ด๋ฆ„์œผ๋กœ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์ด ์ƒ์„ฑ๋œ๋‹ค.
    • ๋‚ด๋ถ€์— DNS ์„œ๋ฒ„๊ฐ€ ํ•˜๋‚˜ ์ƒ์„ฑ๋˜์–ด ์ด๋ฆ„์„๋‚ด๋ถ€ IP๋กœ ๋ณ€ํ™˜ํ•ด์ค€๋‹ค.
  • ๋ณ„๋„๋กœ ๋„คํŠธ์›Œํฌ๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด
    • networks์— ๋„คํŠธ์›Œํฌ๋ฅผ ๋‚˜์—ดํ•˜๊ณ  ๋„คํŠธ์›Œํฌ๋ฅผ ์ ์ ˆํ•˜๊ฒŒ์„œ๋น„์Šค์— ์ง€์ •ํ•ด์ฃผ์–ด์•ผํ•œ๋‹ค.
  • docker network ls

8. 5๊ฐœ์˜ Container๋ฅผ ์ผ์ผํžˆ ์‹คํ–‰ํ–ˆ์„ ๋•Œ์˜ ๋ฌธ์ œ์ 

  • Postgres๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ถ€๋ถ„์ด ์ œ๋Œ€๋กœ ๋™์ž‘ํ•˜์ง€ ์•Š์•˜๋‹ค.

    • docker run -d --name=db -e POSTGRES_PASSWORD=password --network mynetwork postgres
  • worker/Progream.cs

  var pgsql = OpenDbConnection("Service=db;Username=postgres;Password=postgres;");
  var redisConn = OpenRedisConnection("redis");
  • ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด Container๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ์•„๋ž˜ 2๊ฐœ์˜ ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ ๋„˜๊ฒจ์ฃผ์–ด์•ผ ํ•œ๋‹ค.
    • POSTGRES_USER: "postgres"
    • POSTGRES_PASSWORD: "postgres"
    • ์ด๊ฑธ docker-compose ํ™˜๊ฒฝ ์„ค์ • ํŒŒ์ผ์„ ํ†ตํ•ด ๋„˜๊ธฐ๋ฉด์„œ ํ•ด๊ฒฐํ•ด๋ณผ ์˜ˆ์ •์ด๋‹ค.

0๊ฐœ์˜ ๋Œ“๊ธ€