Docker

Installation

Linux

Voir [DOCKER_INSTALL_UBUNTU] et [DOCKER_POSTINSTALL]

Commandes pour l'installation

Celles-ci fonctionnent sous Ubuntu 20.x

#installation de paquets utilisés par l'installation de docker
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
 
#mise à jour des dépôts de mise à jour
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
 
#installation proprement dite
sudo apt install docker-ce docker-ce-cli containerd.io
 
#mise à jour des groupes pour l'utilisateur courant
sudo usermod -aG docker $USER


Windows/WSL2

Les dernières versions de Windows 11 ont un support de WSL2 bien meilleur que sous Windows 10

Voir    Windows_11/WSL2


Pour l'installation de docker sous cette architecture voir [DOCKER_INSTALL_WSL2]

Instructions

Elles sont quasiment identiques à celles sous Linux

sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
#mise à jour des dépôts de mise à jour
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io
#mise à jour des groupes pour l'utilisateur courant
sudo usermod -aG docker $USER


J'ai du mettre à jour le fichier /etc/docker/daemon.json

sudo mkdir /etc/docker/
sudo vi /etc/docker/daemon.json


 /etc/docker/daemon.json

{
  "tls": false
 
}


J'ai modifié le fichier '.bashrc pour lancer automatiquement le service docker

# automatiser le démarrage du démon docker
echo "sudo service docker status || sudo service docker start" >> ~/.bashrc
 
# désactiver la demande de mot de passe pour gérer le service docker
echo "%docker ALL=(ALL) NOPASSWD: /usr/sbin/service docker *" | sudo tee -a /etc/sudoers



Construction

Pour l'outil docker c'est la commande build.
Il faut tout d'abord:

  • choisir de quelle image baser sa propre image
  • editer un fichier DockerFile

Les images disponibles sont visibles sur le site


exemple de fichier Dockerfile:
Il permet de charger une image ubuntu 16.04 avec python3/pip preinstallés

FROM ubuntu:16.04
ARG USER=docker
ARG UID=1000
ARG GID=1000
# default password for user
ARG PW=docker# Option1: Using unencrypted password/ specifying password
RUN useradd -m ${USER} --uid=${UID} --password=${PW}
RUN apt-get update
RUN apt-get install -y python3
RUN apt-get install -y python3-pip
# Setup default user, when enter docker container
USER ${UID}:${GID}
WORKDIR /home/${USER}


script de construction:

#!/bin/bash
docker build --build-arg USER=$USER \
             --build-arg UID=$UID \
             --build-arg GID=$GID \
             --build-arg PW=JLBRIT \
             -t myubuntu \
             -f Dockerfile


Chargement de l'image dans un container

Pour l'outil docker c'est la commande run
Ex avec l'image construite précédemment:

docker run -it myubuntu bash



Autre exemple, chargement de l'image prédéfinie jupyterlab
Il est possible de mapper un répertoire local avec un répertoire du container avec l'option -v

docker run --rm -it -p 8888:8888 -v /data/jupyterlab-notebooks:/notebooks


Connexion au container via un browser Web

http://localhost:8888


Liens externes