ATIR – Déployer Docker dans le nuage de l’ATIR

Auteur: Don McCullough, Architecte en solutions

Suivez-nous

Aperçu

Ce guide explique comment configurer l’environnement Docker pas à pas en créant dans le nuage de l’ATIR un hôte Docker que vous commanderez à partir de Docker Engine, sur votre ordinateur. La figure ci-dessous illustre la solution exposée en détail dans ce guide, dont l’objectif ultime est de vous aider à déployer rapidement les conteneurs d’applications dans votre hôte Docker, sur la plateforme de l’ATIR.

This image has an empty alt attribute; its file name is DAIR_Docker_Revised-Image_FR_FINAL-1024x633.png

Ressources

Avant de commencer, réfléchissez au nombre de conteneurs que vous voudrez exploiter sur l’hôte et calculez les ressources dont vous aurez besoin (nombre de cœurs, mémoire, espace de stockage). Les conteneurs sont d’une « légèreté » exceptionnelle, comparativement aux applis ordinaires qui s’exécutent sur une machine virtuelle. Ils vous permettent donc d’exécuter plus d’applications avec des ressources moindres. En règle générale, pendant le développement et les essais, on préférera plusieurs petites instances au lieu d’une instance volumineuse. Ainsi, on se fera une meilleure idée de la façon d’échelonner l’infrastructure à mesure que l’application ou le service prend de l’expansion.

Sécurité

La sagesse veut qu’on planifie toujours très tôt les besoins de l’infrastructure en matière de groupes de sécurité. Une pratique exemplaire en la matière consiste à n’accorder qu’un strict accès minimum aux ressources conservées dans le nuage.

En ce qui concerne l’ATIR, n’ouvrez que les ports 2376 et 22 pour établir la connexion entre Docker Engine (donc l’ordinateur local qui servira à déployer les conteneurs Docker) et l’hôte Docker dans le nuage. À la fin du guide, nous installerons un conteneur Apache (serveur Web). Par conséquent, vous devrez autoriser le trafic HTTP sur le port 80 en lui donnant pour adresse 0.0.0.0/0 (à savoir, un « accès universel »).

Prérequis

Vous devrez d’abord installer Docker sur votre ordinateur ou l’appareil de votre choix servant au développement. De cette façon, vous contrôlerez localement les conteneurs déployés et exploités sur l’hôte Docker, dans l’ATIR. Suivez les instructions sur le site Web de Docker pour l’installation. Ce guide présume que vous utilisez la version communautaire de Docker (Community Edition) sur un MacBook d’Apple, mais la démarche devrait être presque identique avec un ordinateur fonctionnant avec Windows.

  • Astuce : Si vous avez besoin d’aide, Docker a son propre canal Slack.

1re étape : Installer Docker sur son ordinateur (Mac portable)

Docker Hub: https://hub.docker.com

La version 2.2.0.0 de Docker ne permettait plus l’installation de Docker-machine sur un Mac d’Apple. Cependant, la fonction a été réintroduite avec la version 2.2.3.0. Peut-être devrez-vous procéder à une mise à niveau avant d’utiliser la commande que voici sur votre Mac :

$ brew install docker-machine

2e étape : Installer Docker sur une instance Linux (hôte Docker dans l’ATIR)

À cette étape, vous installerez Docker sur une instance Linux baptisée « docker-demo » dans le nuage de l’ATIR. Si vous n’êtes pas sûr de la façon de procéder, lisez la partie « Créer une instance Linux » du Guide technique – Utilisation des ressources de l’ATIR. L’instance « docker-demo » deviendra l’hôte Docker sur lequel vous déploierez un ou plusieurs conteneurs Docker. Avant d’exécuter les commandes qui suivent, connectez-vous à l’instance de l’ATIR en utilisant votre clé SSH.

Se connecter à l’instance de l’ATIR avec la clé SSH

Utilisez votre identifiant et votre clé SSH, puis remplacez XXX.XXX.XXX.XXX par votre adresse IP publique externe ou flottante.

ssh -i ~/yourkey [email protected]

Installer Docker Engine sur Ubuntu [document de référence de Docker]

Nous utiliserons Ubuntu aux fins d’illustration. Vous trouverez de la documentation concernant de nombreux autres serveurs sur le site Docker Hub. Docker garde ces documents à jour. Une autre solution consisterait à exécuter les mêmes commandes à partir du tableau de bord de l’instance Linux, sur l’interface de gestion de l’ATIR.

Installation de Docker

$ sudo apt-get update

$ sudo apt-get install \
  apt-transport-https \
  ca-certificates \
  curl \
  gnupg-agent \
  software-properties-common

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

$ sudo apt-key fingerprint 0EBFCD88

Vous devriez obtenir ceci :

