6 Punkte von GN⁺ 2024-11-24 | 1 Kommentare | Auf WhatsApp teilen
  • 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

 
GN⁺ 2024-11-24
Hacker-News-Kommentare
  • Ich habe mit proot ein Projekt namens Bag gebaut. Es ist keine Docker-Alternative, hat nichts mit cgroups zu tun, und die CLI unterscheidet sich ebenfalls von Docker. Ich entwickelte eine Proxy-Chain-Lösung, um Internetzensur zu umgehen, und wollte sie in termux ausführen. Damals gab es in termux kein jdk/jre, daher konnte ich über proot eine archlinux-Umgebung erzeugen und so jdk nutzen. Diese Umgebung eignete sich für verschiedenste Aufgaben, und über ein Skript namens bag.sh ließ 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 lazydocker nicht als hervorragende Alternative zu Docker Desktop erwähnt wurde. Es ist ein ziemlich vollständiges Terminal-UI, das über ssh lä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.