


Comment résoudre le problème selon lequel la machine Docker ne peut pas démarrer
Solutions en cas d'échec de démarrage de Docker-machine : 1. Utilisez "docker-machine ls" pour vérifier l'état de l'hôte ; 2. Désinstallez le docker existant et réinstallez-le ; 3. Démarrez Docker et vérifiez l'état du service Docker.
L'environnement d'exploitation de cet article : système centos7, Docker version 19.03.9, ordinateur Dell G3.
Comment résoudre le problème selon lequel la machine Docker ne peut pas démarrer ?
Centos7 docker-machine déploie l'hôte docker. Le service docker ne démarre pas
Contexte :
Il est prévu d'utiliser Centos7 Core comme hôte docker pour créer une plate-forme de test. la solution Swarm est utilisée.
Environnement :
Nom d'hôte | Système | Adresse IP | Pré-travail |
docker-host1 | CentOS7 Core | xxx.xxx.xxx. 80 |
Mise à jour miam Source, utilisez Aliyun Mirror, mettez à jour vers le dernier statut Configurez l'utilisateur utilisé par docker-machine, sudo password-free |
docker-host2 | CentOS7 Core | xxx.xxx.xxx.81 |
Mettez à jour la source Yum, utilisez le miroir Aliyun, mettez à jour vers le dernier statut Configurez l'utilisateur utilisé par Docker-machine, sudo sans mot de passe |
docker-host3 | CentOS7 Core | xxx.xxx.xxx.82 |
Mettre à jour la source yum, utiliser l'image aliyun, mettre à jour vers le dernier statut Configurer l'utilisateur utilisé par docker-machine, sudo sans mot de passe |
docker-host4 | CentOS7 Core | xxx.xxx.xxx. 83 |
Mettre à jour la source yum, utiliser l'image aliyun, mise à jour avec le dernier statut Configurer l'utilisateur utilisé par docker-machine, sudo password-free |
desktop | ubuntu-18.04lts | Configurer le mot de passe -connexion gratuite à docker-host |
Installation :
Installez docker-machine sur l'hôte du bureau de travail (Ubuntu), vous pouvez vous référer à https://docs.docker.com/machine/install-machine /
Première installation de docker-host1 :
docker-machine --debug create --driver generic --generic-ip-address=xxx.xxx.xxx.80 --generic-ssh-key=/home/sleeber /.ssh/id_rsa --generic-ssh-port=22 --generic-ssh-user=wntime docker-host1
Le résultat final de l'installation montre que le service docker ne peut pas être démarré :
sudo systemctl -f start docker SSH cmd err, output: exit status 1: Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details. Error creating machine: Error running provisioning: something went wrong running an SSH command command : sudo systemctl -f start docker err : exit status 1 output : Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details. notifying bugsnag: [Error creating machine: Error running provisioning: something went wrong running an SSH command command : sudo systemctl -f start docker err : exit status 1 output : Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details. ]
Utilisez docker- machine ls pour afficher l'état de l'hôte :
:~/docker-test-env$ docker-machine ls NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS docker-host1 - generic Running tcp://xxx.xxx.xxx.80:2376 Unknown Unable to query docker version: Cannot connect to the docker engine endpoint
SSH sur l'hôte docker-host1 et démarrer docker manuellement Service
sudo systemctl start docker Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.
Suivez les invites pour vérifier l'état
systemctl status docker.service ● docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled) Drop-In: /etc/systemd/system/docker.service.d └─10-machine.conf Active: failed (Result: start-limit) since Thu 2020-05-28 20:41:39 EDT; 581ms ago Docs: https://docs.docker.com Process: 30463 ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock --storage-driver overlay2 --tlsverify --tlscacert /etc/docker/ca.pem --tlscert /etc/docker/server.pem --tlskey /etc/docker/server-key.pem --label provider=generic (code=exited, status=1/FAILURE) Main PID: 30463 (code=exited, status=1/FAILURE)
谷歌一下: https://github.com/moby/moby/issues/33931 https://www.jianshu.com/p/bd395fdf7611 https://www.jianshu.com/p/93518610eea1
Selon les résultats de la recherche, cela devrait être dû à 10 machines .conf ; mais après avoir supprimé le fichier 10-machine.conf et le dossier, il ne peut toujours pas être démarré
$ sudo rm /etc/systemd/system/docker.service.d/10-machine.conf $ sudo systemctl start docker Failed to start docker.service: Unit is not loaded properly: Invalid argument. See system logs and 'systemctl status docker.service' for details. $ sudo rm -rf /etc/systemd/system/docker.service.d/ $ sudo systemctl start docker Failed to start docker.service: Unit is not loaded properly: Invalid argument. See system logs and 'systemctl status docker.service' for details.
L'utilisation de dockerd peut le démarrer directement
$ sudo nohup dockerd & [1] 31419 $ nohup: ignoring input and appending output to ‘nohup.out’ $ ll total 4 -rw-------. 1 root root 2638 May 28 20:52 nohup.out $ tail -f nohup.out tail: cannot open ‘nohup.out’ for reading: Permission denied tail: no files remaining $ sudo tail -f nohup.out time="2020-05-28T20:52:56.409646032-04:00" level=warning msg="Base device already exists and has filesystem xfs on it. User specified filesystem will be ignored." storage-driver=devicemapper time="2020-05-28T20:52:56.430282474-04:00" level=info msg="[graphdriver] using prior storage driver: devicemapper" time="2020-05-28T20:52:56.430326847-04:00" level=warning msg="[graphdriver] WARNING: the devicemapper storage-driver is deprecated, and will be removed in a future release" time="2020-05-28T20:52:56.433336530-04:00" level=warning msg="mountpoint for pids not found" time="2020-05-28T20:52:56.433595847-04:00" level=info msg="Loading containers: start." time="2020-05-28T20:52:56.529329426-04:00" level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemon option --bip can be used to set a preferred IP address" time="2020-05-28T20:52:56.558933143-04:00" level=info msg="Loading containers: done." time="2020-05-28T20:52:56.570819898-04:00" level=info msg="Docker daemon" commit=9d988398e7 graphdriver(s)=devicemapper version=19.03.9 time="2020-05-28T20:52:56.570873940-04:00" level=info msg="Daemon has completed initialization" time="2020-05-28T20:52:56.585131361-04:00" level=info msg="API listen on /var/run/docker.sock" ^C $ sudo docker version Client: Docker Engine - Community Version: 19.03.9 API version: 1.40 Go version: go1.13.10 Git commit: 9d988398e7 Built: Fri May 15 00:25:27 2020 OS/Arch: linux/amd64 Experimental: false Server: Docker Engine - Community Engine: Version: 19.03.9 API version: 1.40 (minimum version 1.12) Go version: go1.13.10 Git commit: 9d988398e7 Built: Fri May 15 00:24:05 2020 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.2.13 GitCommit: 7ad184331fa3e55e52b890ea95e65ba581ae3429 runc: Version: 1.0.0-rc10 GitCommit: dc9208a3303feef5b3839f4323d9beb36df0a9dd docker-init: Version: 0.18.0 GitCommit: fec3683
L'utilisation de systemctl pour vérifier l'état du service docker affiche toujours un échec
$ sudo systemctl status docker ● docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled) Drop-In: /etc/systemd/system/docker.service.d └─10-machine.conf Active: failed (Result: start-limit) since Thu 2020-05-28 20:49:52 EDT; 4min 59s ago Docs: https://docs.docker.com Process: 31051 ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock --storage-driver overlay2 --tlsverify --tlscacert /etc/docker/ca.pem --tlscert /etc/docker/server.pem --tlskey /etc/docker/server-key.pem --label provider=generic (code=exited, status=1/FAILURE) Main PID: 31051 (code=exited, status=1/FAILURE) May 28 20:49:50 test-java2 systemd[1]: docker.service failed. May 28 20:49:52 test-java2 systemd[1]: docker.service holdoff time over, scheduling restart. May 28 20:49:52 test-java2 systemd[1]: Stopped Docker Application Container Engine. May 28 20:49:52 test-java2 systemd[1]: start request repeated too quickly for docker.service May 28 20:49:52 test-java2 systemd[1]: Failed to start Docker Application Container Engine. May 28 20:49:52 test-java2 systemd[1]: Unit docker.service entered failed state. May 28 20:49:52 test-java2 systemd[1]: docker.service failed. May 28 20:50:45 test-java2 systemd[1]: start request repeated too quickly for docker.service May 28 20:50:45 test-java2 systemd[1]: Failed to start Docker Application Container Engine. May 28 20:50:45 test-java2 systemd[1]: docker.service failed.
C'est déduit que docker-machine a encore quelques problèmes pour installer docker, et il ne peut être installé que manuellement
Remarque : après avoir désinstallé docker, vous devez supprimer manuellement le dossier /etc/systemd/system/docker.service .d/, sinon le Docker nouvellement installé ne pourra pas démarrer.
Désinstallez le docker existant et réinstallez-le
sudo yum remove docker* \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine sudo rm -rf /etc/systemd/system/docker.service.d/ sudo yum install -y yum-utils device-mapper-persistent-data lvm2 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum install -y docker-ce docker-ce-cli containerd.io
Démarrez Docker et vérifiez l'état du service Docker
$ sudo docker version Client: Docker Engine - Community Version: 19.03.10 API version: 1.40 Go version: go1.13.10 Git commit: 9424aeaee9 Built: Thu May 28 22:18:06 2020 OS/Arch: linux/amd64 Experimental: false Server: Docker Engine - Community Engine: Version: 19.03.10 API version: 1.40 (minimum version 1.12) Go version: go1.13.10 Git commit: 9424aeaee9 Built: Thu May 28 22:16:43 2020 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.2.13 GitCommit: 7ad184331fa3e55e52b890ea95e65ba581ae3429 runc: Version: 1.0.0-rc10 GitCommit: dc9208a3303feef5b3839f4323d9beb36df0a9dd docker-init: Version: 0.18.0 GitCommit: fec3683
Il peut démarrer normalement
Apprentissage recommandé : "Tutoriel vidéo Docker"
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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Vous pouvez passer à la source de miroir domestique. Les étapes sont les suivantes: 1. Modifiez le fichier de configuration /etc/docker/daemon.json et ajoutez l'adresse source miroir; 2. Après enregistrer et sortir, redémarrez le service Docker Sudo Systemctl Docker pour améliorer la vitesse et la stabilité du téléchargement d'image.