pub rsa4096 2017-02-22 [SCEA]
  9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid   [ unknown] Docker Release (CE deb) <[email protected]>
sub   rsa4096 2017-02-22 [S]

$ sudo add-apt-repository \
  "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) \
  stable"

$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io

Cela fait, autorisez l’exploitation de Sudo sans mot de passe sur l’hôte Docker en modifiant le fichier sudoers comme suit :


$ vi /etc/sudoers.d/90-cloud-init-users
replace yourusername ALL=(ALL) ALL with yourusername ALL=(ALL) NOPASSWD:ALL
:wq!
$ exit

3e étape : Établir les règles de sécurité pour l’hôte Docker

Dans le nuage de l’ATIR, vous devrez ouvrir les ports 2376 et 22 entre Docker Engine (l’ordinateur local à partir duquel vous déploierez les conteneurs Docker) et l’hôte Docker, dans le nuage.

  • Astuce : Pour connaître l’adresse IP publique de l’ordinateur local, effectuez une recherche Google « Quelle est mon adresse IP » sur le navigateur de l’appareil.

À la fin du guide, nous installerons un conteneur Apache (serveur Web). Vous aurez donc aussi besoin d’une règle qui autorisera le trafic HTTP sur le port 80 avec l’adresse 0.0.0.0/0 (à savoir, « accès universel »). Si vous n’êtes pas certain de savoir comment ajouter un règle pare-feu au groupe de sécurité par défaut de l’ATIR, lisez la partie « Configuration des groupes de sécurité et du pare-feu » du Guide technique – Utilisation des ressources de l’ATIR.

4e étape : Déployer le conteneur (Apache)

Maintenant que l’hôte Docker est configuré, retournez à Docker Engine (sur votre Mac) et exécutez les commandes ci-dessous pour achever la configuration de l’environnement Docker et vous connecter au nouvel hôte Docker, dans l’ATIR. Ensuite, vous déploierez le conteneur Apache (serveur HTTP) sur l’hôte Docker.

Add the host in DAIR to your local Docker environment

Remplacez les arguments en caractères gras dans la commande ci-dessous par votre identifiant et votre clé SSH /emplacement ainsi que l’adresse IP externe de l’hôte Docker créé à la troisième étape.

$ docker-machine create -d generic --generic-ip-address XXX.XXX.XXX.XXX --generic-ssh-user yourusername --generic-ssh-key ~/ yourkey docker-demo


Vous devriez obtenir ceci :

Running pre-create checks...
Creating machine...
(docker-demo) Importing SSH key...
Waiting for machine to be running, this may take a few minutes...
Detecting operating system of created instance...
Waiting for SSH to be available...
Detecting the provisioner...
Provisioning with ubuntu(systemd)...
Installing Docker...
Copying certs to the local machine directory...
Copying certs to the remote machine...
Setting Docker configuration on the remote daemon...
Checking connection to Docker...
Docker is up and running!

Pour savoir comment connecter votre client Docker à Docker Engine, sur la machine hôte dans l’ATIR, utilisez la commande que voici :

$ docker-machine env docker-demo

Ensuite, choisissez la nouvelle machine comme environnement et suivez les instructions.

$ docker-machine env docker-demo

Vous devriez obtenir ceci :

export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://XXX.XXX.XXX.XXX:2376"
export DOCKER_CERT_PATH="/Users/don.mccullough/.docker/machine/machines/docker-demo-azure"
export DOCKER_MACHINE_NAME="docker-demo"
# Run this command to configure your shell:
# eval $(docker-machine env docker-demo)

Exécutez la commande recommandée (surlignée en jaune) qui apparaît dans le résultat de la commande précédente.

$ eval $(docker-machine env docker-demo)

Dorénavant, vous pourrez vous connecter directement à votre hôte Docker avec la clé SSH, à partir de l’ordinateur local, pour vous assurer que tout fonctionne correctement.

$ docker-machine ssh docker-demo

Saisissez « exit » pour vous déconnecter de l’hôte Docker.

Saisissez la commande ci-dessous pour vérifier que le système est « ACTIF ».

$ docker-machine ls

Déployer le conteneur Apache

Finalement, exécutez une commande simple pour récupérer le conteneur Apache (dans Docker Hub) et le déployer/l’exécuter sur votre hôte « docker-demo », dans l’ATIR :

$ docker run --name apache -d -it -p 80:80 httpd

Pour vérifier que le conteneur Apache fonctionne, saisissez l’adresse IP externe de l’hôte Docker dans votre navigateur. La page Web par défaut d’Apache devrait s’afficher à l’écran.

C’est tout! Vous disposez maintenant d’un hôte Docker sur lequel vous pourrez aisément déployer d’autres conteneurs à partir de votre ordinateur portable.

Documentation