-
Bocker
- Bocker ist eine einfache Version von Docker, die in rund 100 Zeilen Bash implementiert wurde.
-
Voraussetzungen
- Für die Ausführung von Bocker benötigte Pakete:
- btrfs-progs
- curl
- iproute2
- iptables
- libcgroup-tools
- util-linux >= 2.25.2
- coreutils >= 7.5
- Anforderungen an die Systemkonfiguration:
- btrfs-Dateisystem unter
/var/bocker eingehängt
- Netzwerk-Bridge namens
bridge0 mit der IP 10.0.0.1/24
- aktiviertes IP-Forwarding in
/proc/sys/net/ipv4/ip_forward
- Firewall für das Routing des Datenverkehrs von
bridge0 zur physischen Schnittstelle
- Mit der Vagrantfile kann die benötigte Umgebung eingerichtet werden.
- Bocker wird mit Root-Rechten ausgeführt und verändert Netzwerkschnittstellen, Routing-Tabellen und Firewall-Regeln; daher empfiehlt sich die Ausführung in einer virtuellen Maschine.
-
Beispielverwendung
- Beispiele für die Verwendung von Bocker:
- Mit dem Befehl
bocker pull centos 7 wird ein CentOS-7-Image geladen.
- Mit
bocker images kann die Image-Liste angezeigt werden.
- Mit
bocker run img_42150 cat /etc/centos-release kann ein Befehl im Container ausgeführt werden.
- Mit
bocker ps können laufende Container angezeigt werden.
- Mit
bocker logs ps_42045 können Container-Logs angezeigt werden.
- Mit
bocker rm ps_42045 kann ein Container gelöscht werden.
- Mit
bocker run img_42150 yum install -y wget können Pakete installiert werden.
- Mit
bocker commit ps_42018 img_42150 können Änderungen im Container committet werden.
- CPU- und Speicherlimits können gesetzt werden.
-
Funktionalität: Derzeit implementiert
- Aktuell implementierte Funktionen:
- eingeschränkte Implementierung von
docker build
docker pull
docker images
docker ps
docker run
docker exec
docker logs
docker commit
docker rm / docker rmi
- Networking
- Quota-Unterstützung / CGroups
-
Funktionalität: Noch nicht implementiert
- Noch nicht implementierte Funktionen:
- Data-Volume-Container
- Data Volumes
- Port-Forwarding
-
Lizenz
- Dieses Programm ist freie Software und wird unter der GNU General Public License verbreitet.
- Es gibt keine Gewährleistung hinsichtlich der kommerziellen Verwendbarkeit oder der Eignung für einen bestimmten Zweck.
1 Kommentare
Hacker-News-Kommentare
Ich habe mit
prootein Projekt namens Bag gebaut. Es ist keine Docker-Alternative, hat nichts mitcgroupszu tun, und die CLI unterscheidet sich ebenfalls von Docker. Ich entwickelte eine Proxy-Chain-Lösung, um Internetzensur zu umgehen, und wollte sie intermuxausführen. Damals gab es intermuxkeinjdk/jre, daher konnte ich überprooteinearchlinux-Umgebung erzeugen und sojdknutzen. Diese Umgebung eignete sich für verschiedenste Aufgaben, und über ein Skript namensbag.shließ sich die automatisierte Erstellung von Umgebungen sowie das Ausführen von Befehlen ermöglichen. Dieses Skript hat eine Roadmap, die seit fünf Jahren nicht aktualisiert wurde.Ich mag minimale Bash-Skripte. Vor zehn Jahren habe ich bei einem Hackathon einmal einen Intra-Cluster-Load-Balancer in 40 Zeilen Bash implementiert, um eine verteilte Infrastruktur mit Docker, Mesos usw. zu demonstrieren. Ich habe außerdem ein Colo-to-Cloud-Transfer-Tool entwickelt, das inzwischen leider verloren gegangen ist. Nützliche Skriptsammlungen findet man etwa bei Shell Fu.
Ich mag es, wenn ein Repository Meldungen wie „noch nicht implementiert“, „To-do“ oder „in Arbeit“ enthält und der letzte Commit schon Jahre zurückliegt. Das gibt mir die beruhigende Gewissheit, dass ich die Liste offener Aufgaben, die ich in meinem eigenen Code übersehen habe, nicht noch einmal durchgehen muss.
Ich bin überrascht, dass
lazydockernicht als hervorragende Alternative zu Docker Desktop erwähnt wurde. Es ist ein ziemlich vollständiges Terminal-UI, das übersshläuft.BastilleBSD ist ein Werkzeug zur Verwaltung von Jails auf BSD und verwendet viele der Strukturen, die man auch in Docker findet. Ich bevorzuge es gegenüber anderer Jail-Verwaltungssoftware für BSD, weil es weniger Abhängigkeiten hat.
Unabhängig vom praktischen Nutzen kann man aus der Implementierung viel lernen.
Der Link zur GitHub-Homepage ist kaputt; man muss
www.entfernen.Dass sich Docker relativ einfach nachimplementieren lässt, ist vermutlich das größte Problem, mit dem die Firma Docker konfrontiert ist. Der eigentliche Wert von Docker liegt nicht nur in Docker Hub, sondern auch in der integrierten Erfahrung, die Docker für Windows und Mac bietet. Das ist eine deutlich bessere Erfahrung, als VirtualBox und Vagrant manuell einzurichten.
Ich frage mich, wie Docker ursprünglich angefangen hat.
Ich frage mich, warum Docker noch immer nicht in den Ubuntu-/Debian-Repositories enthalten ist. Das wäre ein leicht verdientes Nettoeinkommen.