Deprecated: Use of MediaWiki\Parser\ParserOutput::getText was deprecated in MediaWiki 1.42. [Called from SMW\MediaWiki\Hooks\OutputPageParserOutput::getParserOutput in /home/jltryoen/www/MediaWiki/extensions/SemanticMediaWiki/src/MediaWiki/Hooks/OutputPageParserOutput.php at line 161] in /home/jltryoen/www/MediaWiki/includes/debug/MWDebug.php on line 386
« Docker » : différence entre les versions — La FAQ de JLT

« Docker » : différence entre les versions

 
(13 versions intermédiaires par le même utilisateur non affichées)
Ligne 7 : Ligne 7 :
<br>
<br>


==== Instructions ====
==== Commandes pour l'installation ====
Celles-ci fonctionnent sous '''Ubuntu 20.x'''
''Celles-ci fonctionnent sous '''Ubuntu 20.x'''''
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
#installation de paquets utilisés par l'installation de docker
#installation de paquets utilisés par l'installation de docker
Ligne 42 : Ligne 42 :


==== Instructions ====
==== Instructions ====
Elles sont quasiment identiques à celles sous Linux
''Elles sont quasiment identiques à celles sous Linux''
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
sudo apt-get install \
sudo apt-get install \
Ligne 85 : Ligne 85 :


== Construction ==
== Construction ==
Pour l'outil docker c'est l'option build.<br>
Pour l'outil docker c'est la commande '''build'''.<br>
Il faut tout d'abord:  
Il faut tout d'abord:  
* choisir de quelle image baser sa propre image
* choisir de quelle image baser sa propre image
* editer un fichier DockerFile
* editer un fichier DockerFile
Les images disponibles sont visibles sur le site <favorites keywork=docker_hub/><br>
Les images disponibles sont visibles sur le site <favorites keyword=docker_hub/><br>


exemple de fichier Dockerfile:
exemple de fichier Dockerfile:<br>
''Il permet de charger une image ubuntu 16.04 avec python3/pip preinstallés''
{{syntaxhighlight |lang=text|code=  
{{syntaxhighlight |lang=text|code=  
FROM ubuntu:16.04
FROM ubuntu:16.04
Ligne 100 : Ligne 101 :
ARG PW=docker# Option1: Using unencrypted password/ specifying password
ARG PW=docker# Option1: Using unencrypted password/ specifying password
RUN useradd -m ${USER} --uid=${UID} --password=${PW}
RUN useradd -m ${USER} --uid=${UID} --password=${PW}
#&& echo "${USER}:${PW}" | \
#      chpasswd
# Option2: Using the same encrypted password as host
#COPY /etc/group /etc/group
#COPY /etc/passwd /etc/passwd
#COPY /etc/shadow /etc/shadow# Setup default user, when enter docker container
RUN apt-get update
RUN apt-get update
RUN apt-get install -y python3
RUN apt-get install -y python3
RUN apt-get install -y python3-pip
RUN apt-get install -y python3-pip
RUN python3 -m pip install pytorch
# Setup default user, when enter docker container
USER ${UID}:${GID}
USER ${UID}:${GID}
WORKDIR /home/${USER}
WORKDIR /home/${USER}
Ligne 117 : Ligne 112 :
{{syntaxhighlight |lang=bash|code=
{{syntaxhighlight |lang=bash|code=
#!/bin/bash
#!/bin/bash
#export UID=$(id -u)
#export GID=$(id -g)
docker build --build-arg USER=$USER \
docker build --build-arg USER=$USER \
             --build-arg UID=$UID \
             --build-arg UID=$UID \
Ligne 124 : Ligne 117 :
             --build-arg PW=JLBRIT \
             --build-arg PW=JLBRIT \
             -t myubuntu \
             -t myubuntu \
             -f Dockerfile \
             -f Dockerfile
}}
 
== Chargement de l'image dans un container ==
Pour l'outil docker c'est la commande '''run'''<br>
Ex ''avec l'image construite précédemment'': {{syntaxhighlight |lang=bash|code=
docker run -it myubuntu bash
}}
<br>
Autre exemple, chargement de l'image prédéfinie '''jupyterlab'''<br>
''Il est possible de mapper un répertoire local avec un répertoire du container avec l'option '''-v''' ''
{{syntaxhighlight |lang=bash|code=
docker run --rm -it -p 8888:8888 -v /data/jupyterlab-notebooks:/notebooks
}}
''Connexion au container via un browser Web''
{{syntaxhighlight |lang=text|code=
http://localhost:8888
}}
}}



Dernière version du 30 décembre 2022 à 20:53

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