2023. 6. 16. 12:49ใSystem ์์ ์ค/Docker
"์ด ํฌ์คํ ์ ์ฟ ํก ํํธ๋์ค ํ๋์ ์ผํ์ผ๋ก, ์ด์ ๋ฐ๋ฅธ ์ผ์ ์ก์ ์์๋ฃ๋ฅผ ์ ๊ณต๋ฐ์ต๋๋ค."
๐ systemctl ๋ช ๋ น์ด ์ธ์๋๋ Container
๐ฝ Ubuntu
๐ฆ Image Download
๋จผ์ 2023๋
02์ 23์ผ ๊ธฐ์ค ์ต์ Ubuntu Image๋ฅผ ์ค๋นํด ๋ณผ๊ฒ์.
์ต์ด ์ ๋ช
๋ น์ด๋ฅผ ํตํด Image๋ฅผ ๋ด๋ ค ๋ฐ์ ์ค๋๋ค.
docker images
์์ ๊ฐ์ด Image๊ฐ ์ ์ค๋น๋ ๊ฒ์ ํ์ธํ ์ ์์ด์.
๐ฆ Docker Container ๋ด๋ถ systemctl ๋ช ๋ น์ด ๋จน์ง ์๋ ๋ฌธ์ ํด๊ฒฐ
Docker๋ฅผ ํตํด Ubuntu๋, CentOS์ ๊ฐ์ Linux Container๋ฅผ ๋ง๋ค๊ฒ ๋๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก systemctl ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ ์ ์์ด์.
Docker Hub Offical image์์ ์ด์ผ๊ธฐํ๋ ๋ฐ์ ์ํ๋ฉดsystemd Deamon์ด ํฌํจ์ ๋์ด ์์ง๋ง, ๊ธฐ๋ณธ์ ์ผ๋ก inactiveํ๊ฒ ์ค์ ์ ํด๋จ๋ค๊ณ ํฉ๋๋ค.
์ด๋ ํด๋นdaemon์ ์คํํ ๋,cgroup๋ฅผ ๋ชป์ฐพ๊ฑฐ๋, ๊ถํ ๋ฌธ์ ๋ก ์ด์ฉํ ์ ์๊ธฐ ๋๋ฌธ์ธ๋ฐ, Docker๋ ์์ ๊ฐ์ํ๊ฐ ์๋ ๊ฒฉ๋ฆฌ์ ๊ฐ๋
์ผ๋ก ๋์จ ์น๊ตฌ์ด๊ธฐ ๋๋ฌธ์ Docker Host์ Linux Kernel๋ฅผ ๋น๋ ค ์ฐ๊ฒ ๋๊ณ , ๊ทธ ๋ถ๋ถ์์ ํนํ cgroup๋ผ๋ ์น๊ตฌ๋ ๋ํด Linux์ ์์์ Group ๋จ์๋ก ํ ๋นํ๋ ์ญํ ์ ํ๋ ์น๊ตฌ์์.
์ด ๋ฌธ์ ๋ ๊ฒฐ๊ตญ ๊ฐ OS Container์์ systemd๋ฅผ ํตํด ์คํํ๋ daemon์ด ํด๋น ์์์ ํ ๋น ๋ฐ์ง ๋ชปํ๊ฒ ํด๋จ๊ณ , ์ด๊ฒ ๋๋ฌธ์ ์ด์ฉํ ์ ์๋ ๋ฌธ์ ๊ฐ ์๋ ๊ฒ์ด์์.
์ด๋ ๋ณด์์ ์ํ ๋๋ฌธ์ ๊ถํ์ ์ ํํด ๋จ๊ธฐ ๋๋ฌธ์ด๋ผ๊ณ ํด์.
์ฌ๊ธฐ์ systemctl์ systemd๋ฅผ ๊ด๋ฆฌํ๋ ๋ช
๋ น์ด์์.
๋จผ์ ์ด ๋ถ๋ถ์ ํด๊ฒฐํด์ผ ์ฐจ ํ Docker Container๊ฐ ์ฌ ๊ธฐ๋ ๋๋๋ผ๋ ํด๋น Service๊ฐ ์๋์ผ๋ก ๊ธฐ๋๋๊ฒ ํ ์ ์๊ธฐ ๋๋ฌธ์ ์ด ๋ถ๋ถ์ ๋จผ์ ํด๊ฒฐํด ๋ณด๋ ค ํด์.
์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด cgroup์ ์ฌ์ฉํ ์ ์๋ Ubuntu Image๋ฅผ ๋ง๋ค์ด ๋ณผ๊ฑฐ์์.
์ฃผ๋๋ Dockerfile์ ๋ง๋ค์ด ์์
ํด ๋ณผ๊ฒ์.
์ฃผ๋๋ ์์ ๊ฐ์ด Docker File์ ๋ง๋ค์ด ์ฃผ์์ด์.
์ฌ๊ธฐ์ FROM์ Dockerfile ๋ด ๋ช
๋ น์ด๋ฅผ ํตํด Build ๊ธฐ๋ฐ์ด ๋ Image๋ฅผ ์ ์ํ๋ ๊ณณ์ด์์.
ENV๋ ํ๊ฒฝ ๋ณ์๋ฅผ ์ถ๊ฐํด ์ค ์ ์๋ ๋ถ๋ถ์ด๊ณ , RUN์ ํด๋น ๋ช
๋ น์ด๋ค์ด ์คํ๋์ด Build๋ Image๋ฅผ ๋ง๋ค๊ฒ ํ๋ ๊ฒ์ด๊ณ , VOLUME์ Docker Host์ ์๋ ํด๋นํ๋ ๊ฒฝ๋ก์ Directory๋ฅผ Mappingํด ์ฃผ๋ ๊ฒ์ด์์.
CMD๋ Image๊ฐ Container๋ก ์ฌ๋ผ๊ฐ ๋ ์คํ๋๋ ๋ช
๋ น์ด๋ค์ ๋์ดํ ์ ์๋ ๋ถ๋ถ์ด์์.
๊ทธ๋ฐ ๋ค ์์ ๊ฐ์ด Dockerfile ๊ถํ์ ์ค์ ํด ์ฃผ์์ด์.
๊ทธ๋ฆฌ๊ณ ์์ ๊ฐ์ด Docker Image๋ฅผ ๋ง๋ค๊ธฐ ์ํด Build ํด ์ฃผ์์ด์.
์์ ๊ฐ์ด Docker ๊ธฐ๋์ฉ Shell Script File์ ์์ฑํด ์ฃผ์์ด์.
์ฌ๊ธฐ์ ์ฐธ๊ณ ํ ๋งํ ์ฌํญ์ systemd์ ๊ฒฝ์ฐ CAP_SYS_ADMINcapablilty๊ฐ ํ์ํ๋, docker์ non previleged container๋ ๋ณด์ ๋ฌธ์ ๋ก CAP_SYS_ADMIN capablilty๊ฐ ์๋ค๋ ์ ์ด์์.
๋ํ, previleged container๋ ๋น ๊ถ์ฅ์ฌํญ์ด๊ธฐ๋ ํด์.
systemd ๊ฐ์ ๊ฒฝ์ฐcgroup File์ ํ์๋ก ํ๊ธฐ ๋๋ฌธ์ ์์ ๊ฐ์ด-v /sys/fs/cgroup:/sysfs/cgroup:ro๋ฅผ ํตํด Docker Host์ cgroup๋ฅผ Mappingํด ์ฃผ๋, Read-Only๋ก Mount๋ฅผ ํด ์ค๋๋ค.
๊ทธ๋ฆฌ๊ณ , ํด๋น Shell Script File์ ๊ถํ์ ๋ณ๊ฒฝํด ์ฃผ์์ด์.
ํด๋น Shell Script๋ฅผ ์๋ ์์ผ Container ๊ฐ ๊ธฐ๋๋๊ฒ ํด ์ค๋๋ค.
์์ ๊ฐ์ด ํด๋น Container์ ์ ์ํ ๋ค systemctl ๋ช
๋ น์ด๊ฐ ์ ๋จน๋๊ฑธ ํ์ธํ ์ ์์์ด์.
์ด์ ์ด๋ ๊ฒ ๋ง๋ Ubuntu Docker Image๋ฅผ ๊ฐ์ง๊ณ , ์ฌ๋ฌ Application์ฉ Docker๋ฅผ ๋ง๋๋๋ฐ ํ์ฉํ๋ฉด ์ข์ ๊ฑฐ ๊ฐ์์.
"์ด ํฌ์คํ ์ ์ฟ ํก ํํธ๋์ค ํ๋์ ์ผํ์ผ๋ก, ์ด์ ๋ฐ๋ฅธ ์ผ์ ์ก์ ์์๋ฃ๋ฅผ ์ ๊ณต๋ฐ์ต๋๋ค."
'System ์์ ์ค > Docker' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Docker] ์ ์ฅ์ ๋ณ๊ฒฝ (0) | 2023.07.07 |
---|---|
[Docker] Container ๋ค๋ฅธ System์ผ๋ก ์ฎ๊ธฐ๊ธฐ (0) | 2023.07.05 |
[Docker]Ubuntu22.04.05 LTS Server Docker, Docker-compose ์ค์น (0) | 2023.06.16 |
[Docker] Bash Shell Script๋ฅผ ์ด์ฉํ Docker Backup (0) | 2023.06.14 |
[Docker] Container ๋ค๋ฅธ System์ผ๋ก ์ฎ๊ธฐ๊ธฐ (0) | 2023.06.14 |