J'ai écrit le même article dans ici
Exécutez la commande suivante pour installer Docker sur Ubuntu J'essaye de tout faire avec un seul exemplaire pour qu'il n'y ait pas de soucis
sudo apt -y install apt-transport-https ca-certificates software-properties-common && \
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - && \
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" && \
sudo apt install -y docker-ce
Démarre automatiquement au démarrage du système d'exploitation et démarre sur place
sudo systemctl enable docker
sudo systemctl start docker
Par défaut, vous avez besoin des privilèges root pour vous connecter à Docker
sudo docker ps
Après avoir exécuté la commande suivante, vous pouvez l'utiliser en vous reconnectant.
sudo echo usermod -aG docker `logname`
Confirmation
docker ps
De là, ce sera une partie gênante J'ai besoin de créer un certificat OLEORE et de le distribuer au serveur et au client, mais cela prend beaucoup de temps et d'efforts pour le faire. C'est trop ennuyeux, j'ai donc créé un script qui ignore toutes les entrées du milieu pour qu'il se termine par une commande
Vérifiez ici pour la description de la commande https://github.com/SoraKumo001/docker-tls
Créez un certificat pour vous connecter à distance
curl -s https://raw.githubusercontent.com/SoraKumo001/docker-tls/master/docker-tls.sh | \
sudo bash
Si vous souhaitez définir correctement le nom d'hôte lors de la connexion, spécifiez le nom de domaine et l'adresse IP comme suit
curl -s https://raw.githubusercontent.com/SoraKumo001/docker-tls/master/docker-tls.sh | \
sudo bash -s DNS:host.example.com,IP:10.1.1.1
--Clé privée /etc/docker/certs/private-key.pem
--Fichier pour le démon Docker /etc/docker/certs/ca.pem /etc/docker/certs/server-key.pem /etc/docker/certs/server-cert.pem
--Fichier client ~/.docker/ca.pem ~/.docker/cert.pem ~/.docker/key.pem
Pour une connexion à distance dans un environnement Windows ou Mac, copiez le fichier client dans le dossier .docker du répertoire utilisateur.
Le script de génération automatique de certificat est conçu pour réutiliser les clés privées Donc, si vous réémettez le certificat, vous n'avez pas à redistribuer le certificat du client. De plus, si vous créez un certificat avec la clé privée existante copiée au même emplacement sur un autre serveur, vous pouvez vous connecter à plusieurs serveurs avec le même fichier client.
Si vous avez besoin d'un remake complet, veuillez effacer la clé privée manuellement
ExecStart=/usr/bin/dockerd --tlsverify --tlscacert=/etc/docker/certs/ca.pem --tlscert=/etc/docker/certs/server-cert.pem --tlskey=/etc/docker/certs/server-key.pem -H tcp://0.0.0.0 -H fd:// --containerd=/run/containerd/containerd.sock
sudo sed -i "s/^ExecStart=.*/ExecStart=\/usr\/bin\/dockerd \
--tlsverify --tlscacert=\/etc\/docker\/certs\/ca.pem \
--tlscert=\/etc\/docker\/certs\/server-cert.pem \
--tlskey=\/etc\/docker\/certs\/server-key.pem \
-H tcp:\/\/0.0.0.0 -H fd:\/\/ \
--containerd=\/run\/containerd\/containerd.sock/" \
/lib/systemd/system/docker.service
sudo systemctl daemon-reload && sudo systemctl restart docker
Dans les paramètres de service jusqu'à présent, une connexion tls est requise lors de la connexion en adressant à l'aide de -H. Par conséquent, vous ne pouvez pas vous connecter sauf si vous spécifiez --tls. Si vous définissez --tlsverify, le nom de domaine sera vérifié lors de la connexion.
docker --tls -H localhost ps
docker --tlsverify -H localhost ps
Les commandes Docker ont la capacité de diriger des images Docker, vous pouvez donc transférer des images à distance sans passer par Docker Hub en procédant comme suit:
docker enregistrer le nom de l'image(Plusieurs peuvent être spécifiés) | docker --tls -Chargement du nom du serveur H
Utile pour transférer des images créées localement ou des builds CI / CD Si vous en avez un petit, vous pouvez facilement le déployer avec celui-ci.
Veuillez noter que vous ne pourrez pas vous connecter à moins qu'il ne corresponde au nom d'hôte spécifié lors de la création du certificat.
docker-compose --tlsverify -H nom d'hôte:2375 ou moins Commande normale
Une fois que vous avez émis le certificat, vous pourrez facilement utiliser Docker à distance. Après cela, si vous envoyez un conteneur et le déplacez, vous pourrez presque tout faire Cependant, faites attention aux erreurs telles que placer un certificat dans un référentiel public et le publier. La publication crée le regret
Recommended Posts