11. μλ²μ vnstat μ€μΉ (docker-compose.yml μ΄μ©)
μ°λ¦¬λ μμμ vnstat νλ‘κ·Έλ¨μ docker λͺ λ Ήμ΄λ‘ μλ²μ μ§μ μ€μΉν΄ 보μμ΅λλ€.
μ΄λ²μλ docker-compose.ymlλ‘ μ€μΉν΄ 보λλ‘ νκ² μ΅λλ€.
1. μ§λλ² μ¬μ©ν docker λͺ λ Ήμ΄
docker run -d \
--restart=unless-stopped \
--network=host \
-e HTTP_PORT=8685 \
-v /etc/localtime:/etc/localtime:ro \
-v /etc/timezone:/etc/timezone:ro \
--name vnstat \
vergoh/vnstat
2. docker-compose.yml νμμΌλ‘ λ³ν
vnstat:
image: vergoh/vnstat:latest
container_name: vnstat
restart: unless-stopped
network_mode: "host"
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- ./../../vnstatdb:/var/lib/vnstat #β¨μλ«μͺ½ μ€λͺ
μ°Έμ‘°
environment:
- HTTP_PORT=8685 # Environment variables μ€λͺ
μ
- HTTP_BIND=* # https://hub.docker.com/r/vergoh/vnstat
- HTTP_LOG=/dev/stdout # μ°Έκ³
- LARGE_FONTS=0
- CACHE_TIME=1
- RATE_UNIT=1
- PAGE_REFRESH=0
β¨ ./../../vnstatdb:/var/lib/vnstat μ€λͺ
컨ν μ΄λ μμ /var/lib/vnstat λλ ν 리 λ΄μ©μ μλ²μ νμ¬ λλ ν 리μ μμμ μμμ vnstatdbλΌλ λλ ν 리μ μ°κ²°μμΌ μ€. μ΄ μμ vnstat.db λΌλ νμΌμ΄ μμΌλ©°, μ΄ νμΌμ μ§μ°μ§ μλν vnstat 컨ν μ΄λλ₯Ό μμ ν λ€μ μμ±νλλΌλ vnstat.dbμ μ μ₯λμ΄ μλ μ΄μ κΈ°λ‘λ€μ κ·Έλλ‘ μ μ§λ¨.
π΄ (μ£Όμ) 컨ν μ΄λλ₯Ό μμ ν λ€μ μμ±νλ κ²½μ° λ€νΈμν¬ μ€μ κ° λ±μ΄ λ°λκ² λ©λλ€. μ΄λ΄ κ²½μ° www λλ ν 리 λ°μ μλ vnstatdb λλ ν 리λ₯Ό μμ ν, vnstat 컨ν μ΄λ κΉμ§ μμ ν νμ λ€μ 컨ν μ΄λλ₯Ό μμ±ν΄ μ£Όμ΄μΌ μ λλ‘λ μ 보λ₯Ό λ³Ό μ μμ΅λλ€. (μμ λ root κΆνμΌλ‘..)
3. μ΅μ’ docker-compose.yml
version: '3.9'
services:
web:
image: nginx
container_name: nginx_cname
restart: unless-stopped
volumes:
- ./data:/usr/share/nginx/html
ports:
- "80:80"
web2:
image: nginx
container_name: nginx_cname2
restart: unless-stopped
volumes:
- ./data2:/usr/share/nginx/html
ports:
- "8080:80"
vnstat:
image: vergoh/vnstat:latest
container_name: vnstat
restart: unless-stopped
network_mode: "host"
depends_on: π΄ (23.01.02 μΆκ°)μλ μ€λͺ
μ°Έμ‘°
- web1 π΄ (23.01.02 μΆκ°)μλ μ€λͺ
μ°Έμ‘°
- web2 π΄ (23.01.02 μΆκ°)μλ μ€λͺ
μ°Έμ‘°
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- ./../../vnstatdb:/var/lib/vnstat
environment:
- HTTP_PORT=8685
- HTTP_BIND=*
- HTTP_LOG=/dev/stdout
- LARGE_FONTS=0
- CACHE_TIME=1
- RATE_UNIT=1
- PAGE_REFRESH=0
π΄β¨β¨π΄ μ΅κ·Όμ μκ² λμλ€μ. vnstatμμ μ€νμ€μΈ 컨ν μ΄λ μ€ λͺκ°κ° 보μ΄μ§ μλλ€λ μ¬μ€μμ. μ΄μ λ₯Ό νμΈν΄ 보λ, μ¬λ¬ 컨ν μ΄λκ° μμ±λ λ vnstat 컨ν μ΄λ μμ± μ΄νμ μμ±λλ λ€λ₯Έ 컨ν μ΄λλ€μ 보μ΄μ§ μλλ€λ μ¬μ€μμ. κ·Έλμ vnstat 컨ν μ΄λλ₯Ό 맨 λ§μ§λ§μ μμ±λλλ‘ νμλλ μ΄μ λͺ¨λλ€ μ 보μ΄λ€μ. depends_on λͺ λ ΉμΌλ‘ λ€λ₯Έ 컨ν μ΄λκ° λͺ¨λ μμ±λ νμ vnstatκ° μμ±λλλ‘ νμκΈ° λ°λλλ€.
(νκ°μ§ λ) 컨ν μ΄λλ€μ μ¬μμ± νκ²λλ©΄, vnstat μμλ μ΄μ 컨ν μ΄λλ€ κ²°κ³Όλ§ λ³΄μ¬ μ λλ‘ μλμ΄ λμ§ μμ΅λλ€. μ΄λλ 컨ν μ΄λ μ¬μμ± μ μ, vnstatμ λ³Όλ₯¨μΈ vnstatdbλ₯Ό λ¨Όμ μμ ν μ¬μμ±νμλ©΄ λ©λλ€.
4. λ‘컬μμ git push λͺ λ Ήμ μ€ ν μλ λ°°ν¬κ° μλ£λλ©΄ 8685 ν¬νΈμμ μλμ κ°μ νλ©΄μ λ³Ό μ μμ.
5. μ μΉνμ΄μ§μμ veth541c59fλ nginx_cname컨ν μ΄λλ₯Ό μλ―Ένμ¬, veth31c168eλ nginx_cname2컨ν μ΄λλ₯Ό μλ―Έν©λλ€. μ΄ μ₯μΉμ μ΄λ¦μ μ’λ 보기μ’κ² λ§λ€λ €λ©΄ μλμ κ°μ΄ μ λ ₯μ ν΄μ£Όλ©΄ λ©λλ€. (μ€ν κ²½λ‘ μμΉλ μκ΄μμ)
docker exec vnstat vnstat -i veth541c59f --setalias "nginx_cname"
docker exec vnstat vnstat -i veth31c168e --setalias "nginx_cname2"
6. μ veth****** κ°λ€μ΄ μ΄λ€ 컨ν μ΄λλ₯Ό μλ―Ένλμ§λ 컨ν μ΄λ λ΄λΆκ°κ³Ό μλ²μ μ΄λ€ κ°λ€μ λΉκ΅ν΄μΌλ§ νμΈν μ μμ΅λλ€. μ΄λ₯Ό μ½κ² νμΈν μ μλ μ€ν¬λ¦½νΈλ₯Ό Micah CulpepperλΌλ λΆμ΄ λ§λ€μ΄ λμμΌλ μλ λ§ν¬λ₯Ό νμΈν΄ 보μκΈ° λ°λλλ€. μ°Έκ³ λ‘ μ μλ²μμ νμΈμ ν΄λ³΄λ©΄ μλμ κ°μ΅λλ€. (veth κ°μ 컨ν μ΄λ μμ ν λ€μ μμ±ν κ²½μ° κ°μ΄ λ³νλ μ°Έκ³ νμκΈ° λ°λλλ€.)
https://github.com/micahculpepper/dockerveth
GitHub - micahculpepper/dockerveth: Show which docker containers are attached to which veth interfaces on your server.
Show which docker containers are attached to which veth interfaces on your server. - GitHub - micahculpepper/dockerveth: Show which docker containers are attached to which veth interfaces on your s...
github.com
β (μ°Έκ³ ) Ubuntuμμ μ dockervethλ₯Ό μ¬μ©ν κ²½μ°, μ€ν¬λ¦½νΈ 첫μ€μ μλ '#!/bin/sh' λ₯Ό '#!/bin/bash'λ‘ λ°κΎΈμ΄μΌ μ€νμ΄ λ©λλ€.
πΊπΊ μμ ν λͺ¨λ μμ€λ μλ λ§ν¬μμ νμΈνμ€ μ μμ΅λλ€. πΊπΊ
https://github.com/mmssem/progstudy
GitHub - mmssem/progstudy
Contribute to mmssem/progstudy development by creating an account on GitHub.
github.com
πΊ λͺ©μ°¨ πΊ(보μλ €λ©΄ μλ λ보기 λ₯Ό λλ¬μ£ΌμΈμ.)
1. Dockerλ₯Ό μ¬λνκ² λ μ΄μ (Docker+Nginx_proxy+SSL+Github action)
2. Docker μ€μΉ (Docker+Nginx_proxy+SSL+Github action)
3. MobaXterm (Docker+Nginx_proxy+SSL+Github action)
5. λ‘컬μ nginx(μΉμλ²) μ€μΉν΄λ³΄κΈ° (Docker+Nginx_proxy+SSL+Github action)
6. μλ² μλ λ°°ν¬ (1) λ‘컬 => github (Docker+Nginx_proxy+SSL+Github action)
7. μλ² μλ λ°°ν¬ (2) μλ²μ μλ λ°°ν¬λ₯Ό μν runner μ€μΉ
8. μλ² μλ λ°°ν¬ (3) λ‘컬 μμ€ -> git push -> github -> μλ² μλ λ°°ν¬ νμΈ
9. (tip) git Add, Commit, push νλ²μ νκΈ°
10. μλ² μλ λ°°ν¬ (4) λ°°ν¬μ μλ²μμ docker-compose.yml μλ μ€ν
11. μλ²μ vnstat μ€μΉ (docker-compose.yml μ΄μ©)
12. μλ²μ λ컀 μ€μΉμ network μ€μ λ³κ²½ μ¬ν νμΈνκΈ°
13. nginx + php + mysql + phpmyadmin μ€μΉνκΈ°
14. Nginx - Reverse Proxy, Load Balancing κΈ°λ₯ νμ©
15. λ‘컬μμ μμ΄νΌ λμ λλ©μΈλͺ μ¬μ©νκΈ°(hosts μμ )
16. httpsλ₯Ό μ°κΈ° μν΄ λ‘컬μμ SSL ν μ€νΈ νκΈ° (with mkcert)
17. μλ²μ SSL μ μ©νκΈ° (docker + Let's Encrypt + wildcard μΈμ¦μ + Cloudflare)
18. μμΌλμΉ΄λ μΈμ¦μ μλ κ°±μ (docker + Let's Encrypt + wildcard μΈμ¦μ + crontab)