4์ 22์ผ ์๋ฃ /
๋ชฉํ
- Docker ์ปจํ ์ด๋ ๋น๋, ์คํ, ๋๋ฒ๊ทธํ๊ธฐ
- Docker Hub ๋ฐ Google Artifact Registry์์ Docker ์ด๋ฏธ์ง ๊ฐ์ ธ์ค๊ธฐ
- Docker ์ด๋ฏธ์ง๋ฅผ Google Artifact Registry๋ก ํธ์ํ๊ธฐ
์งํ
- ์ค์ ๋ฐ ์๊ฑด
์ค์ต ์์ ๋ฒํผ์ ๋๋ฅด๋ฉด Google Cloud ์ฝ์์ ์ ์ ๊ฐ๋ฅ
(์ด๋ ์ฌ์ฉ์ ์ ๋ณด๋ ๋ณธ์ธ ๊ตฌ๊ธ ๊ณ์ ์ด ์๋ ์์ ๊ณ์ ์ ์ฌ์ฉํด์ผ ๋์ด ๋๊ฐ์ง ์์!)
gcloud auth list : ์ฌ์ฉ ์ค์ธ ๊ณ์ ์ด๋ฆ ๋ชฉ๋ก ํ์
-> student-04-78066893a060@qwiklabs.net
gcloud config list porject : ํ๋ก์ ํธ ID ๋ชฉ๋ก ํ์
-> qwiklabs-gcp-01-e6818de75f2c
- Hello World
docker run [hello-world] : hello-world ์ปจํ
์ด๋ ์คํ
-> ๋ง์ฝ ์คํ ๊ฒฐ๊ณผ 'Hello from Docker'์ด ๋จ์ง ์์ ๊ฒฝ์ฐ
docker images : Docker Hub์์ ๊ฐ์ ธ์จ ์ปจํ
์ด๋ ์ด๋ฏธ์ง ํ์ธ
docker run [hello-world] : ์ปจํ
์ด๋ ์ฌ์คํ
docker ps : ์คํ ์ค์ธ ์ปจํ
์ด๋ ํ์ธ
docker ps -a : ์คํ ์๋ฃ๋ ์ปจํ
์ด๋ ํฌํจ ๋ชจ๋ ์ปจํ
์ด๋ ํ์ธ
- ๋น๋
mkdir test && cd test : test ํด๋ ์์ฑ ํ test ํด๋๋ก ์ ํ
Dockerfile ์์ฑ * ๊ฐ ์ค ์ดํด ํ์
๋
ธ๋ ์ ํ๋ฆฌ์ผ์ด์
์์ฑ (ํฌํธ 80์์ ์์ ๋๊ธฐํ๊ณ 'Hello World'๋ฅผ ๋ฐํํ๋ ๊ฐ๋จํ HTTP ์๋ฒ)
docker build -t node-app:0.1 . : ์ด๋ฏธ์ง ๋น๋
-> Dockerfile์ด ์๋ ๋๋ ํฐ๋ฆฌ์์ ์คํํด์ผ ํจ
docker images : ๋น๋ํ ์ด๋ฏธ์ง ํ์ธ
- ์คํ
docker run -p 4000:80 --name my-app node-app:0.1 : ๋น๋ํ ์ด๋ฏธ์ง ๊ธฐ๋ฐ์ผ๋ก ์ปจํ
์ด๋ ์คํ
curl http://localhost:4000 : ์๋ฒ ํ
์คํธ ๋ช
๋ น์ด (๋ค๋ฅธ ํฐ๋ฏธ๋ ์์ฑ)
docker stop my-app && docker rm my-app : ์ด๊ธฐ ํฐ๋ฏธ๋ ๋ซ์ ํ์ ์ปจํ
์ด๋ ์ค์ง ๋ฐ ์ญ์
docker run -p 4000:80 --name my-app -d node-app:0.1
docker ps
docker logs [container_id]
์ ํ๋ฆฌ์ผ์ด์ ์์
cd test : ํ
์คํธ ๋๋ ํฐ๋ฆฌ ์ด๋
ํ
์คํธ ํธ์ง๊ธฐ๋ก ํธ์ง : ํ
์คํธ ํธ์ง๊ธฐ๋ก app.js๋ฅผ ํธ์งํ๊ณ 'Hello World' ๋ค๋ฅธ ๋ฌธ์์ด๋ก ๋ณ๊ฒฝ
docker build -t node-app:0.2 . : ์ ์ด๋ฏธ์ง ๋น๋ ์์ฑ ํ 0.2 ํ๊ทธ ์ง์
docker run -p 8080:80 --name my-app-2 -d node-app:0.2
docker ps
curl http://localhost:8080 : ์ปจํ
์ด๋ ํ
์คํธ (์ดํ ์์ฑ)
curl http://localhost:4000 : ์ปจํ
์ด๋ ํ
์คํธ (์ฒ์ ์์ฑ)
docker logs -f [container_id] : ์ปจํ
์ด๋ ์คํ ์ค์ผ ๋ ๋ก๊ทธ ์ถ๋ ฅ(-f ์ต์
)
docker exec -it [container_id] bash : ์คํ ์ค์ธ ์ปจํ
์ด๋์์ ๋ํํ Bash ์ธ์
์์(docker exec)
* ๋ช
๋ น์ด ์ดํด ํ์
ls : ๋๋ ํฐ๋ฆฌ ํ์ธ
exit : Bash ์ธ์
์ข
๋ฃ
docker inspect [container_id] : ์ปจํ
์ด๋์ ๋ฉํ๋ฐ์ดํฐ ๊ฒํ (docker inspect)
docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' [container_id]
: --format์ ์ฌ์ฉํ์ฌ ๋ฐํ๋ JSON์ ํน์ ํ๋๋ฅผ ๊ฒ์ฌ
> ๋์ Docker ์ ์ฅ์ ๋ง๋ค๊ธฐ
์ด๋ฏธ์ง ํธ์ํ๊ธฐ ์ํด ์ ์ฅ์ ์์ฑ ํ์
์ธ์ฆ ๊ตฌ์ฑํ๊ธฐ
gcloud auth configure-docker us-central1-docker.pkg.dev
: us-central1 ๋ฆฌ์ ์ Docker ์ ์ฅ์์ ์ธ์ฆ ์ค์ -> 'Y' ์
๋ ฅ(Docker ๊ตฌ์ฑ ์
๋ฐ์ดํธ)
export PROJECT_ID=$(gcloud config get-value project)
cd ~/test
: ํ๋ก์ ํธ ID ์ค์ ํ Dockerfile์ด ํฌํจ๋ ๋๋ ํฐ๋ฆฌ๋ก ๋ณ๊ฒฝ
docker build -t us-central1-docker.pkg.dev/$PROJECT_ID/my-repository/node-app:0.2 .
: node-app : 0.2์ ํ๊ทธ ์ง์
docker images
docker push us-central1-docker.pkg.dev/$PROJECT_ID/my-repository/node-app:0.2
: ์ด๋ฏธ์ง๋ฅผ Artifact Registry๋ก ํธ์
์ด๋ฏธ์ง ํ ์คํธํ๊ธฐ
docker stop $(docker ps -q)
docker rm $(docker ps -aq)
: ๋ชจ๋ ์ปจํ
์ด๋ ์ค์ง ๋ฐ ์ญ์
๋ชจ๋ Docker ์ด๋ฏธ์ง ์ญ์
์ด๋ฏธ์ง ๊ฐ์ ธ์์ ์คํ
'๊ฐ๋ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[GCP] Kubernetes Engine์์ Jenkins๋ก ์ง์์ ๋ฐฐํฌ (0) | 2023.04.23 |
---|---|
[GCP] Kubernetes Engine์ผ๋ก ๋ฐฐํฌ ๊ด๋ฆฌ (0) | 2023.04.23 |
[GCP] Kubernetes๋ฅผ ํตํ ํด๋ผ์ฐ๋ ์กฐ์ (0) | 2023.04.22 |
[GCP] Kubernetes Engine: Qwik Start (1) | 2023.04.22 |
2023 ํด๋ผ์ฐ๋ ์คํฐ๋ ์ผ (์ฟ ๋ฒ๋คํฐ์ค ์ด๊ธ) (2) | 2023.04.17 |