1. Docker hub ๋ฆฌํฌ์งํ ๋ฆฌ ๋ง๋ค๊ธฐ
ํ๋ก๊ทธ๋จ์ ์ด๋ฏธ์ง๋ก ๋ง๋ค์ด๋๋ฉด ์ด์ ๋ค๋ฅธ ์ปดํจํฐ์์ ์ฝ๊ฒ ์คํํ ์ ์๋ค๊ณ ํ์ต๋๋ค. ๊ทผ๋ฐ ๋ค๋ฅธ ์ปดํจํฐ๋ก ๋ณด๋ด๋ ๋ฒ์ ์์๋ ค์คฌ๋๋ฐ์?
์ค์ USB๋ก ์ ๋ฌํ๋ ์ด๋ฉ์ผ๋ก ์ ๋ฌํ๋ ์๋ฌด๋ ๊ฒ๋ ํด๋ ๋๋๋ฐ, ๋ณดํต์ ์ด๋ฏธ์ง ํธ์คํ ํด์ฃผ๋ ์๋น์ค์ ์ ๋ก๋ํ๊ณ ํ์ํ ๋ ๋ค์ด๋ก๋ํ๊ณ ๊ทธ๋ ๊ฒ ํ๋๊ฒ ํธ๋ฆฌํฉ๋๋ค. docker hub ์ด๋ฐ ๊ณณ์ด๋ AWS ECR ์ด๋ฐ ๊ณณ๋ค์ ์ฌ์ฉํ๋ฉด ๋๋๋ฐ, ์ฝ๊ฒ ๋ฌด๋ฃ๋ก ์ด์ฉํ ์ ์๋ docker hub์ ์ฌ๋ ค๋ณด๋๋ก ํฉ์๋ค.
Docker hub ์ฌ์ดํธ์ ๋ฐฉ๋ฌธํด๋ด ์๋ค. (hub.docker.com)

โฒ ๊ฐ์
ํ๊ณ ๋ก๊ทธ์ธํด๋ณด๋ฉด ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ๋ง๋๋ ๋ฒํผ์ด ์ด๋๊ฐ์ ์์ํ
๋ฐ ๋๋ฌ๋ด
์๋ค.
๋ฆฌํฌ์งํ ๋ฆฌ๋ โ์ด๋ฏธ์ง ๋ณด๊ด์ฉ ํด๋โ์
๋๋ค.

