Docker ์ด๋ฏธ์ง๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์ธํ ์์๋ณด๊ฒ ์ต๋๋ค. Docker ์ด๋ฏธ์ง๋ ์ปจํ ์ด๋๋ฅผ ์์ฑํ๋ ๋ฐ ํ์ํ ๋ชจ๋ ํ์ผ๊ณผ ์ค์ ์ ํฌํจํ๊ณ ์์ด, ํจ์จ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐฐํฌ์ ๊ด๋ฆฌ์ ํต์ฌ์ ์ธ ์ญํ ์ ํฉ๋๋ค.
์ด ํฌ์คํธ์์๋ Docker Hub์์ ์ด๋ฏธ์ง๋ฅผ ํ์ธํ๊ณ , ๋ค์ด๋ก๋(pull)ํ๋ฉฐ, ์ญ์ ํ๋ ๋ฐฉ๋ฒ๊น์ง ๋จ๊ณ๋ณ๋ก ์ค๋ช ๋๋ฆด๊ฒ์. ํนํ MySQL ์ด๋ฏธ์ง๋ฅผ ์์๋ก ๋ค์ด ์ค์ต๋ ํจ๊ป ์งํํด๋ณด๊ฒ ์ต๋๋ค
Docker Hub์์ ์ด๋ฏธ์ง ์ ๋ณด ํ์ธํ๊ธฐ
Docker Hub๋ Docker ์ด๋ฏธ์ง๋ฅผ ์ ์ฅํ๊ณ ๊ณต์ ํ ์ ์๋ ๊ณต์ ๋ ์ง์คํธ๋ฆฌ์ ๋๋ค.
๋ค์ํ ์คํ ์์ค ์ด๋ฏธ์ง๋ฅผ ์ฝ๊ฒ ๊ฒ์ํ๊ณ ๋ค์ด๋ก๋ํ ์ ์์ด, ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ๊ณผ ๋ฐฐํฌ์ ํฐ ๋์์ ์ค๋๋ค.
Docker Hub ๋ฐฉ๋ฌธํ๊ธฐ
Docker Hub์ ์ ์ํ์ฌ ์ํ๋ ์ด๋ฏธ์ง๋ฅผ ๊ฒ์ํด๋ณด์ธ์.
https://hub.docker.com/
์ฌ๊ธฐ์ ์๋ฅผ ๋ค์ด, node๋ mysql๊ณผ ๊ฐ์ ๋ค์ํ ์ด๋ฏธ์ง๋ฅผ ์ฐพ์๋ณผ ์ ์์ต๋๋ค.
์ด๋ฏธ์ง ๋ค์ด๋ก๋(pull)ํ๊ธฐ
Docker ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ๋จผ์ ๋ก์ปฌ ์์คํ ์ผ๋ก ๋ค์ด๋ก๋ํด์ผ ํฉ๋๋ค. ์ด๋ฅผ pull์ด๋ผ๊ณ ํฉ๋๋ค.
๊ธฐ๋ณธ ์ด๋ฏธ์ง ๋ค์ด๋ก๋
๊ฐ์ฅ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ ์ด๋ฏธ์ง์ ๋ ํฌ์งํ ๋ฆฌ ์ด๋ฆ๊ณผ ํ๊ทธ๋ฅผ ์ง์ ํ์ฌ ๋ค์ด๋ก๋ํ๋ ๊ฒ์ ๋๋ค.
ํ๊ทธ๋ฅผ ์ง์ ํ์ง ์์ผ๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก latest ํ๊ทธ๊ฐ ์ฌ์ฉ๋ฉ๋๋ค.
docker image pull node:20.15.1
์ ๋ช ๋ น์ด๋ node ๋ ํฌ์งํ ๋ฆฌ์ 20.15.1 ํ๊ทธ๊ฐ ๋ถ์ ์ด๋ฏธ์ง๋ฅผ ๋ค์ด๋ก๋ํฉ๋๋ค.
๐ก ์ฐธ๊ณ : ํ๊ทธ๋ฅผ ์ง์ ํ์ง ์์ผ๋ฉด latest ํ๊ทธ๊ฐ ์๋์ผ๋ก ์ง์ ๋ฉ๋๋ค.
๋ค์ด์ ์คํธ(Digest)๋ฅผ ์ฌ์ฉํ ์ด๋ฏธ์ง ๋ค์ด๋ก๋
์ด๋ฏธ์ง๋ฅผ ํน์ ํ ์ํ๋ก ์ ํํ ๋ค์ด๋ก๋ํ๋ ค๋ฉด ๋ค์ด์ ์คํธ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ค์ด์ ์คํธ๋ ์ด๋ฏธ์ง์ ๊ณ ์ ํ ํด์๊ฐ์ผ๋ก, ์ด๋ฏธ์ง์ ๋ณ๊ฒฝ ์ฌ๋ถ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
docker image pull node@sha256:b21bcf3e7b6e68d723eabedc6067974950941167b5d7a9e414bd5ac2011cd1c4
์ ๋ช ๋ น์ด๋ node ๋ ํฌ์งํ ๋ฆฌ์์ ํน์ ๋ค์ด์ ์คํธ๋ฅผ ๊ฐ์ง ์ด๋ฏธ์ง๋ฅผ ๋ค์ด๋ก๋ํฉ๋๋ค.
๋ค์ด๋ก๋ํ ์ด๋ฏธ์ง ํ์ธํ๊ธฐ
๋ค์ด๋ก๋ํ ์ด๋ฏธ์ง๋ docker image ls ๋ช ๋ น์ด๋ก ํ์ธํ ์ ์์ต๋๋ค.
docker image ls
์์ ์ถ๋ ฅ:
REPOSITORY TAG IMAGE ID CREATED SIZE
node 20.15.1 4efd4a4c24f5 6 months ago 1.09GB
์ฌ๊ธฐ์ REPOSITORY๋ ์ด๋ฏธ์ง์ ์ด๋ฆ, TAG๋ ๋ฒ์ ๋๋ ๋ณ์นญ, IMAGE ID๋ ๊ณ ์ ์๋ณ์, CREATED๋ ์์ฑ ์๊ฐ, SIZE๋ ์ด๋ฏธ์ง ํฌ๊ธฐ๋ฅผ ๋ํ๋ ๋๋ค.
์ด๋ฏธ์ง ์ญ์ ํ๊ธฐ
๋ ์ด์ ํ์ํ์ง ์์ ์ด๋ฏธ์ง๋ฅผ ์ญ์ ํ์ฌ ๋์คํฌ ๊ณต๊ฐ์ ํ๋ณดํ ์ ์์ต๋๋ค.
Docker๋ ๋ค์ํ ๋ฐฉ๋ฒ์ผ๋ก ์ด๋ฏธ์ง๋ฅผ ์ญ์ ํ ์ ์๊ฒ ํด์ค๋๋ค.
ํน์ ์ด๋ฏธ์ง ์ญ์ ํ๊ธฐ
ํน์ ํ๊ทธ๊ฐ ์๋ ์ด๋ฏธ์ง๋ฅผ ์ญ์ ํ๋ ค๋ฉด docker image rm ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค.
docker image rm node:20.15.1
์์ ์ถ๋ ฅ:
Untagged: node:20.15.1
Untagged: node@sha256:6326b52a508f0d99ffdbfaa29a69380321b215153db6f32974835bac71b38fa4
Deleted: sha256:4efd4a4c24f50c8425922423a2c347aea8e44a59000a201989e9c3c45b6e60eb
...
์ด ๋ช ๋ น์ด๋ ์ง์ ํ ์ด๋ฏธ์ง ํ๊ทธ๋ฅผ ์ธํ๊ทธ(Untagged)ํ๊ณ , ํด๋น ์ด๋ฏธ์ง๊ฐ ๋ ์ด์ ์ฌ์ฉ๋์ง ์๋๋ค๋ฉด ์ญ์ (Delete)ํฉ๋๋ค.
๋๊ธ๋ง ์ด๋ฏธ์ง(Dangling Image) ์ญ์ ํ๊ธฐ
๋๊ธ๋ง ์ด๋ฏธ์ง๋ ํ๊ทธ๊ฐ ์๋ ์ด๋ฏธ์ง๋ก, ๋ ์ด์ ์ฐธ์กฐ๋์ง ์๋ ์ด๋ฏธ์ง์ ๋๋ค.
์ด๋ฅผ ์ญ์ ํ๋ ค๋ฉด docker image prune ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค.
docker image prune
์ ๋ช ๋ น์ด๋ ํ๊ทธ๊ฐ ์๋ ๋๊ธ๋ง ์ด๋ฏธ์ง๋ง ์ญ์ ํฉ๋๋ค.
์ฌ์ฉ๋์ง ์๋ ๋ชจ๋ ์ด๋ฏธ์ง ์ญ์ ํ๊ธฐ
๋ชจ๋ ์ฌ์ฉ๋์ง ์๋ ์ด๋ฏธ์ง๋ฅผ ์ญ์ ํ๋ ค๋ฉด -a ์ต์ ์ ์ถ๊ฐํฉ๋๋ค. ์ด ๊ฒฝ์ฐ ํ๋กฌํํธ ํ์ธ ์์ด ์ญ์ ๋๋ฏ๋ก ์ฃผ์๊ฐ ํ์ํฉ๋๋ค.
docker image prune -a
์คํ ์ ๊ฒฝ๊ณ ๋ฉ์์ง๊ฐ ํ์๋ฉ๋๋ค:
WARNING! This will remove all images without at least one container associated to them.
Are you sure you want to continue? [y/N]
ํ์ธ ํ y๋ฅผ ์ ๋ ฅํ๋ฉด ๋ชจ๋ ์ฌ์ฉ๋์ง ์๋ ์ด๋ฏธ์ง๊ฐ ์ญ์ ๋ฉ๋๋ค.
docker image prune -f -a
์ ๋ช ๋ น์ด๋ -f ์ต์ ์ ์ถ๊ฐํ์ฌ ํ๋กฌํํธ ํ์ธ ์์ด ๊ฐ์ ๋ก ์ญ์ ํฉ๋๋ค.
MySQL ์ด๋ฏธ์ง ๊ด๋ฆฌ ์ค์ต
์ด์ ์ค์ ๋ก MySQL ์ด๋ฏธ์ง๋ฅผ ๋ค์ด๋ก๋ํ๊ณ ๊ด๋ฆฌํด๋ณด๊ฒ ์ต๋๋ค.
MySQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ Docker ์ด๋ฏธ์ง๋ฅผ ํตํด ์์ฝ๊ฒ ์ค์นํ๊ณ ์ฌ์ฉํ ์ ์์ต๋๋ค.
MySQL ์ด๋ฏธ์ง ๋ค์ด๋ก๋
๋จผ์ , Docker Hub์์ MySQL ์ด๋ฏธ์ง๋ฅผ ๋ค์ด๋ก๋ํด๋ณด๊ฒ ์ต๋๋ค.
MySQL 8.3.0 ๋ฒ์ ๋ค์ด๋ก๋
docker image pull mysql:8.3.0
์์ ์ถ๋ ฅ:
8.3.0: Pulling from library/mysql
c6a0976a2dbe: Pull complete
8dd4f8e415ca: Pull complete
...
Digest: sha256:9de9d54fecee6253130e65154b930978b1fcc336bcc86dfd06e89b72a2588ebe
Status: Downloaded newer image for mysql:8.3.0
docker.io/library/mysql:8.3.0
MySQL ์ต์ ๋ฒ์ (latest) ๋ค์ด๋ก๋
docker image pull mysql
๐ก ์ฐธ๊ณ : ํ๊ทธ๋ฅผ ์ง์ ํ์ง ์์ผ๋ฉด latest ํ๊ทธ๊ฐ ์๋์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
์์ ์ถ๋ ฅ:
Using default tag: latest
latest: Pulling from library/mysql
f7fa64c7935f: Pull complete
bbcaadfa8390: Pull complete
...
Digest: sha256:0255b469f0135a0236d672d60e3154ae2f4538b146744966d96440318cc822c6
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest
๋ค์ด๋ก๋ํ ์ด๋ฏธ์ง ๋ชฉ๋ก ํ์ธ
๋ค์ด๋ก๋ํ ์ด๋ฏธ์ง๋ฅผ ํ์ธํ๋ ค๋ฉด ๋ค์ ํ ๋ฒ docker image ls ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค.
docker image ls
์์ ์ถ๋ ฅ:
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql latest 50296fefa2a2 2 months ago 625MB
MySQL ์ด๋ฏธ์ง ์ญ์ ํ๊ธฐ
๋ค์ด๋ก๋ํ MySQL ์ด๋ฏธ์ง๋ฅผ ์ญ์ ํด๋ณด๊ฒ ์ต๋๋ค.
docker image rm mysql
์์ ์ถ๋ ฅ:
Untagged: mysql:latest
Untagged: mysql@sha256:0255b469f0135a0236d672d60e3154ae2f4538b146744966d96440318cc822c6
Deleted: sha256:50296fefa2a2dbc64120735564ad18b0e51681c58db3b4e5ca17aefad8259c5a
...
์ด ๋ช ๋ น์ด๋ mysql:latest ์ด๋ฏธ์ง๋ฅผ ์ธํ๊ทธํ๊ณ , ๋ ์ด์ ์ฌ์ฉ๋์ง ์๋ ์ด๋ฏธ์ง ๋ ์ด์ด๋ฅผ ์ญ์ ํฉ๋๋ค.
์ฌ์ฉํ์ง ์๋ ๋ชจ๋ ์ด๋ฏธ์ง๋ฅผ ํ๋กฌํํธ ํ์ธ ์์ด ์ญ์ ํ๊ธฐ
๋ง์ฝ ์์คํ ์ ๋ ์ด์ ํ์ ์๋ ๋ชจ๋ ์ด๋ฏธ์ง๋ฅผ ํ ๋ฒ์ ์ญ์ ํ๊ณ ์ถ๋ค๋ฉด, ๋ค์ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
docker image prune -f -a
์ด ๋ช ๋ น์ด๋ ํ๋กฌํํธ ํ์ธ ์์ด ์ฌ์ฉ๋์ง ์๋ ๋ชจ๋ ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ ๋ก ์ญ์ ํฉ๋๋ค.
๋์คํฌ ๊ณต๊ฐ์ ํ๋ณดํ ๋ ์ ์ฉํ์ง๋ง, ์ญ์ ์ ์ ๊ผญ ํ์ํ ์ด๋ฏธ์ง๊ฐ ์๋์ง ํ์ธํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
'โ๏ธ Cloud Native > ๐ณ Docker' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Docker] Docker ์ด๋ฏธ์ง ๋น๋ & ๋ฐฐํฌ (0) | 2025.01.10 |
---|---|
[Docker] Dockerfile ์์ฑํ๊ธฐ: ๋จ๊ณ๋ณ ๊ฐ์ด๋ (0) | 2025.01.10 |
[Docker] Container์ ์ด๋ฏธ์ง (0) | 2025.01.10 |
[Docker] Docker Volume ํ์ฉ (0) | 2024.11.16 |
[Docker] Docker๋ฅผ ํ์ฉํ Ngnix Container ์ค์ , ๊ด๋ฆฌ & Docker hub ๋ฐฐํฌ (0) | 2024.11.09 |