๐ณ 1. Docker Hub๋ก Docker Image ๊ณต์
docker hub์ docker image๋ฅผ ๊ณต์ ํ๊ธฐ ํ๊ธฐ ์ํด์ ์ฐ์ `docker login` ์ ํด์ค์ผ ํ๋ค. ๊ทธ์ ์ docker hub์์ token์ ๋ฐ๊ธ๋ฐ๋๋ค.
https://hub.docker.com/ ์ ๋ก๊ทธ์ธํ ํ [Account Setting]์ ๋๋ฅธ๋ค.
์ดํ์ [Security] - [Personal access tokens]์ ํด๋ฆญ
๊ทธ๋ค์ [Generate new token]์ ๋๋ฅธ๋ค.
token์ ์ด๋ฆ๊ณผ permission์ ์ค์ ํด ์ค๋ค.
์์ฑ์ด ์๋ฃ๋๋ฉด ํฐ๋ฏธ๋์์ ์๋์ ๊ฐ์ด ์ ๋ ฅํ๋ค. ์๋ Access token์ ๋ค๋ฅธ ์ฌ๋์๊ฒ ๋ ธ์ถ๋์ง ์๋๋ก ์กฐ์ฌํ๋ค.
docker login -u [Username]
[Access Token]
๋ก๊ทธ์ธ์ด ์๋ฃ๋๋ฉด ํด๋น ํฐ๋ฏธ๋์์ docker hub์ ์ด๋ฏธ์ง๋ฅผ ์ฌ๋ฆด ์ ์๋ค.
Docker image๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์
2024.09.30 - [Programming/Docker] - Docker ์ด๋ฏธ์ง ๋ง๋ค๊ธฐ
์ฐธ๊ณ .
์ด์ ์ ๋ก๋ํ docker ์ด๋ฏธ์ง๋ฅผ ์์ฑํ๋ค. ์๋์์ “jinwoohong”์๋ ์์ ์ docker username์ ์์ฑํด์ผ ํ๋ค.
1. Dockerfile build
์๋์ ๊ฐ์ dockerfile์ ์์ฑํ ํ์ build ํด์ค๋ค.
FROM ubuntu:20.04
RUN apt update && apt install -y python3
WORKDIR /var/www/html
COPY ["index.html", "."]
CMD ["python3", "-u", "-m", "http.server"]
docker build -t jinwoohong/webserver:1.0 .
2. Docker Image push
build ์๋ฃ ํ์ `push` ๋ช ๋ น์ด๋ฅผ ํตํด docker hub์ image๋ฅผ ์ฌ๋ฆฐ๋ค.
docker push jinwoohong/webserver:1.0
docker hub์ ๊ฐ๋ณด๋ฉด ์ฑ๊ณต์ ์ผ๋ก ์ฌ๋ผ๊ฐ ๊ฒ์ ๋ณผ ์ ์๋ค.
์ด์ `docker pull jinowoohong/webserver` ๋ช ๋ น์ด๋ฅผ ํตํด ํด๋น image๋ฅผ ๋ค์ด๋ก๋ํ์ฌ ์คํํ ์๊ฐ ์๋ค. docker hub์ image๋ฅผ ์ ๋ก๋ํ ๋ pubilc์๋ ์ ํ์ด ์์ง๋ง private๋ 1๊ฐ๊น์ง๋ง ์ง์ํ๋ค.
๐ฑ 2. Github๋ก Docker Image ๊ณต์
Docker hub์ Docker image๋ฅผ ๊ณต์ ํ ๋ public์ ๋ฌด์ ํ์ด์ง๋ง private๋ 1๊ฐ๋ก ์ ํ์ ์ด๋ค. (์ ๋ฃ ๊ณ์ ์ ์ฐ๋ฉด ๋ฌด์ ํ) ํ์ง๋ง Github package registry์ ํตํด ๋ฌด์ ํ์ผ๋ก private๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
1. Container Registry์ ์ธ์ฆ
์ฐ์ Container Registry์ ์ธ์ฆ์ ํด์ผ ํ๋ค.
1. [Github] - [Setting]์ผ๋ก ์ด๋
2. ์ข์ธก์ [Developer setting]์ผ๋ก ์ด๋
3. [Tokens(classic)] - [Generate new token(classic]์ผ๋ก ์ด๋
4. token ์ด๋ฆ ์ค์ ๋ฐ [write:packages]์ [delete:packages] ์ฒดํฌ ํ ๋ฐ์ผ๋ก ๋ด๋ ค์ ์์ฑ
5. ์์ฑ์ด ์๋ฃ๋๋ฉด Access token์ด ๋ฐ๊ธ๋ ๊ฑธ ๋ณผ ์ ์๋ค. ํด๋น ํค๋ฅผ ๋ฐ๋ก ๋ณต์ฌํ๊ฑฐ๋ ๋ฉ๋ชจํด ๋๋๋ค.(์ธ๋ถ์ ๊ณต์ X)
6. Access Token ๋ฑ๋ก
Ubuntu๋ MacOS์ผ ๊ฒฝ์ฐ Terminal์ ์คํํ๊ณ , Window์ผ ๊ฒฝ์ฐ git bash ์คํ
export CR_PAT=[์์์ ๋ณต์ฌํ ํ ํฐ]
$ echo $CR_PAT | docker login ghcr.io -u dev-jinwoohong --password-stdin
> Login Succeeded
๊น์ง ์๋ฃํ๋ค๋ฉด docker image๋ฅผ push ํ ์ ์๋ค.
์ด์ ์ ๋ก๋ํ docker ์ด๋ฏธ์ง๋ฅผ ์์ฑํ๋ค. ์๋์์ “dev-jinwoohong”์๋ ์์ ์ Git hub ์ด๋ฆ์ ์์ฑํด์ผ ํ๋ค.
2. Dockerfile build
์๋์ ๊ฐ์ dockerfile์ ์์ฑํ ํ์ build ํด์ค๋ค.
FROM ubuntu:20.04
RUN apt update && apt install -y python3
WORKDIR /var/www/html
COPY ["index.html", "."]
CMD ["python3", "-u", "-m", "http.server"]
docker build -t ghcr.io/dev-jinwoohong/webserver:1.0 .
3. Docker Image push
build ์๋ฃ ํ์ `push` ๋ช ๋ น์ด๋ฅผ ํตํด Github container registry์ image๋ฅผ ์ฌ๋ฆฐ๋ค.
docker push ghcr.io/dev-jinwoohong/webserver:1.0
[packages]์ ๊ฐ๋ณด๋ฉด ์ ์์ ์ผ๋ก push ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค. ๋ํ, package settings์์ Github repository๋ ์ฐ๊ฒฐํ ์ ์๋ค. ์ฐ๊ฒฐํ ํ ํด๋น repo๋ก ์ด๋ํ๋ฉด Packages์ ์ถ๊ฐ๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
Packages์ push ํ๋ฉด ์ฒ์์๋ private์ผ๋ก ๋์ง๋ง ์ฌ์ฉ์๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ public์ผ๋ก ๋ณ๊ฒฝํ ์ ์๋ค.
๐ ์ฐธ๊ณ ์๋ฃ
https://www.youtube.com/watch?v=cqlY1Hc70H0
๐ค๏ธ ๋ง์น๋ฉฐ
“์๋ ๋งํผ ๋ณด์ธ๋ค”๋ผ๋ ๋ง์ฒ๋ผ ์๋ง์ Github Repository๋ฅผ ๋ดค์ง๋ง Packages๊ฐ ๋ญ์ง ๊ด์ฌ์ ๊ฐ์ง ์ ์ ์๋ค. ์ด๋ฒ์ ๊ณ๊ธฐ๋ก ๋๋ Repository๋ฅผ ์ฌ๋ฆด ๋ Packages์ Docker image๋ฅผ ํจ๊ป ์ฌ๋ ค๋ณด๋๋ก ํด์ผ๊ฒ ๋ค.
'Programming > Docker' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Docker ์ด๋ฏธ์ง ๋ง๋ค๊ธฐ (3) | 2024.09.30 |
---|---|
Docker ์ค์น ๋ฐ ์ฌ์ฉ๋ฒ (1) | 2024.09.20 |
Docker๋? (0) | 2024.09.04 |
๋ฅ๋ฌ๋ ๊ฐ๋ฐ์ฉ Docker ์ด๋ฏธ์ง ์์ฑ (0) | 2023.12.29 |