Docker sur ArchLinux

              · · ·

Voici un petit guide de mise en route pour déployer une applications Spring Boot dans un conteneur docker sur ArchLinux

Pré-requis

Les commandes ci-dessous sous exécutée sur Archlinux.

Installation de docker et de ses autres outils

$ sudo pacman -Syu docker docker-compose docker-machine
$ sudo systemctl start docker
$ sudo systemctl enable docker

Modification des droits d’accès de l’utilisateur

ATTENTION :
If you want to be able to run docker as a regular user, add your user to the docker user group. Anyone added to the docker group is root equivalent. More information here and here.

$ sudo gpasswd -a ${USER} docker
$ sudo reboot

Sous GNOME j’ai du redémarrer la machine car un simple déconnexion de session n’a pas suffit

Testons la configuration

Est-ce que Docker est bien configuré

$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

Si on vous demande un mot de passe c’est que vous avez merdé lors de l’ajout du groupe docker à votre utilisateur

Récupérons un simple projet Spring Boot, compilons le

$ mkdir Projets
$ cd Projets
$ git clone https://gitlab.com/docker-spring-cloud/docker-demo.git
$ cd docker-demo
$ ./mvnw install dockerfile:build

Félicitation, vous venez de compiler et de “conteneuriser” votre première application Spring Boot

Démarrons le conteneur Docker

$ docker image ls
REPOSITORY                     TAG                 IMAGE ID            CREATED             SIZE
andycostanzacom/docker-demo    latest              18c5d16986d9        2 hours ago         119MB
openjdk                        8-jdk-alpine        97bc1352afde        7 weeks ago         103MB
$ docker run -p 8080:8080 -t andycostanzacom/docker-demo

Dans votre navigateur internet, ouvrez la page http://localhost:8080/hello et si la page vous répond hello c’est que tout va bien, vous venez d’appeller un endpoint Spring Boot dans un conteneur docker.

Trucs et astuces

Pour savoir quel conteneur est en cours de fonctionnement :

$ docker ps
CONTAINER ID        IMAGE                         COMMAND                  CREATED             STATUS              PORTS                    NAMES
43721a2aff5d        andycostanzacom/docker-demo   "java -cp app:app/li…"   8 seconds ago       Up 7 seconds        0.0.0.0:8080->8080/tcp   hungry_greider

Pour arreter un conteneur :

$ docker stop 43721a2aff5d
43721a2aff5d

Ouais je sais, il pourrait être plus explicite que de renvoyer juste le Container ID!