๋ชฉ์ฐจ
๐ Docker Volume ์ ์ ์ฌ์ฉํ๋๊ฐ?
Docker ๋ฅผ ์ฌ์ฉํ๋ฉด ํน์ ํ๋ก๊ทธ๋จ์ ์ปจํ ์ด๋๋ก ๋์ธ ์ ์์
ํน์ ํ๋ก๊ทธ๋จ์ ๊ธฐ๋ฅ ์ถ๊ฐ ์
๋ฌด์กฐ๊ฑด ์ ์ด๋ฏธ์ง๋ฅผ ๋ง๋ค์ด์ ์ปจํ ์ด๋๋ฅผ ์คํ์ํค๋๋ฐ (์ด ๋ฐฉ์์ด ํจ์จ์ ์ด๋ผ๊ณ ์๊ฐํ๊ธฐ ๋๋ฌธ)
ํ์ง๋ง,
์๋ก์ด ์ปจํ ์ด๋๋ก ๊ต์ฒด์ MySQL ์ปจํ ์ด๋์๋ค๋ฉด ๋ฐ์ดํฐ๋ ์ญ์ ๋์ด๋ฒ๋ฆฐ๋ค.
๊ทธ๋์ ๋ด๋ถ์ ์ ์ฅ๋ ๋ฐ์ดํฐ๊ฐ ์ญ์ ๊ฐ ์๋๋ ๊ฒฝ์ฐ์ ๋ณผ๋ฅจ Volume ๊ฐ๋ ์ ์ฌ์ฉํ๋ค.
๐ Docker Volume ์ด๋ ๋ญ๊น?
์ปจํ ์ด๋ ์์ฒด์ ๊ณต๊ฐ์ ์ฌ์ฉ X , ํธ์คํธ ์ปดํจํฐ์ ์ ์ฅ๊ณต๊ฐ์ ๊ณต์ ํด์ ์ฌ์ฉํจ
`docker run -v [ํธ์คํธ๋ํ ํ ๋ฆฌ์ ๋๊ฒฝ๋ก]:[์ปจํ ์ด๋๋๋ ํ ๋ฆฌ์ ๋๊ฒฝ๋ก] ์ด๋ฏธ์ง๋ช [:ํ๊ทธ๋ช ]`
- โญhost ์ ๋๋ ํ ๋ฆฌ๊ฐ ์ด๋ฏธ ์กด์ฌํ๋ฉด -> ํธ์คํธ๋๋ ํฐ๋ฆฌ๊ฐ ์ปจํ ์ด๋ ๋๋ ํฐ๋ฆฌ๋ฅผ ๋ฎ์ด์์
- โญ host ์ ๋๋ ํ ๋ฆฌ๊ฐ ์กด์ฌํ์ง ์์ผ๋ฉด -> ์ปจํ ์ด๋ ๋๋ ํฐ๋ฆฌ ํ์ผ์ ๋ณต์ฌํด์ด
mysql ์คํํ๊ธฐ - ๋ณผ๋ฅจ์์ด
mysql - Official Image | Docker Hub
Quick reference Supported tags and respective Dockerfile links 9.2.0, 9.2, 9, innovation, latest, 9.2.0-oraclelinux9, 9.2-oraclelinux9, 9-oraclelinux9, innovation-oraclelinux9, oraclelinux9, 9.2.0-oracle, 9.2-oracle, 9-oracle, innovation-oracle, oracleโ 8
hub.docker.com
โ mysql ์ ์ฒ์์์ฑ์ ๋น๋ฒ ์ง์ ์ ํด์ผ ์ ์ ์์ฑ์ด ๋๋ค.
์ง์ ํ์ง ์์ผ๋ฉด ์ ์ ์คํ์ด ๋์ง ์์
โ (์ ์์คํ) ์ง์ ํด์ ๋ค์ ์คํ
-e ํ๊ฒฝ๋ณ์ ์ค์
๋ฆฌ๋ ์ค : ํ๊ฒฝ๋ณ์ ์ค์ ์ปดํจํฐ ๋ด๋ถ์ ํ๊ฒฝ๋ณ์๋ก ์ ์ฅํด์ค (ํด๋น ๋ณ์๊ฐ์ ์ฝ์ด๊ฐ์ MYSQL ์ ์ธํ ํ ๋ ๋น๋ฐ๋ฒํธ๋ก ์ธํ ํจ)
โ ํ๊ฒฝ๋ณ์์ ์ ์ ์ฅ๋์ด์๋์ง ํ์ธ
* $ ํ๊ฒฝ๋ณ์ ํธ์ถ
โ
mysql ์คํ์ํค๊ธฐ `mysql -u root -p`
์คํ์ํค๊ณ ๋น๋ฐ๋ฒํธ ์ ๋ ฅ (๋น๋ฐ๋ฒํธ๋ ์ ๋ ฅ๋๋ ๋ชจ์ต์ด ์๋ณด์ด์ง๋ง ์ ๋ ฅ๋๊ณ ์์)
โ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์กฐํ / ์์ฑ
`show databases`
`create database mydb`
โ ์ด๋ ๋ง๋ค์ด์ง ์ปจํ ์ด๋๋ฅผ ์ญ์ ํ๊ณ ๋ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ํ์ธํ๋ฉด
๋ง๋ค์ด๋ mydb ๊ฐ ๋ณด์ด์ง ์์ -> db์ ์๋ ๋ฐ์ดํฐ๋ ๋ค ์ญ์ ๋์๋ค๋ ์๋ฏธ
์ด๋ฅผ ๋ฐฉ์งํ๊ธฐ์ํด volume ์ ์ฌ์ฉํ๋ค. โญ
mysql ์คํํ๊ธฐ - ๋ณผ๋ฅจ์ฌ์ฉ
โ ๋ณผ๋ฅจ ์์ฑํ๊ธฐ
์ด๋ ๊ณต์ ๋ฌธ์์ ์ด๋์ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋์ง ์ ์ ์์
์ฆ ์ด๋์ ๋ณผ๋ฅจ์ ๋นผ์ ์จ์ผํ๋์ง ์ ์ ์์
โ ์ปจํ ์ด๋ mysql ์คํ -> ๋ฐ์ดํฐ๋ฒ ์ด์ค ์กฐํ ํ ์๋ก์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ฑ
โ ์ปจํ ์ด๋๋ฅผ ์ญ์ ํ๊ณ ์๋ก ๋์์ ํ ์คํธ ํด๋ด -> mydb ๊ฐ ์ด์์๋๊ฑธ ํ์ธํ ์ ์์
๋ณผ๋ฅจ(ํธ์คํธ ์ ์ฅ๊ณต๊ฐ)์ ์ฌ์ฉํด์ db ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋ก ์ ์ฅํด๋์๊ธฐ ๋๋ฌธ โญ
๋ณผ๋ฅจ ์์ฑ์ ์ฃผ์ํ ์ - ๋น๋ฐ๋ฒํธ๋ฅผ ๋ณ๊ฒฝํด์ ์์ฑํ๋ ๊ฒฝ์ฐ
๊ธฐ์กด mysql ์ปจํ ์ด๋๋ฅผ ์ญ์ ํ๊ณ
์ปจํ ์ด๋๋ฅผ ์๋ก ์์ฑํ ๋ ๋น๋ฐ๋ฒํธ๋ฅผ ๋ณ๊ฒฝํด์ ํ๋ฉด ์ค๋ฅ๊ฐ ๋ฌ๋ค.
>> ์ต์ด ๋น๋ฐ๋ฒํธ ์ค์ ๊ฐ์ด ์ด๋ฏธ ํธ์คํธ์ ์ ์ฅ๊ณต๊ฐ์ ์ ์ฅ๋์ด ์๊ธฐ๋๋ฌธ์ด๋ค.
์ปจํ ์ด๋๋ฅผ ์ญ์ ํ๊ณ ๋ค์ ์๋ก์ด ๋น๋ฐ๋ฒํธ๋ก ๋ง๋ค์ด์ค๋ ๋ฎ์ฌ์์์ง์ง ์๋๋ค. (๋ณผ๋ฅจ์ ํน์ฑ)โญ
ํธ์คํธ์ ์ ์ฅ๊ณต๊ฐ์ ๊ฐ์ ์ง์ฐ๊ณ ๋ค์ ์ค์ ํด์ฃผ๋ ์ ๋ฐ์ ์๋ค.
๋ณผ๋ฅจ ์์ฑ์ ์ฃผ์ํ ์ - ๊ฒฝ๋ก๋ฅผ ์๋ชป ์ ๋ ฅํ๋ ๊ฒฝ์ฐ (๋ฎ์ด์ฐ๊ธฐ)
โ
ํธ์คํธ ์ ์ฅ๊ณต๊ฐ์ ์ด๋ฏธ ์กด์ฌํ๋ ๋๋ ํฐ๋ฆฌ test_data ๋ฅผ ๋ง๋ค์ด๋ณด์. (empty.txt ๋ ์ถ๊ฐํด๋ด)
โ ์๋์ฐ์์๋ vi ๋ช ๋ น์ด๊ฐ ์์ผ๋ `notepad ํ์ผ๋ช .ํ์ฅ์` ๋ก ์์ฑํด์ฃผ์
โ test_data ๋๋ ํฐ๋ฆฌ๋ฅผ ๊ณต์ ํด์ ์ฐ๊ณ ์ test_data ์ mysql ์ ๋ณผ๋ฅจ์ ์์ฑํ๋ฉด
mysql ๋ฐ์ดํฐ๊ฐ ํด๋น ๋๋ ํฐ๋ฆฌ์ ์๊ณ , ์คํ๋ ์๋๋ค.;;
- ์ด๋ฏธ host ์ ๋๋ ํฐ๋ฆฌ๊ฐ ์กด์ฌํ๊ธฐ ๋๋ฌธ์, ํ์ผ์ ๋ณต์ฌํด์ค๋ ๊ฒ์ด ์๋
์กด์ฌํ๋ host ๋๋ ํฐ๋ฆฌ๋ฅผ ์ปจํ ์ด๋์๊ฒ ๋ฎ์ด์์๋ฒ๋ ธ๊ธฐ ๋๋ฌธ์ด๋ค โญ
โ ์๋์ฐ์์๋ rm ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ ์ ์์ผ๋ `Remove-Item -Recurse -Force ํ์ผ๋ช ` ์ผ๋ก ์ง์์ฃผ์
โ ๋น ๋๋ ํฐ๋ฆฌ or ์กด์ฌํ์ง ์์ ๋๋ ํฐ๋ฆฌ ๋ก ๋ง๋ค์ด๋์ผ ์ ๋๋ก๋ ๋ณผ๋ฅจ์ด ๋ง๋ค์ด์ง๊ณ ์คํ์ด ๋๋ค. โญ
โ ์ญ์ ํ๋ ๋๋ ํฐ๋ฆฌ๋ ์๋ก ๋ณต์ฌํด์จ๊ฑธ ๋ณผ ์ ์๋ค. (๊ฐ์ ํ์ผ์ด ๋ค์ด์์์ ์ ์ ์์)
โ host ์ ์ฅ๊ณต๊ฐ์ ํ์ผ test.txt ๋ฅผ ์ถ๊ฐํ๋ฉด -> ์ปจํ ์ด๋์๋ ์กด์ฌํจ์ ํ์ธ ํ ์ ์๋ค
์ฆ, ์ ์ฅ๊ณต๊ฐ (๋ณผ๋ฅจ) ์ ๊ณต์ ํจ์ ์ ์ ์๋ค. โญ
๊ทธ ์ธ postgreSQL / MongoDB
https://hub.docker.com/_/postgres
postgres - Official Image | Docker Hub
Note: the description for this image is longer than the Hub length limit of 25000, so has been trimmed. The full description can be found at https://github.com/docker-library/docs/tree/master/postgres/README.mdโ . See also docker/hub-feedback#238โ and d
hub.docker.com
5432
https://hub.docker.com/_/mongo
mongo - Official Image | Docker Hub
Quick reference Supported tags and respective Dockerfile links Note: the description for this image is longer than the Hub length limit of 25000, so the "Supported tags" list has been trimmed to compensate. See also docker/hub-feedback#238โ and docker/ro
hub.docker.com
27017