์ด์ ํฌ์คํธ์์๋ Docker Host๋ก ์ฌ์ฉํ ์๋ฒ๋ฅผ ๊ตฌ์ฑํ๊ณ , Docker ์์ง์ ์ค์นํด ์คํํด๋ณด์์ต๋๋ค.
์ด๋ฒ ๊ธ์์๋ ๊ทธ ์์ ์๋ก์ด Ubuntu ์ปจํ
์ด๋๋ฅผ ์์ฑํ๊ณ , ๋ช
๋ น์ด ์คํ ๋ฐ SSH ์ ์ ์ค์ต๊น์ง ๋จ๊ณ๋ณ๋ก ์ ๋ฆฌํด๋ณด๊ฒ ์ต๋๋ค.
Docker ์ปจํ
์ด๋๋ ์ฌ์ ์ ๋น๋๋ ์ด๋ฏธ์ง(image)๋ฅผ ๋ฐํ์ผ๋ก ์์ฑ๋ฉ๋๋ค.
์ด ์ด๋ฏธ์ง๋ค์ Docker Hub๋ผ๋ ๊ณต๊ฐ ์ ์ฅ์์์ ๊ด๋ฆฌ๋๋ฉฐ, ๋๊ตฌ๋ ๋ค์ด๋ก๋ํ๊ฑฐ๋ ์์ ์ด ๋ง๋ ์ด๋ฏธ์ง๋ฅผ ๊ณต์ ํ ์ ์์ต๋๋ค.
์ด๋ฏธ์ง๋ง๋ค Ubuntu ๋ฒ์ ์ด ๋ช
์๋์ด ์๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
์ฌ์ฉ ๊ฐ๋ฅํ ์ด๋ฏธ์ง ๋ชฉ๋ก์ ๋ค์ ๋ช
๋ น์ด๋ก ํ์ธํ ์ ์์ต๋๋ค.
$ docker images
์ฒ์ ์ค์นํ Docker ํ๊ฒฝ์์๋ ์๋ฌด ์ด๋ฏธ์ง๋ ์๊ธฐ ๋๋ฌธ์ ๋น ๊ฒฐ๊ณผ๊ฐ ์ถ๋ ฅ๋ ๊ฒ์ ๋๋ค.
docker pull
์ด์ docker pull
๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํด Ubuntu 22.04 ์ด๋ฏธ์ง๋ฅผ ๋ฐ์๋ณด๊ฒ ์ต๋๋ค.
$ docker pull ubuntu:22.04
ํ๊ทธ๋ฅผ ์๋ตํ๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก latest
๋ฒ์ ์ ๋ค์ด๋ก๋ํฉ๋๋ค.
$ docker pull ubuntu
๋ค์ ์ด๋ฏธ์ง ๋ชฉ๋ก์ ํ์ธํด๋ด ๋๋ค.
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest b1e9cef3f297 4 weeks ago 78.1MB
ubuntu 22.04 97271d29cb79 2 weeks ago 77.9MB
docker run
์ด๋ฏธ์ง๋ฅผ ๋ฐ์๋ค๋ฉด ์ด์ ์ปจํ ์ด๋๋ฅผ ์์ฑํด๋ณด๊ฒ ์ต๋๋ค.
$ docker run ubuntu:22.04
์ดํ ์ํ๋ฅผ ํ์ธํ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์ปจํ ์ด๋๊ฐ ๋ฐ๋ก ์ข ๋ฃ๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
$ docker ps -a
์ด๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ปจํ
์ด๋๊ฐ ์คํ๋ ํ ๋ชจ๋ ์
๋ ฅ์ด ์ข
๋ฃ๋๋ฉด ์๋์ผ๋ก ๊บผ์ง๊ธฐ ๋๋ฌธ์
๋๋ค.
์ปจํ
์ด๋๋ฅผ ์์ ์คํ ์ํ๋ก ์ ์งํ๋ ค๋ฉด ๋ช ๊ฐ์ง ์ต์
์ ์ถ๊ฐํด์ค์ผ ํฉ๋๋ค.
docker run
์ต์
์ต์ | ์ค๋ช |
---|---|
--name | ์ปจํ ์ด๋ ์ด๋ฆ ์ง์ |
-i | ํ์ค ์ ๋ ฅ ์ ์ง |
-t | TTY(ํฐ๋ฏธ๋) ํ ๋น |
-d | ๋ฐฑ๊ทธ๋ผ์ด๋ ์คํ |
-p | ํฌํธ ํฌ์๋ฉ ์ค์ |
-v | ๋ณผ๋ฅจ ๋ง์ดํธ |
-e | ํ๊ฒฝ ๋ณ์ ์ง์ |
์ปจํ ์ด๋๋ฅผ ์คํ ์ํ๋ก ์ ์งํ๊ณ bash์ ์ ์ํ ์ ์๋๋ก ๋ค์๊ณผ ๊ฐ์ด ์คํํฉ๋๋ค:
$ docker run -itd --name container-ubuntu ubuntu:22.04
์ปจํ ์ด๋๊ฐ ์ ์์ ์ผ๋ก ์คํ๋๊ณ ์๋์ง ํ์ธํฉ๋๋ค.
$ docker ps
๋จ๋ฐ์ฑ ๋ช
๋ น์ด๋ฅผ ์คํํ๋ ค๋ฉด docker exec
์ ์ฌ์ฉํฉ๋๋ค.
$ docker exec container-ubuntu echo "hello"
์ปจํ
์ด๋ ๋ด๋ถ ์์ ์ง์ ์ ์ํ๋ ค๋ฉด -it
์ต์
์ ์ถ๊ฐํฉ๋๋ค.
$ docker exec -it container-ubuntu /bin/bash
root@e39c9c5d19c4:/#
์ด๋ฒ์ ํธ์คํธ PC์ 80๋ฒ ํฌํธ๋ฅผ ์ปจํ ์ด๋์ 80๋ฒ ํฌํธ๋ก ์ฐ๊ฒฐํ ๋ค, Nginx๋ฅผ ์ค์นํด ์น ์์ฒญ์ ํ ์คํธํด๋ณด๊ฒ ์ต๋๋ค.
$ docker run -itd -p 80:80 --name ubuntu-nginx ubuntu:22.04
$ docker ps
์ปจํ ์ด๋์ ์ ์ํ ํ Nginx๋ฅผ ์ค์นํฉ๋๋ค.
$ docker exec -it ubuntu-nginx /bin/bash
# apt update
# apt-get install -y nginx
# service nginx start
# service nginx status
์ด์ ์น ๋ธ๋ผ์ฐ์ ์์ http://<Docker Host IP>
๋ก ์ ์ํ๋ฉด ์๋์ ๊ฐ์ด Nginx ๊ธฐ๋ณธ ํ์ด์ง๊ฐ ๋ณด์
๋๋ค.
์ด๋ฒ ํฌ์คํธ์์๋ ์ปจํ ์ด๋ ์์ฑ๋ถํฐ ์ ์, Nginx ์ค์น๊น์ง Docker์ ๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ์ ์ค์ตํด๋ณด์์ต๋๋ค.
๋ค๋ง, ์์์ฒ๋ผ ํ๋์ Ubuntu ์ปจํ
์ด๋์ Nginx, API ๋ฑ ์ฌ๋ฌ ํ๋ก์ธ์ค๋ฅผ ์ฌ๋ฆฌ๋ ๋ฐฉ์์ Docker์ ๊ถ์ฅ ์ฌ์ฉ๋ฒ๊ณผ๋ ๋ค๋ฆ
๋๋ค.
์ปจํ
์ด๋ ํ๋์๋ **ํ๋์ ์ญํ (ํ๋ก์ธ์ค)**๋ง ์ํํ๋ ๊ฒ์ด ๋ฐ๋์งํฉ๋๋ค.
ํ์ฌ ์ ํฌ ์กฐ์ง์์๋ ํ๋์ Ubuntu, ํ๋์ Rocky Linux๋ฅผ ์ ์ธํ๋ฉด ๋๋ถ๋ถ ์ปจํ ์ด๋๋น ํ๋์ ํ๋ก์ธ์ค๋ง ์คํํ๋ ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
๋ค์ ๊ธ์์๋ Docker์ ๋คํธ์ํฌ ๊ตฌ์ฑ, ๋ณผ๋ฅจ ์ค์ , ์ด๋ฏธ์ง ์ปค์คํฐ๋ง์ด์ง๊ณผ ๊ฐ์ ์กฐ๊ธ ๋ ์์ฉ์ ์ธ ํ์ฉ๋ฒ์ ๋ค๋ค๋ณด๊ฒ ์ต๋๋ค.
Kubernetes์์ ์ฐ๋ ์ด์ผ๊ธฐ๋ ๊ณง ์์๋ฉ๋๋ค ๐