Kleiner Docker Container

Ein Memo eines kleinen Docker-Bildcontainers

Inhalt des Kratzers

Ich habe Folgendes versucht, um sicherzustellen, dass der Inhalt des Kratzers vollständig leer ist.

$ uname -sm
Darwin x86_64
$ GOOS=linux GOARCH=arm64 go build -o hello hello.go
$ cat > Dockerfile
FROM scratch

COPY hello /hello
ENTRYPOINT ["/hello"]
^D
$ docker image build -t test/hello .

$ docker image ls
REPOSITORY TAG    IMAGE ID     CREATED     SIZE
test/hello latest b5590fa74374 2 hours ago 2.04MB

$ docker run test/hello
Hello, World

$ docker image save -o out.tar test/hello
$ ls -lhn out.tar
-rw-------  1 501  20   2.0M  9 10 18:12 out.tar

$ tar xvf out.tar 
x 53d2a1a74edd0b6d3863682083df76fa417ebe730feecd84a55309fe407f7b0d/
x 53d2a1a74edd0b6d3863682083df76fa417ebe730feecd84a55309fe407f7b0d/VERSION
x 53d2a1a74edd0b6d3863682083df76fa417ebe730feecd84a55309fe407f7b0d/json
x 53d2a1a74edd0b6d3863682083df76fa417ebe730feecd84a55309fe407f7b0d/layer.tar
x b5590fa74374835c813ed2c8490b2997581d3b815d306be739a2be67f6664792.json
x manifest.json
x repositories

$ tar tvf 53d2a1a74edd0b6d3863682083df76fa417ebe730feecd84a55309fe407f7b0d/layer.tar
-rwxr-xr-x  0 0      0     2038890  9 10 16:28 hello

Machen Sie einen kleinen Behälter aus Teerball

Da es sich um einen Container handelt, funktioniert er, wenn Sie die Chroot-Umgebung in Teer importieren.

$ mkdir chroot
$ GOOS=linux GOARCH=arm64 go build -o chroot/hello hello.go
$ ls -lRhn chroot
total 4104
-rwxr-xr-x  1 501  20   2.0M  9 10 18:21 hello

$ (cd chroot; tar cf ../image.tar .)
$ ls -lhn image.tar 
-rw-r--r--  1 501  20   2.0M  9 10 18:24 image.tar

$ docker image import image.tar test/import

$ docker image ls test/import
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
test/import         latest              bb6be6e60bb1        19 seconds ago      2.1MB

$ docker run test/import /hello
Hello, World

Gut gearbeitet

Recommended Posts

Kleiner Docker Container
Docker-Container-Nutzungsszene
Athrills Docker-Container-Minimierungsverfahren
Docker
Einführung in Linux Container / Docker (Teil 1)
Einführung in Linux Container / Docker (Teil 2)
Führen Sie PureScript auf einem Docker-Container aus
[Linux] Starten Sie den Apache-Container mit Docker
Über Docker, gefälschten Server und Container
Docker-Memo
Docker Push zur GitHub Container Registry (ghcr.io)
Frühling × Docker
Über Docker
Starten Sie einen Docker-Container auf EC2 (persönliches Memorandum)
Führen Sie NordVPN im Docker (Windows) Ubuntu-Container aus
Docker Intellij
Die Geschichte der Aktualisierung des Docker-Containers von Sonar Qube
Docker-Grundlagen
Der MySQL-Container startet nicht in Docker
[Docker] Kopieren Sie Dateien aus dem Docker-Container auf den Host
[Docker] Starten Sie den Container so schnell wie möglich
[Docker] Starten Sie den Container, starten Sie die Bash im Container und löschen Sie das Bild
Docker Container Build kann PHP-Radis nicht installieren
Einführung in die praktische Containerentwicklung von Docker / Kubernetes
Docker verstehen
Docker Memorandum
Japanische Einstellungen für MySQL im Docker-Container
So überprüfen Sie das Protokoll im Docker-Container
So erhalten Sie einen Heapdump aus einem Docker-Container
Lassen Sie einen Docker-Container laufen, ohne dass residente Prozesse ausgeführt werden
Erstellen Sie eine Kotlin-App mit dem OpenJDK Docker-Container
Einstellung zum Verlassen des Docker-Containers mit VScode
Kopieren Sie Dateien vom Docker-Container auf den Host (Docker-CP).
Ich habe einen Docker-Container erstellt, um Maven auszuführen
So aktualisieren Sie eine vorgefertigte Datei in einem Docker-Container
Erstellen Sie einen Container für Docker x Laravel phpMyAdmin
Aktualisieren Sie das Container-Image mit KUSANAGI Runs on Docker
Docker Container Operations mit Docker-Client API für Java
Ändern Sie den Docker-Image- und Container-Platzierungsordner
Versuchen Sie, einen anderen Servlet-Container-Steg mit Docker zu verwenden
Für Docker Container Pull ist ein Ratenlimit festgelegt