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) 중 선택해서 사용한다.

설치

사용법

  • 적당한 위치에 다운로드 한 후 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