Étapes pour créer une image docker: écrivez un dockerfile qui contient les instructions de construction. Créez l'image dans le terminal, en utilisant la commande docker build. Marquez l'image et attribuez des noms et des balises à l'aide de la commande docker tag.

Pour obtenir la version Docker, vous pouvez effectuer les étapes suivantes: exécutez la commande docker "docker --version" pour afficher les versions client et serveur. Pour Mac ou Windows, vous pouvez également afficher les informations de version via l'onglet Version de la GUI de bureau Docker ou du menu de bureau à propos de Docker.

Comment utiliser Docker Desktop? Docker Desktop est un outil pour exécuter des conteneurs Docker sur les machines locales. Les étapes à utiliser incluent: 1. Installer Docker Desktop; 2. Démarrer Docker Desktop; 3. Créer une image Docker (à l'aide de DockerFile); 4. Build Docker Image (en utilisant Docker Build); 5. Exécuter Docker Container (à l'aide de Docker Run).

Les étapes pour mettre à jour une image Docker sont les suivantes: Tirez la dernière étiquette d'image Nouvelle image Supprimer l'ancienne image pour une balise spécifique (facultative) Redémarrez le conteneur (si nécessaire)

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

Pour enregistrer l'image dans Docker, vous pouvez utiliser la commande docker commit pour créer une nouvelle image, contenant l'état actuel du conteneur spécifié, Syntaxe: Docker Commit [Options] Nom d'image de l'ID de conteneur. Pour enregistrer l'image dans le référentiel, vous pouvez utiliser la commande docker push, Syntax: Docker Push Image Name [: Tag]. Pour importer des images enregistrées, vous pouvez utiliser la commande docker pull, syntaxe: docker pull name [: tag].

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").
