4. ๋์ปค๋ฅผ ์ด์ฉํ์ฌ ์๋ฒ์ vnstat ์ค์น ๋ฐ ์ญ์ ํ๊ธฐ(Docker+Nginx_proxy+SSL+Github action)
vnstat๋ ์น์๋ฒ์ ํธ๋ํฝ์ ์ฒดํฌํด ๋ณผ ์ ์๋ ํ๋ก๊ทธ๋จ์ ๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ์๋ฒ ์ฝ์์์ ๊ทธ ๋ด์ฉ์ ํ์ธํ๋ ๊ฒ์ด์ง๋ง, ์ด๊ฒ์ ์นํ์ด์ง๋ก ๋ณผ ์ ์๋๋ก ๊ตฌํ์ ํ ์๋ ์์ต๋๋ค.
๋ค๋ง, vnstat๋ฅผ ์ง์ ์ค์นํ ํ ์นํ์ด์ง๋ก ๋ณด๋ ค๋ฉด ์น์๋ฒ ์ค์น, ๊ธฐํ ๋ณต์กํ ์ค์ ๋ฑ์ ํด์ผ ํ๋ฉฐ, ์ด ์์ ์ด ์ฝ์ง ์์ ๊ฒฐ๊ตญ ์์ ์ ์ ๋ ์คํจํ์์ต๋๋ค.
ํ์ง๋ง, ๋์ปค๋ฅผ ์ด์ฉํ๋ค๋ฉด ์์ฃผ ์์ฝ๊ฒ ๋ชจ๋ ๊ฒ์ ๋ํ ์ค์น ๋ฐ ๊ตฌํ์ด ๊ฐ๋ฅํฉ๋๋ค.
1. ์๋ฒ ์ฝ์์์ ์๋์ ๊ฐ์ด ์ ๋ ฅํด์ค๋๋ค.
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
์ ๋ช ๋ น์ vergoh/vnstat ์ด๋ฏธ์ง๊ฐ ์ปดํจํฐ์ ์์ผ๋ฉด ๋ค์ด๋ก๋ ๋ฐ์ ํ, ์ปจํ ์ด๋๋ฅผ ์์ฑํ์ฌ 8685 ํฌํธ๋ฅผ ์ด์ฉํ์ฌ ์๋น์ค๋ฅผ ์คํํด ์ฃผ๋ ๋ช ๋ น์.
(์ฐธ๊ณ ) vergoh/vnstat - Docker Image | Docker Hub
Docker Hub
hub.docker.com
2. ์ด์ ์น๋ธ๋ผ์ฐ์ ๋ฅผ ์ด์ด ์๋ ์ฃผ์๋ฅผ ์ ๋ ฅํ๋ฉด ๋ฉ๋๋ค.
http://์์ ์์๋ฒ์์ดํผ:8685/
(์์)
http://192.168.1.250:8685/
ํ์ง๋ง, ์๋์ ๊ฐ์ด ์ค๋ฅ์ฐฝ์ด ๋ฐ ์ ์์ต๋๋ค.
์ด๊ฒ์ ํด๋ผ์ฐ๋ ๋ฐฉํ๋ฒฝ์์ 8685 ํฌํธ๊ฐ ๋งํ์๊ธฐ ๋๋ฌธ์ ๋ฐ์ํ๋ ๊ฒ์ ๋๋ค. ์ด๊ฒ์ ํด๊ฒฐํ๊ธฐ ์ํด ์์ ์ ํด๋ผ์ฐ๋ ์น์ฌ์ดํธ์ ๋ค์ด๊ฐ์ ๋ฐฉํ๋ฒฝ ๊ธฐ๋ฅ์ผ๋ก ๋ค์ด๊ฐ ํ 8685 ํฌํธ๋ฅผ ์ด์ด์ฃผ์ด์ผ ํฉ๋๋ค.
์ฐธ๊ณ ๋ก ์๋ ํ๋ฉด์ Google Cloud ๋ฐฉํ๋ฒฝ ๊ด๋ จ ํ๋ฉด์ ๋๋ค.
3. ์ ํ๋ฉด์์ ์ ์ค์ ํ์๋ค๋ฉด, ์๋์ ๊ฐ์ ํ๋ฉด์ ๋ณด์ค ์ ์์ต๋๋ค.
ํน์๋ ์ ๋ฐฉํ๋ฒฝ๊น์ง ์ด์ด์ฃผ์๋๋ฐ๋, ์ฐ๊ฒฐ์ด ์๋๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค. ์ด๋ฐ ๊ฒฝ์ฐ ๋ฆฌ๋ ์ค ์์ฒด์ ๋ฐฉํ๋ฒฝ์์ ํด๋น ํฌํธ๊ฐ ์ด๋ ค์์ง ์์์ ์ผ ์๋ ์์ต๋๋ค. ์ค๋ผํด VM์ธ ๊ฒฝ์ฐ iptables ๋ฐฉํ๋ฒฝ์์๋ ์ด์ด์ฃผ์ด์ผ ํ ๊ฒฝ์ฐ๊ฐ ์๋๋ฐ์. ์๋์ ๊ฐ์ด ์ ๋ ฅํ์๋ฉด ๋ฉ๋๋ค.
iptables -I INPUT -p tcp --dport 8685 -j ACCEPT
4. vnstat ์๋น์ค๋ฅผ ์์ฃผ ๊นจ๋ํ๊ฒ ์ญ์ ํ๊ธฐ
์ฐ๋ฆฌ๋ ์์ผ๋ก ์ฐ๋ฆฌ๋ ์๋ฒ์ nginx, mysql, phpmyadmin ๋ฑ์ ๋์ปค๋ฅผ ์ด์ฉํ์ฌ ์ค์นํ ๊ฒ์ ๋๋ค. ํ์ง๋ง ๊ทธ๋๋ง๋ค ์๋์ ๊ฐ์ ํ์์ผ๋ก ํ์คํ์ค ์ ๋ ฅ์ ํ๊ธด ๋๋ฌด ๊ท์ฐฎ์ต๋๋ค.
docker run --name some-nginx -d -p 8080:80 some-content-nginx
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
docker run -it --rm --name my-running-script -v "$PWD":/usr/src/myapp -w /usr/src/myapp php:7.4-cli php your-script.php
......
๊ทธ๋์ ์์ผ๋ก๋ ์ด๊ฒ๋ค์ ํ๋์ ํ์ผ(docker-compose.yml)์ ๋ชจ๋ ์ ๋ ฅํ์ฌ ํ๋ฐฉ์ ๋ชจ๋ ์ค์นํ ์์ ์ด๊ธฐ ๋๋ฌธ์ ์์์ ์ค์นํ๋ vnstat ์๋น์ค๋ฅผ ์ง๊ธ์ ์ง์๋ฒ๋ฆด ๊ฒ์ ๋๋ค.
> ๊ธฐ๋ณธ์ ์ธ ๋์ปค ๋ช ๋ น์ด
์ฐธ๊ณ ๋์ปค ๋ช ๋ น | |
docker ps -a | ๋ฉ์ถฐ์๋ ๊ฒ๊น์ง ์ปจํ ์ด๋ ๋ชจ๋ ๋ณด๊ธฐ |
docker images -a | ๋์ปค ์ด๋ฏธ์ง ๋ชจ๋ ๋ณด๊ธฐ |
docker rm *id* | ๋์ปค ์ปจํ ์ด๋ ์ญ์ |
docker rmi *id* | ๋์ปค ์ด๋ฏธ์ง ์ญ์ |
docker rm -f $(docker ps -aq) | ๋์ปค ์ปจํ ์ด๋ ๋ชจ๋ ์ญ์ |
docker rmi $(docker images -q) | ๋์ปค ์ด๋ฏธ์ง ๋ชจ๋ ์ญ์ |
> ์คํ์ค์ธ ์ปจํ ์ด๋ ํ์ธ
docker ps
> ๋ฉ์ถฐ์๋ ์ปจํ ์ด๋๊น์ง ๋ชจ๋ ํ์ธ
docker ps -a
> ํน์ ์ปจํ ์ด๋ ์ญ์
docker rm -f c1ec115b9c1f //์ปจํ
์ด๋ id ๋ชจ๋ ๊ธฐ๋ก, -f ์ต์
์ ์คํ์ค์ผ ๊ฒฝ์ฐ ๊ฐ์ ์ญ์
docker rm -f c1 //๋์ผํ์ง ์์ ๊ฒฝ์ฐ ์ปจํ
์ด๋ id ์ผ๋ถ๋ถ๋ง ์ ์ด๋ ๋จ
docker rm -f vnstat //์ปจํ
์ด๋ name์ ์ ์ด์ฃผ์ด๋ ๋จ
> ๋ชจ๋ ์ปจํ ์ด๋ ์ผ๊ด ์ญ์
docker rm -f $(docker ps -aq)
๐ด ์ ๋ด์ฉ์ ์ปจํ ์ด๋๋ง ์ญ์ ํ ๊ฒ์ ๋๋ค. ํ์ง๋ง ์ปจํ ์ด๋ ์์ฑ์ ์ํด ์กด์ฌํ๋ ์ด๋ฏธ์ง๋ ์์ง ์๋ฒ์ ๋จ์์์ต๋๋ค. (์ถํ ์ปจํ ์ด๋ ์์ฑ์ ์ด๋ฏธ์ง๊ฐ ์์ ๊ฒฝ์ฐ ๋น ๋ฅด๊ฒ ๋ฐ๋ก ์์ฑ์ด ๋๋ฉฐ, ์์ ๊ฒฝ์ฐ ๋์ปค ํ๋ธ์์ ์ด๋ฏธ์ง ๋ค์ด๋ก๋ ํ ์ปจํ ์ด๋๊ฐ ์์ฑ๋ฉ๋๋ค.)
> ์ด๋ฏธ์ง ๋ชจ๋ ํ์ธ
docker images -a
> ํน์ ์ด๋ฏธ์ง ์ญ์
docker rmi *id*
> ์ด๋ฏธ์ง ์ ์ฒด ์ญ์
docker rmi $(docker images -q)
๐บ๐บ ์์ ํ ๋ชจ๋ ์์ค๋ ์๋ ๋งํฌ์์ ํ์ธํ์ค ์ ์์ต๋๋ค. ๐บ๐บ
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)