
Docker ์ด๋ฏธ์ง๋ฅผ ๋ง๋ค๊ณ ๋๋ฉด, ์ฌ๋ฌ ๊ฐ๋ฐ ํ๊ฒฝ์ด๋ ํ์๋ค๊ณผ ์ด๋ฏธ์ง๋ฅผ ๊ณต์ ํ๊ธฐ ์ํด ๋ณดํต Docker Hub๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๊ณต๊ฐ ๋ ์ง์คํธ๋ฆฌ์ธ Docker Hub๋ ๊ฐํธํ์ง๋ง, ๋ค์๊ณผ ๊ฐ์ ๋จ์ ์ด ์์ต๋๋ค.
ํนํ ๊ธฐ์ ํ๊ฒฝ์์๋ ๋๊ท๋ชจ ํ๋ผ์ด๋น ์ด๋ฏธ์ง๋ฅผ ์์ ํ๊ฒ ๊ด๋ฆฌํ ํ์๊ฐ ์์ต๋๋ค. ์ด๋ ์์ฒด์ ์ธ ํ๋ผ์ด๋น Docker ๋ ์ง์คํธ๋ฆฌ๋ฅผ ๊ตฌ์ถํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ์ด์ ์ ์ป์ ์ ์์ต๋๋ค:
์ค๋์ AWS EC2์ Docker Registry๋ฅผ ์ค์นํ๋ ๋ฐฉ๋ฒ์ ๋จ๊ณ๋ณ๋ก ์ ๋ฆฌํด ๋ณด๊ฒ ์ต๋๋ค.

์ด๋ฒ ์ค์ต์ EC2์ Docker๊ฐ ์ค์น๋์ด ์๋ค๋ ๊ฐ์ ํ์ ์งํํฉ๋๋ค. EC2 ์์ฑ ๋ฐ Docker ์ค์น ๋ฐฉ๋ฒ์ด ๊ถ๊ธํ๋ค๋ฉด ์๋ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ์ธ์:
(EC2) docker pull registry
(EC2) docker run -d --name private-registry -p 5000:5000 registry

๋ ์ง์คํธ๋ฆฌ๊ฐ ์ ์์ ์ผ๋ก ๋์ํ๋์ง ๋ก์ปฌ ์ปดํจํฐ์์ ํ์ธํด ๋ณด๊ฒ ์ต๋๋ค.
(mac) docker pull nginx
(mac) docker tag nginx {ec2-instance-public-ip}:5000/nginx
(mac) docker push {ec2-instance-public-ip}:5000/nginx
Get โhttps://{ec2-instance-public-ip}:5000/v2/โ: http: server gave HTTP response to HTTPS client
push์ pull์ ๊ธฐ๋ณธ์ ์ผ๋ก HTTPS๋ฅผ ์ฌ์ฉํ๋๋ฐ, ํ์ฌ ๋ ์ง์คํธ๋ฆฌ๋ HTTP๋ง ์ง์ํ๊ธฐ ๋๋ฌธ์
๋๋ค.daemon.json ํ์ผ์ insecure-registries ์ค์ ์ ์ถ๊ฐํด์ผ ํฉ๋๋ค.daemon.json ํ์ผ ์์ ~/.docker/daemon.json/etc/docker/daemon.jsonC:\ProgramData\docker\config\daemon.json{
"builder": {
"gc": {
"defaultKeepStorage": "20GB",
"enabled": true
}
},
"experimental": false,
"features": {
"buildkit": true
},
"insecure-registries": [
"{ec2-instance-public-ip}:5000"
]
}

# ์ด๋ฏธ์ง Push
(mac) docker push {ec2-instance-public-ip}:5000/nginx
# ์ฑ๊ณต ์ฌ๋ถ ํ์ธ
(mac) curl -X GET http://{ec2-instance-public-ip}:5000/v2/_catalog
# ์์ ์๋ต
{"repositories":["nginx"]}
nginx๊ฐ ํฌํจ๋์ด ์๋ค๋ฉด Docker Registry ์ค์น๊ฐ ์ฑ๊ณต์ ์ผ๋ก ์๋ฃ๋ ๊ฒ์
๋๋ค