-
Bocker
- Bocker là một phiên bản đơn giản của Docker được triển khai bằng khoảng 100 dòng bash.
-
Điều kiện tiên quyết
- Các gói cần thiết để chạy Bocker:
- btrfs-progs
- curl
- iproute2
- iptables
- libcgroup-tools
- util-linux >= 2.25.2
- coreutils >= 7.5
- Yêu cầu cấu hình hệ thống:
- mount hệ thống tệp btrfs tại
/var/bocker
- một network bridge tên là
bridge0 và IP 10.0.0.1/24
- bật IP forwarding tại
/proc/sys/net/ipv4/ip_forward
- tường lửa để định tuyến lưu lượng từ
bridge0 tới giao diện vật lý
- Có thể dùng Vagrantfile để thiết lập môi trường cần thiết.
- Bocker chạy với quyền root và thay đổi network interface, bảng định tuyến, quy tắc tường lửa, vì vậy nên chạy trong máy ảo.
-
Ví dụ sử dụng
- Ví dụ về cách dùng Bocker:
- Có thể tải image CentOS 7 bằng lệnh
bocker pull centos 7.
- Có thể kiểm tra danh sách image bằng
bocker images.
- Có thể chạy lệnh trong container bằng
bocker run img_42150 cat /etc/centos-release.
- Có thể kiểm tra các container đang chạy bằng
bocker ps.
- Có thể xem log container bằng
bocker logs ps_42045.
- Có thể xóa container bằng
bocker rm ps_42045.
- Có thể cài gói bằng
bocker run img_42150 yum install -y wget.
- Có thể commit các thay đổi của container bằng
bocker commit ps_42018 img_42150.
- Có thể thiết lập giới hạn CPU và bộ nhớ.
-
Chức năng: Hiện đã triển khai
- Các chức năng hiện đã được triển khai:
- triển khai giới hạn của
docker build
docker pull
docker images
docker ps
docker run
docker exec
docker logs
docker commit
docker rm / docker rmi
- networking
- hỗ trợ quota / CGroups
-
Chức năng: Chưa triển khai
- Các chức năng chưa được triển khai:
- data volume container
- data volume
- port forwarding
-
Giấy phép
- Chương trình này là phần mềm tự do được phân phối theo GNU General Public License.
- Không có bất kỳ bảo đảm nào về tính thương mại hoặc sự phù hợp cho một mục đích cụ thể.
1 bình luận
Ý kiến trên Hacker News
Tôi đã tạo một dự án tên là Bag bằng cách dùng
proot. Đây không phải là một giải pháp thay thế Docker, không liên quan đếncgroups, và CLI cũng khác Docker. Tôi đã phát triển một giải pháp chuỗi proxy để vượt kiểm duyệt Internet và muốn chạy nó trên termux. Khi đó termux chưa có jdk/jre, và tôi có thể dùng jdk bằng cách tạo môi trường archlinux thông quaproot. Môi trường này phù hợp cho nhiều tác vụ khác nhau, và thông qua scriptbag.sh, tôi có thể tự động tạo môi trường và chạy lệnh. Script này có một roadmap đã 5 năm không được cập nhậtTôi thích các script bash tối giản, và 10 năm trước trong một hackathon, tôi từng triển khai một bộ cân bằng tải nội bộ trong cụm chỉ với 40 dòng bash để quảng bá hạ tầng phân tán dùng Docker, Mesos, v.v. Tôi cũng đã phát triển một công cụ chuyển từ colo sang cloud, nhưng giờ đã bị thất lạc. Có thể tìm thấy các bộ sưu tập script hữu ích ở những nơi như Shell Fu
Tôi thích khi trong kho mã có những thông báo như "chưa được triển khai", "việc cần làm", "đang làm", và commit cuối cùng là từ vài năm trước. Điều đó mang lại cảm giác nhẹ nhõm rằng tôi không cần quay lại xem danh sách việc cần làm mà chính mình đã bỏ sót trong code
Tôi ngạc nhiên vì lazydocker không được nhắc đến như một lựa chọn thay thế tuyệt vời cho Docker Desktop. Đây là một terminal UI khá đầy đủ tính năng chạy qua
sshBastilleBSD là một công cụ quản lý jails trên BSD, sử dụng nhiều cấu trúc có thể thấy trong Docker. Tôi thích nó hơn các phần mềm quản lý jail khác trên BSD vì có ít phụ thuộc hơn
Bỏ qua tính thực dụng, vẫn có rất nhiều điều để học từ cách triển khai này
Liên kết trang chủ GitHub đang bị lỗi, nên cần bỏ "www."
Việc có thể tái triển khai Docker một cách đơn giản chính là vấn đề lớn nhất mà công ty Docker phải đối mặt. Giá trị thực sự của Docker không chỉ nằm ở Docker Hub mà còn ở trải nghiệm tích hợp mà Docker trên Windows và Mac mang lại. Trải nghiệm này vượt trội hơn nhiều so với việc tự cấu hình VirtualBox và Vagrant thủ công
Thắc mắc về việc Docker đã khởi đầu như thế nào
Thắc mắc vì sao Docker vẫn chưa được đưa vào kho lưu trữ ubuntu/debian. Đây hẳn sẽ là một nguồn lợi nhuận ròng dễ dàng