Petit conteneur Docker

Un mémo d'un petit conteneur d'image Docker

Contenu du scratch

J'ai essayé ce qui suit pour m'assurer que le contenu de scratch était complètement vide.

$ 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

Faire un petit récipient avec une boule de goudron

Puisqu'il s'agit d'un conteneur, cela fonctionnera si vous importez l'environnement chroot dans tar.

$ 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

A bien fonctionné

Recommended Posts

Petit conteneur Docker
Scène d'utilisation du conteneur Docker
Procédure de minimisation des conteneurs Docker d'Athrill
docker
Introduction à Linux Container / Docker (Partie 1)
Introduction à Linux Container / Docker (Partie 2)
Exécuter PureScript sur un conteneur Docker
[Linux] Démarrer le conteneur Apache avec Docker
À propos de Docker, faux serveur et conteneur
mémo docker
Docker push vers GitHub Container Registry (ghcr.io)
printemps × docker
À propos de Docker
Lancer un conteneur docker sur EC2 (mémorandum personnel)
Exécutez NordVPN dans le conteneur Ubuntu Docker (Windows)
Docker Intellij
L'histoire de la mise à jour du Docker Container de Sonar Qube
Principes de base de Docker
Le conteneur MySQL ne démarre pas dans Docker
[Docker] Copie des fichiers du conteneur Docker vers l'hôte
[Docker] Démarrez le conteneur dès que possible
[Docker] Démarrez le conteneur, démarrez bash à l'intérieur du conteneur, supprimez l'image
La construction du conteneur Docker ne parvient pas à installer php-radis
Introduction au développement pratique de conteneurs Docker / Kubernetes
Comprendre Docker
Mémorandum Docker
Paramètres japonais pour mysql dans le conteneur Docker
Comment vérifier le journal dans le conteneur Docker
Comment obtenir un heapdump à partir d'un conteneur Docker
Garder un conteneur Docker en cours d'exécution sans aucun processus résident en cours d'exécution
Créer une application Kotlin à l'aide du conteneur OpenJDK Docker
Paramètre pour quitter le conteneur Docker avec VScode
Copier les fichiers du conteneur Docker vers l'hôte (docker cp)
J'ai créé un conteneur Docker pour exécuter Maven
Comment mettre à jour un fichier prédéfini dans un conteneur Docker
Créer un conteneur pour Docker x Laravel phpMyAdmin
Mettre à jour l'image du conteneur avec KUSANAGI s'exécute sur Docker
Opérations de conteneur Docker avec l'API Docker-Client pour Java
Modifier le dossier de placement de l'image et du conteneur Docker
Essayez d'utiliser un autre conteneur de servlet Jetty avec Docker
L'extraction du conteneur Docker a une limite de débit appliquée