busybox - unix command tools

Intro busybox๋Š” ์ž‘๊ณ  ๊ฐ€๋ณ๊ณ  ๋น ๋ฅธ POSIX ํ‘œ์ค€ ์œ ํ‹ธ ๋ชจ์Œ์ด๋‹ค. docker์—์„œ ์—ฌ๋Ÿฌ ๊ฐ€์ง€๋กœ ์‘์šฉํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์‘์šฉ ์ž„๋ฒ ๋””๋“œ ์‹œ์Šคํ…œ์— ๋นŒ๋“œํ•˜๊ธฐ windows ํ™˜๊ฒฝ์—์„œ Unix Shell, command ์‚ฌ์šฉํ•˜๊ธฐ HTTP ์›น์„œ๋ฒ„๋กœ ๋Œ๋ฆฌ๊ธฐ Kubernates์— init container๋กœ ์‚ฌ์šฉํ•˜๊ธฐ Docker ๊ฐ€์ƒ์ปจํ…Œ์ด๋„ˆ ๋ณผ๋ฅจ์„œ๋ฒ„(์Šคํ† ๋ฆฌ์ง€)๋กœ ์‚ฌ์šฉํ•˜๊ธฐ Busybox์— ๊ด€ํ•˜์—ฌ ๋†€๋ž๊ฒŒ๋„ busybox๋Š” httpd๋ฅผ ๋‚ด์žฅํ•˜๊ณ  ์žˆ๋‹ค. ๋ฌผ๋ก  ๋Œ€๊ทœ๋ชจ ์ฒ˜๋ฆฌ๋Š” ๊ณค๋ž€ํ•˜๋‹ค. ๋‚ด์žฅ๋œ grep๋„ ๊ธฐ๋ณธ ๊ธฐ๋Šฅ๋งŒ ์žˆ๋‹ค. ๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ ๊ฒ€์ƒ‰์„ ์จ์•ผํ•œ๋‹ค๋ฉด ํšจ์œจ์ด ์ข‹์ง€ ์•Š์œผ๋ฏ€๋กœ gnu grep์„ ์–น์–ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. busybox๋Š” glibc, musl ๋“ฑ์„ ์ง€์›ํ•˜๋Š” ๋ฒ„์ „์ด ์žˆ๋‹ค. ์ด๋ฅผ ํ™œ์šฉํ•˜๋ฉด ์—ฌ๋Ÿฌ๊ฐœ์˜ ํ”„๋กœ๊ทธ๋žจ์„ ๋„ฃ์–ด์•ผํ•  ๋•Œ ๊ณต์œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์–ด ํšจ์œจ์ ์ด๋‹ค. alpine ๋ฆฌ๋ˆ…์Šค๊ฐ€ busybox + musl + os env ์ด๋ฏ€๋กœ ์ž์‹ ๋งŒ์˜ ์ด๋ฏธ์ง€๋ฅผ ์ œ์ž‘ํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค. ๊ธฐ๋ณธ์ ์ธ utf-8์ด ์ง€์›๋˜์ง€๋งŒ ์ถœ๋ ฅ์€ ๊ดœ์ฐฎ๊ณ  ์ž…๋ ฅ์€ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค. sh, echo, vi ๋„ ๊ฐ€๋ณ๊ฒŒ ์“ฐ๊ธฐ๋Š” ์ข‹์œผ๋‚˜ utf-8 ํ•œ๊ธ€์ž…๋ ฅ์ด ์•ˆ๋œ๋‹ค. ์ด๋ฅผ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” bash, echo, vi๋ฅผ ์ •์ ์ปดํŒŒ์ผ ๋ฐ”์ด๋„ˆ๋ฆฌ๋กœ ๋Œ€์ฒด ๋˜๋Š” ๋„์ปคํ—ˆ๋ธŒ(DockerHub)์˜ toybox๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค. utf-8 ์ž…์ถœ๋ ฅ์„ ๋ชจ๋‘ ์ง€์›ํ•œ๋‹ค. ์‹ฌ์ง€์–ด ์‚ฌ์ด์ฆˆ๊ฐ€ ๋” ์ž‘๋‹ค. utf-8์˜ ์ž…์ถœ๋ ฅ ํ™˜๊ฒฝ์ด ๋ชจ๋‘ ํ•„์š”ํ•˜๋‹ค๋ฉด toybox๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋” ๋‚ซ๋‹ค. busybox(์•ฝ1.2MB)๋‚˜ toybox(์•ฝ764K)๋Š” ์ •๋ง ๊ฐ€๋ณ๊ฒŒ ์‹คํ–‰ํ•˜๊ณ  ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์ด๋‹ค. ๊ฒฐ๋ก ์ ์œผ๋กœ ์ด๊ฒƒ์— ๋Œ€ํ•œ ํ™œ์šฉ์€ ๊ฐœ๋ฐœํ™˜๊ฒฝ์ด๋‚˜ ํฐ๊ทœ๋ชจ์˜ ์‹คํ–‰ํ™˜๊ฒฝ๋ณด๋‹ค๋Š” ์ž‘๊ณ  ๊ฐ€๋ฒผ์šด ํ™˜๊ฒฝ์—์„œ ํšจ์œจ์ ์ธ ์šด์šฉ์ด ํ•„์š”ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค. ์œˆ๋„์šฐ์ฆˆ์—์„œ ์œ ๋‹‰์Šค ๋ช…๋ น ํ™˜๊ฒฝ ๊ตฌ์„ฑ Busybox64๋Š” ์œˆ๋„์šฐ์ฆˆ ํ™˜๊ฒฝ์—์„œ busybox๋ฅผ ํ†ตํ•ด unix ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ์œ„ํ•œ ์ข‹์€ ๋ฐฉ๋ฒ•์ด๋‹ค. ์œˆ๋„์šฐ์ฆˆ์—์„œ ๊ฐ„๋‹จํžˆ ํŒŒ์ผ ํŽธ์ง‘, ์ด๋™, ํŒŒ์ผ ์กฐ์ž‘ ๋“ฑ ์ต์ˆ™ํ•œ 172๊ฐœ์˜ ๋ช…๋ น์–ด ์‚ฌ์šฉ๊ฐ€๋Šฅ. Shell Script ์ž‘์„ฑ๋„ ๊ฐ€๋Šฅ : sh, bash, vi ๋“ฑ์œผ๋กœ ์—ฌ๋Ÿฌ ์ž‘์—… ์ž๋™ํ™” ์Šคํฌ๋ฆฝํŠธ ์ž‘์„ฑ. ๊ฐ€๋ฒผ์šด ์ž‘์—…๋งŒ ํ•œ๋‹ค๋ฉด cygwin, msys2, git for windows ๋“ฑ์ด ๊ตณ์ด ํ•„์š”์น˜ ์•Š๋‹ค. busybox.exe(32bit), busybox64.exe(64bit), busybox64u.exe (64bit unicode) ์ค‘ ์„ ํƒํ•ด์„œ ์‚ฌ์šฉํ•œ๋‹ค. ์„ค์น˜ ๋‹ค์šด๋กœ๋“œ: https://frippery.org/busybox/ ์‚ฌ์šฉ๋ฒ• ์ ๋‹นํ•œ ์œ„์น˜์— ๋‹ค์šด๋กœ๋“œ ํ•œ ํ›„ PATH์— ์ถ”๊ฐ€ํ•ด ์ค€๋‹ค. command ์ฐฝ ๋˜๋Š” Powershell์„ ์‹คํ–‰ํ•œ๋‹ค. busybox.exe bash -l : bash ์‰˜ ํ™˜๊ฒฝ์œผ๋กœ ํ„ฐ๋ฏธ๋„์ด ์‹คํ–‰๋œ๋‹ค. (sh, ash, bash ์ง€์›) busybox.exe --list : ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” unix ๋ช…๋ น๋“ค ๋ชฉ๋ก (sed, awk, grep, make, wget, vi, ..) busybox.exe --help : ๋„์›€๋ง REFERENCE busybox home: https://frippery.org/busybox/ busybox github: https://github.com/rmyorston/busybox-w32 Using the BusyBox Docker Image for Building Applications : A Complete Guide https://www.sohamkamani.com/docker/busybox-guide/

2025-08-22 ยท 306 words