recherche
MaisonOpération et maintenanceDockerQuelle est la différence entre docker:latest et docker:dind

Quelle est la différence entre docker:latest et docker:dind

Contexte :

Lors de l'écriture de CI, l'image est déclarée comme environnement d'exécution du travail, et chaque travail est exécuté dans un conteneur pur.

Parfois, nous avons besoin d'un environnement de conteneur Docker pour effectuer Docker build, Docker push et d'autres opérations. En regardant l'image officielle du docker, nous constatons qu'il existe deux versions principales : docker:latest, docker:dind et docker:git.

(Tutoriel recommandé : tutoriel docker)

docker:dind

Cette image contient le client Docker (outil de ligne de commande) et le démon Docker.

Grâce à la commande docker history docker:dind, nous avons constaté que docker:dind a installé le démon Docker sur la base de docker:latest, et les deux dernières commandes de construction sont :

IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
66dc2d45749a        8 weeks ago         /bin/sh -c #(nop)  CMD []                       0B                  
<missing>           8 weeks ago         /bin/sh -c #(nop)  ENTRYPOINT ["dockerd-entr…   0B                  
...

Exécuter l'image Lorsque, le paramètre sh CMD ne peut pas être spécifié. La commande dockerd-entrypoint.sh ne démarrera pas le démon Docker lors de la réception de ce paramètre. Pour démarrer correctement le démon Docker dans le conteneur et entrer dans le conteneur, vous devez procéder étape par étape :

$ docker run -d --name dind --privileged docker:dind # 启动容器
$ docker logs -f dind # 查看启动日志
$ docker exec -it dind sh # 进入容器

Lors du démarrage du conteneur docker:dind, il faut ajouter le paramètre --privileged, sinon le démon Docker signalera une erreur au démarrage.

docker:latest

Cette image contient uniquement le client Docker et nécessite la prise en charge du démon Docker. Vous pouvez utiliser docker:dind ou monter le /var/run/docker de l'hôte.

Cette image ne nécessite pas le paramètre --privileged pour démarrer.

On découvre grâce à la commande docker history docker:latest que la valeur par défaut du CMD est sh :

81f5749c9058        3 months ago        /bin/sh -c #(nop)  CMD ["sh"]                   0B                  
<missing>           3 months ago        /bin/sh -c #(nop)  ENTRYPOINT ["docker-entry…   0B                  
...

Méthode de démarrage 1 : monter le fichier sock hôte

$ docker run -it --rm -v /var/run/docker.sock:/var/run/docker.sock docker:latest

Méthode de démarrage deux : coopérer avec docker: dind

Mettez docker:dind et docker:latest dans le même réseau et spécifiez l'alias du conteneur dind dans le réseau comme docker, car l'hôte démon par défaut dans le dernier conteneur est appelé docker.

De plus, vous devez faire attention au problème du certificat. La nouvelle version du client Docker nécessite un certificat TLS pour communiquer avec le démon Docker afin d'assurer la sécurité des communications. Le conteneur docker:dind générera le certificat. le répertoire spécifié par la variable d'environnement DOCKER_TLS_CERTDIR. Le certificat doit être monté et fourni pour être utilisé par les conteneurs docker:latest.

$ docker run --privileged --name some-docker -d \
    --network some-network --network-alias docker \
    -e DOCKER_TLS_CERTDIR=/certs \
    -v some-docker-certs-ca:/certs/ca \
    -v some-docker-certs-client:/certs/client \
    docker:dind
$ docker run --rm --network some-network \
    -e DOCKER_TLS_CERTDIR=/certs \
    -v some-docker-certs-client:/certs/client:ro \
    docker:latest

docker:git

docker:git est docker:latest qui contient la commande git, ce qui est pratique pour utiliser Git dans CI.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer
Linux et Docker: Docker sur différentes distributions LinuxLinux et Docker: Docker sur différentes distributions LinuxApr 19, 2025 am 12:10 AM

Les méthodes d'installation et d'utilisation de Docker sur Ubuntu, Centos et Debian sont différentes. 1) Ubuntu: Utilisez le gestionnaire de package APT, la commande est sudoapt-getUpdate && sudoapt-getinstalldocker.io. 2) CENTOS: Utilisez le gestionnaire de packages YUM et vous devez ajouter le référentiel Docker. La commande est sudoyumininstall-yyum-utils && sudoyum-config-manager - add-repohttps: //download.docker.com/lin

Mastering Docker: un guide pour les utilisateurs de LinuxMastering Docker: un guide pour les utilisateurs de LinuxApr 18, 2025 am 12:08 AM