โฒ ๋ฆฌํฌ์งํ ๋ฆฌ ์ด๋ฆ ์๋ช ํ๊ณ public์ด ๋ฌด๋ฃ๋ผ ๊ทธ๊ฑธ๋ก ์ ํํ๋ฉด ๋ฉ๋๋ค. (๋์ public์ ์๋ฌด๋ ๋ณผ ์ ์์ต๋๋ค) ๊ทธ๋ฆฌ๊ณ ์ค๋ฅธ์ชฝ์ ์ด๋ฏธ์ง ์ ๋ก๋ํ๋ ๋ฐฉ๋ฒ ๊ทธ๋๋ก ๋ฐ๋ผํ๋ฉด ์ ๋ก๋ ๊ฐ๋ฅํฉ๋๋ค.
2. ์ด๋ฏธ์ง ์ ๋ก๋๋ docker push
์ ๋ฒ์ ๋ง๋ ์ด๋ฏธ์ง ํ๋๋ฅผ ์ ๊ธฐ ๋ฐฉ๊ธ๋ง๋ ๋ฆฌํฌ์งํ ๋ฆฌ์ ์ฌ๋ ค๋ด ์๋ค. ์์ผ๋ฉด ์ด๋ฏธ์ง ์๋ฌด๊ฑฐ๋ ๋์ปคํ๋ธ์์ ๋ค์ด๋ฐ์์ ์ฌ๋ ค๋ด ์๋ค.
1# docker tag ์ด๋ฏธ์ง์ด๋ฆ:ํ๊ทธ๋ช ๋ฆฌํฌ์งํ ๋ฆฌ์ด๋ฆ:ํ๊ทธ๋ช ์๋ช2$ docker tag nodeserver:v1 seungwoo99/myserver:v134# docker push ๋ฆฌํฌ์งํ ๋ฆฌ์ด๋ฆ:ํ๊ทธ๋ช ์๋ช5docker push seungwoo99/myserver:v1
์ผ๋จ ์ด๋ฏธ์ง ์ฌ๋ฆฌ๋ ค๋ฉด ํฐ๋ฏธ๋ ๋ช ๋ น์ด๊ฐ 2๊ฐ ํ์ํ๋ฐ,
- ์ฒซ์งธ๋ ์ผ๋จ ์ด๋ฏธ์ง ์ด๋ฆ์ ๋ฐ๊พธ๋ ๋ช ๋ น์ด๊ณ
- ๋๋ฒ์งธ๊ฐ ์ฌ๋ฆฌ๋ ๋ช ๋ น์ด์ ๋๋ค.
์ด๋ฏธ์ง ์ด๋ฆ๋ถํฐ ๋ฐ๊ฟ์ผ ํ๋ ์ด์ ๋ ์๋ ์ด๋ฏธ์ง ์ด๋ฆ์ ์ ํํ ๊ทธ ๋ฆฌํฌ์งํ ๋ฆฌ ์ด๋ฆ์ด ๋ค์ด๊ฐ์ผ ๋ฆฌํฌ์งํ ๋ฆฌ์ ์ฌ๋ฆด ์ ์์ต๋๋ค.

โฒ ์ ๋ ๋ฆฌํฌ์งํ ๋ฆฌ ์ด๋ฆ์ codingapple/myserver ์ด๋ ๊ฒ ๋ง๋ค์๊ธฐ ๋๋ฌธ์
1$ docker tag nodeserver:1 codingapple/myserver:12$ docker push codingapple/myserver:1
์ด๋ฐ ์์ผ๋ก ์ด๋ฏธ์ง ์ด๋ฆ์ ๋ฐ๊พธ๊ณ ์ฌ๋ ค๋ดค์ต๋๋ค. ๋ญ๊ฐ ์๋๋ค๊ณ ๋์ค๋ฉด ํฐ๋ฏธ๋์ docker login๋ถํฐ ์ ๋ ฅํด์ ๋ก๊ทธ์ธ ํ๋ผ๋๊ฑฐ ํด๋ณด์๋ฉด ๋๊ฒ ์ต๋๋ค.

