6P by neo 7일전 | favorite | 댓글 1개
  • Bocker

    • Bocker는 약 100줄의 bash로 구현된 Docker의 간단한 버전임.
  • Prerequisites

    • Bocker를 실행하기 위해 필요한 패키지:
      • btrfs-progs
      • curl
      • iproute2
      • iptables
      • libcgroup-tools
      • util-linux >= 2.25.2
      • coreutils >= 7.5
    • 시스템 설정 요구 사항:
      • /var/bocker에 btrfs 파일 시스템 마운트
      • bridge0라는 네트워크 브리지와 10.0.0.1/24 IP
      • /proc/sys/net/ipv4/ip_forward에서 IP 포워딩 활성화
      • bridge0에서 물리적 인터페이스로의 트래픽 라우팅을 위한 방화벽
    • Vagrantfile을 사용하여 필요한 환경을 구축할 수 있음.
    • Bocker는 루트 권한으로 실행되며 네트워크 인터페이스, 라우팅 테이블, 방화벽 규칙을 변경하므로 가상 머신에서 실행하는 것이 좋음.
  • Example Usage

    • Bocker의 사용 예시:
      • bocker pull centos 7 명령어로 CentOS 7 이미지를 가져옴.
      • bocker images로 이미지 목록 확인 가능.
      • bocker run img_42150 cat /etc/centos-release로 컨테이너에서 명령어 실행 가능.
      • bocker ps로 실행 중인 컨테이너 확인 가능.
      • bocker logs ps_42045로 컨테이너 로그 확인 가능.
      • bocker rm ps_42045로 컨테이너 삭제 가능.
      • bocker run img_42150 yum install -y wget로 패키지 설치 가능.
      • bocker commit ps_42018 img_42150로 컨테이너 변경 사항 커밋 가능.
      • CPU 및 메모리 제한 설정 가능.
  • Functionality: Currently Implemented

    • 현재 구현된 기능:
      • docker build의 제한적 구현
      • docker pull
      • docker images
      • docker ps
      • docker run
      • docker exec
      • docker logs
      • docker commit
      • docker rm / docker rmi
      • 네트워킹
      • 쿼터 지원 / CGroups
  • Functionality: Not Yet Implemented

    • 아직 구현되지 않은 기능:
      • 데이터 볼륨 컨테이너
      • 데이터 볼륨
      • 포트 포워딩
  • License

    • 이 프로그램은 GNU General Public License에 따라 배포되는 자유 소프트웨어임.
    • 상업성이나 특정 목적에 대한 적합성에 대한 보증은 없음.
Hacker News 의견
  • proot를 사용하여 Bag이라는 프로젝트를 만들었음. 이는 Docker 대안이 아니며 cgroups와 관련이 없고, CLI도 Docker와 다름. 인터넷 검열을 우회하기 위해 프록시 체인 솔루션을 개발했으며, 이를 termux에서 실행하고자 했음. 당시 termux에는 jdk/jre가 없었고, proot를 통해 archlinux 환경을 생성하여 jdk를 사용할 수 있었음. 이 환경은 다양한 작업에 적합했으며, bag.sh라는 스크립트를 통해 자동화된 환경 생성 및 명령 실행을 가능하게 했음. 이 스크립트는 5년 동안 업데이트되지 않은 로드맵을 가지고 있음

  • 최소한의 bash 스크립트를 좋아하며, 10년 전 해커톤에서 Docker, Mesos 등을 사용한 분산 인프라를 홍보하기 위해 40줄의 bash로 intra-cluster 로드 밸런서를 구현한 적이 있음. 또한, colo-to-cloud 전송 도구를 개발했으나 현재는 잃어버린 상태임. Shell Fu 등에서 유용한 스크립트 모음을 찾을 수 있음

  • 저장소에 "아직 구현되지 않음", "할 일", "작업 중"이라는 메시지가 있고 마지막 커밋이 몇 년 전인 경우가 좋음. 이는 본인이 코드에서 놓친 할 일 목록을 다시 돌아보지 않아도 된다는 안도감을 줌

  • lazydocker가 Docker Desktop의 훌륭한 대안으로 언급되지 않은 것이 놀라움. 이는 ssh를 통해 실행되는 꽤 완전한 기능의 터미널 UI임

  • BastilleBSD는 BSD에서 jails를 관리하는 도구로, Docker에서 찾을 수 있는 많은 구조를 사용함. BSD의 다른 jail 관리 소프트웨어보다 의존성이 적어 선호함

  • 실용성을 떠나 구현에서 배울 점이 많음

  • GitHub 홈페이지 링크가 깨져 있으니 "www."를 제거해야 함

  • Docker의 간단한 재구현이 가능하다는 점이 Docker 회사가 직면한 가장 큰 문제임. Docker의 진정한 가치는 Docker Hub뿐만 아니라 Windows와 Mac용 Docker에서 제공하는 통합 경험에 있음. 이는 VirtualBox와 Vagrant를 수동으로 설정하는 것보다 훨씬 우수한 경험을 제공함

  • Docker가 어떻게 시작되었는지에 대한 의문

  • Docker가 아직 ubuntu/debian 저장소에 포함되지 않은 이유에 대한 의문. 이는 쉬운 순이익이 될 것임