L'utilisation de Docker sur Linux peut améliorer l'efficacité du développement et simplifier le déploiement des applications. 1) Tirez Ubuntu Image: Dockerpullubuntu. 2) Exécutez un conteneur Ubuntu: Dockerrun-itubuntu / bin / bash. 3) Créez dockerfile contenant nginx: fromUbuntu; runapt-getUpdate && apt-getInstall-yginx; expose80. 4) Construisez l'image: dockerbuild-tmy-nginx. 5) Run Container: Dockerrun-D-P8080: 80

Docker sur Linux: applications et cas d'utilisationDocker sur Linux: applications et cas d'utilisationApr 17, 2025 am 12:10 AM

Docker simplifie le déploiement et la gestion des applications sur Linux. 1) Docker est une plate-forme conteneurisée qui emballe les applications et leurs dépendances dans des conteneurs légers et portables. 2) Sur Linux, Docker utilise des groupes et des espaces de noms pour implémenter l'isolement des conteneurs et la gestion des ressources. 3) Les usages de base incluent le tirage d'images et les conteneurs en cours d'exécution. Les usages avancés tels que DockerCompose peuvent définir des applications multi-container. 4) Débogage des commandes Dockerlogs et DockErexec couramment utilisées. 5) L'optimisation des performances peut réduire la taille de l'image grâce à la construction en plusieurs étapes, et garder le Dockerfile simple est la meilleure pratique.

Docker: applications de conteneurisation pour la portabilité et l'évolutivitéDocker: applications de conteneurisation pour la portabilité et l'évolutivitéApr 16, 2025 am 12:09 AM

Docker est un outil basé sur la technologie Linux Container utilisé pour emballer, distribuer et exécuter des applications pour améliorer la portabilité et l'évolutivité des applications. 1) Les commandes DockerBuild et Dockerrun peuvent être utilisées pour construire et exécuter des conteneurs Docker. 2) DockerCompose est utilisé pour définir et exécuter des applications Docker multi-container pour simplifier la gestion des microservices. 3) L'utilisation de la construction en plusieurs étapes peut optimiser la taille de l'image et améliorer la vitesse de démarrage de l'application. 4) La visualisation des journaux des conteneurs est un moyen efficace de déboguer les problèmes de conteneurs.

Comment démarrer un conteneur par DockerComment démarrer un conteneur par DockerApr 15, 2025 pm 12:27 PM

Étapes de démarrage du conteneur Docker: Tirez l'image du conteneur: Exécutez "Docker Pull [Mirror Name]". Créer un conteneur: utilisez "Docker Create [Options] [Mirror Name] [Commandes et paramètres]". Démarrez le conteneur: exécutez "docker start [nom de conteneur ou id]". Vérifiez l'état du conteneur: vérifiez que le conteneur s'exécute avec "Docker PS".

Comment afficher les journaux de DockerComment afficher les journaux de DockerApr 15, 2025 pm 12:24 PM

Les méthodes pour afficher les journaux Docker incluent: à l'aide de la commande docker logs, par exemple: docker logs contener_name Utilisez la commande docker exec pour exécuter / bin / sh et afficher le fichier journal, par exemple: docker exec -it contener_name / bin / sh; Cat /var/log/continer_name.log Utilisez la commande docker-compose JORS de Docker Compose, par exemple: docker-compose -f docker-com

Comment vérifier le nom du conteneur DockerComment vérifier le nom du conteneur DockerApr 15, 2025 pm 12:21 PM

Vous pouvez interroger le nom du conteneur Docker en suivant les étapes: répertorier tous les conteneurs (Docker PS). Filtrez la liste des conteneurs (à l'aide de la commande grep). Obtient le nom du conteneur (situé dans la colonne "Noms").

Comment créer des conteneurs pour DockerComment créer des conteneurs pour DockerApr 15, 2025 pm 12:18 PM

Créer un conteneur dans Docker: 1. Tirez l'image: docker pull [Nom du miroir] 2. Créer un conteneur: docker run [Options] [Nom du miroir] [Commande] 3. Démarrez le conteneur: docker start [Nom du conteneur]

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

Listes Sec

Listes Sec

SecLists est le compagnon ultime du testeur de sécurité. Il s'agit d'une collection de différents types de listes fréquemment utilisées lors des évaluations de sécurité, le tout en un seul endroit. SecLists contribue à rendre les tests de sécurité plus efficaces et productifs en fournissant facilement toutes les listes dont un testeur de sécurité pourrait avoir besoin. Les types de listes incluent les noms d'utilisateur, les mots de passe, les URL, les charges utiles floues, les modèles de données sensibles, les shells Web, etc. Le testeur peut simplement extraire ce référentiel sur une nouvelle machine de test et il aura accès à tous les types de listes dont il a besoin.

PhpStorm version Mac

PhpStorm version Mac

Le dernier (2018.2.1) outil de développement intégré PHP professionnel

Télécharger la version Mac de l'éditeur Atom

Télécharger la version Mac de l'éditeur Atom

L'éditeur open source le plus populaire

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Puissant environnement de développement intégré PHP