โฒ ์ฐธ๊ณ ๋ก docker tag ์ด์ฉํด์ ์ด๋ฏธ์ง ์ด๋ฆ์ ๋ฐ๊พธ๋ฉด, ์ด๋ฏธ์ง ๋ชฉ๋ก์ ์ด๋ฏธ์ง๊ฐ ํ๋ ๋ ์ถ๊ฐ๋ฉ๋๋ค. ๊ทธ๋์ ๋ญ๊ฐ ์ฉ๋๋ 2๋ฐฐ ์ฐจ์งํ๊ฒ ๋๊ณ ๊ทธ๋ด ๊ฒ ๊ฐ์๋ฐ ID๊ฐ ๋์ผํ๋ฉด ์ค์ ๊ฐ์ ์ด๋ฏธ์ง์ ๋๋ค. ์๋ ์ด๋ฏธ์ง๋ ์ฌ๋ฌ๊ฐ์ ์ด๋ฆ์ ๊ฐ์ง ์ ์์ต๋๋ค. ๊ทธ๋ฅ ๋ชจ๋ ์ด๋ฏธ์ง ์ด๋ฆ์ ๋ณด์ฌ์ฃผ๋ ๊ณณ์ด๋ผ๊ณ ๋ณด๋ฉด ๋๊ฒ ์ต๋๋ค.
3. ์ด๋ฏธ์ง ๋ค์ด๋ก๋๋ docker pull
1docker pull ์ด๋ฏธ์ง๋ช :ํ๊ทธ
์ด๋ฏธ์ง๋ฅผ docker hub์์ ๋ด๋ ค๋ฐ์ผ๋ ค๋ฉด docker pull ๋ช
๋ น์ด๋ฅผ ์ฐ๋ฉด ๋ฉ๋๋ค.
์ค์ docker desktop์์๋ ์ฌ๋ฆฌ๊ณ ๋ด๋ ค๋ฐ์ ์ ์๊ธฐ ๋๋ฌธ์, ๊ทธ๋ฐ ์์ผ๋ก ์จ๋ณด์
๋ ๋๊ฒ ์ต๋๋ค.
๐ก Q. ์ด๋ฏธ์ง ์ ๋ฐ์ดํธ๋๊ฑฐ ์ฌ๋ฆฌ๊ณ ์ถ์ผ๋ฉด?
ํ๊ทธ๋ช ์ ๋ค๋ฅด๊ฒ ์์ฑํด์ ์ด๋ฏธ์ง ์๋ก ๋น๋ํ๊ณ ์ฌ๋ฆฌ๋ฉด ๋ฉ๋๋ค.
๐ก Q. ๋ค๋ฅธ ์ข ๋ฅ์ ์ด๋ฏธ์ง๋ ์ ๋ก๋ํ๊ณ ์ถ์ผ๋ฉด?
e.g. ์๋ฒ ๋ด์ ์ด๋ฏธ์ง, ํ๋ก ํธ์๋ ๋ด์ ์ด๋ฏธ์ง, DB ๋ด์ ์ด๋ฏธ์ง ์ด๋ฐ๊ฒ ์์ผ๋ฉด, ๊ฐ๊ฐ ์ด๋์ ์ ๋ก๋ํ๋๊ฒ ์ข๊ฒ ์ต๋๊น.
- ์ด๋ฐ ๊ฒฝ์ฐ์ ๊ฐ๊ฐ ๋ณ๋์ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ๋ง๋ค์ด์ ๊ฑฐ๊ธฐ์ ์ ๋ก๋ํ๋ ๊ฒฝ์ฐ๋ค์ด ๋ง์ต๋๋ค.
- ๊ทผ๋ฐ ๊ท์ฐฎ์์ ํน์ private ๋ฆฌํฌ์งํ ๋ฆฌ ํ๋๊ฐ์ง๊ณ ๊ณ์ ์ฐ๊ณ ์ถ์ด์,
- ํ๋์ ๋ฆฌํฌ์งํ ๋ฆฌ์ ํ๊ทธ๋ช ๋ง ๋ค๋ฅด๊ฒ ํด์ ์ค์ ๋ฃ๋ ๊ฒฝ์ฐ๋ ์์ต๋๋ค.
- ํ์ง๋ง ์ด๋ฏธ์ง ์ข ๋ฅ๋ง๋ค ๋ณ๋์ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ๋ง๋๋๊ฒ ๊น๋ํฉ๋๋ค.
๐ก cf. ๋ฆฌํฌ์งํ ๋ฆฌ ๋ง๋ค ๋ private ๋ง๊ณ public ์ผ๋ก ๋ง๋ค๋ฉด ์๋ฌด๋ ์ด๊ฑธ ๋ค์ด๋ฐ์ ์ ์๊ธฐ ๋๋ฌธ์, ์ข ๋ฏผ๊ฐํ ๋ด์ฉ์ด ๋ค์ด์๋ ๊ฒ๋ค์ private ๋ฆฌํฌ์งํ ๋ฆฌ์ ์ฌ๋ ค๋์๋ฉด ๋๊ฒ ์ต๋๋ค. ํ์ง๋ง private ๋ฆฌํฌ์งํ ๋ฆฌ๋ ๊ณ์ ๋ง๋ค 1๊ฐ๋ง ์์ฑ๊ฐ๋ฅํฉ๋๋ค.