Table des matières
- 2026:
- 2025:
1 billet(s) pour avril 2026
| Notes ping ICMP | 2026/04/03 23:01 | Jean-Baptiste |
Notes Docker SystemD service
Brouillon
Voir aussi Supervisor
/etc/systemd/system/docker-container@plop.service
[Unit] Description=Docker Container %I Requires=docker.service After=docker.service [Service] TimeoutStartSec=0 Restart=always ExecStartPre=-/usr/bin/docker stop %i ExecStartPre=-/usr/bin/docker rm %i ExecStart=/usr/bin/docker run --rm -v /data/plop:/data --name %i plop [Install] WantedBy=default.target
docker images prune systemctl log docker-container@plop.service docker logs plop
Ulimits
[Service] # systemd, by design does not honor PAM limits LimitNOFILE=65536 LimitNPROC=16384 LimitSTACK=32M LimitMEMLOCK=infinity LimitCORE=infinity LimitDATA=infinity
Autologin console avec SystemD - connexion automatique a la console
Source : https://wiki.archlinux.fr/Connexion_automatique_a_la_console
/etc/systemd/system/getty@tty1.service.d/autologin.conf
[Service] ExecStart= #ExecStart=-/sbin/agetty --autologin user -s %I 115200,38400,9600 vt102 ExecStart=-/sbin/agetty --autologin user --noclear %I 38400 linux
/etc/systemd/system/getty@tty1.service.d/autologin.conf
[Service] ExecStart= ExecStart=-/sbin/agetty --autologin jean --noclear %I $TERM
L'option Type=idle retardera l'exécution du service jusqu'à que tous les jobs (demandes de changement d'état d'unités) soient terminés. En utilisant Type=simple, le service sera démarré immédiatement, mais les messages de démarrage peuvent polluer la console. Cette option est particulièrement utile quand X se lance automatiquement.
Autre
TTY exemple de fichier service SystemD
/lib/systemd/system/getty@tty1.service
# This is getty@tty1.services override config file # for vami_login service in systemd. [Unit] Description= Description=PLOP login on TTY After=systemd-user-sessions.service plymouth-quit-wait.service After=rc-local.service systemd-update-utmp-runlevel.service vaos.service [Service] ExecStart= ExecStart=/opt/plop/plop_login > /dev/tty1 2>&1 < /dev/tty1 Environment=TERM=linux Restart=always RestartSec=0 StandardInput=tty TTYPath=/dev/tty1 TTYReset=yes TTYVHangup=yes KillMode=process IgnoreSIGPIPE=no
Notes Docker MariaDB
Voir :
Création du réseau
docker network create --subnet=172.19.0.0/16 --gateway 172.19.0.1 mynet19
Lancement du conteneur
docker run --rm --net=mynet19 --ip=172.19.0.10 -v /docker-store/var/lib/mysql/:/var/lib/mysql/ -e MYSQL_ROOT_PASSWORD=password -d mariadb --sql_mode='NO_ENGINE_SUBSTITUTION'
Exemple avec fichier de conf my.cnf
mkdir -p /docker-store/etc/mysql/conf.d cat > /docker-store/etc/mysql/conf.d/sql_mode.cnf <<EOF [mysqld] sql_mode = ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION EOF chmod -R a+rX /docker-store/etc/mysql
Lancement du conteneur
docker run --rm --net=mynet19 --ip=172.19.0.10 -v /docker-store/var/lib/mysql/:/var/lib/mysql/ -v /docker-store/etc/mysql/conf.d:/etc/mysql/conf.d:ro -e MYSQL_ROOT_PASSWORD=password -d mariadb
Adminer / PhpMyAdmin
docker run -d --rm --net=mynet19 -p 8082:80 clue/adminer
Notes Docker Cuda nvidia
Voir https://www.tensorflow.org/install/docker
Voir aussi :
Installation nvidia-docker (old)
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey |sudo apt-key add - curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list |sudo tee /etc/apt/sources.list.d/nvidia-docker.list sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit sudo systemctl restart docker
Test
docker run -it --rm --gpus all ubuntu nvidia-smi nvidia-docker run --rm hello-world
Install de CUDA Docker sous Debian avec les paquets .deb
Install nvidia drivers and cuda
Prereq
wget http://security.ubuntu.com/ubuntu/pool/main/s/screen-resolution-extra/screen-resolution-extra_0.17.1.1~16.04.1_all.deb wget http://fr.archive.ubuntu.com/ubuntu/pool/main/x/x-kit/python3-xkit_0.5.0ubuntu2_all.deb dpkg -i screen-resolution-extra_0.17.1.1~16.04.1_all.deb python3-xkit_0.5.0ubuntu2_all.deb apt-get install -f
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600 wget http://developer.download.nvidia.com/compute/cuda/10.2/Prod/local_installers/cuda-repo-ubuntu1804-10-2-local-10.2.89-440.33.01_1.0-1_amd64.deb sudo dpkg -i cuda-repo-ubuntu1804-10-2-local-10.2.89-440.33.01_1.0-1_amd64.deb sudo apt-key add /var/cuda-repo-10-2-local-10.2.89-440.33.01/7fa2af80.pub sudo apt-get update sudo apt-get -y install cuda
apt-get install build-essential binutils g++ mpich dkms libxmu-dev libxi-dev linux-headers-$(uname -r) linux-headers-amd64 wget http://us.download.nvidia.com/XFree86/Linux-x86_64/440.59/NVIDIA-Linux-x86_64-440.59.run
Install Docker
wget http://ftp.fr.debian.org/debian/pool/main/d/docker.io/docker.io_19.03.5+dfsg1-2_amd64.deb wget http://ftp.fr.debian.org/debian/pool/main/r/runc/runc_1.0.0~rc10+dfsg1-1_amd64.deb wget http://ftp.fr.debian.org/debian/pool/main/libs/libseccomp/libseccomp2_2.4.1-2~bpo10+1_amd64.deb dpkg -i libseccomp2_2.4.1-2~bpo10+1_amd64.deb runc_1.0.0~rc10+dfsg1-1_amd64.deb docker.io_19.03.5+dfsg1-2_amd64.deb apt-get -f install apt-get install docker-compose mkdir /etc/systemd/system/docker.service.d/ cat <<EOF > /etc/systemd/system/docker.service.d/http-proxy.conf [Service] # Environment="HTTP_PROXY=http://192.168.22.20:3128/" "HTTPS_PROXY=http://192.168.22.20:3128/" "NO_PROXY=localhost,127.0.0.0/8,192.168.0.0/16" Environment="ALL_PROXY=http://192.168.22.20:3128/" "NO_PROXY=localhost,127.0.0.0/8,192.168.0.0/16" EOF systemctl daemon-reload systemctl restart docker
Autres
ls -la /dev | grep nvidia cat /proc/driver/nvidia/version
Notes Docker CRI-P Podman Buildah Skopeo
Voir :
- https://oneuptime.com/blog/post/2026-03-16-run-container-rootfs-directory-podman/view How to Run a Container from a Rootfs Directory in Podman
Voir aussi :
- OKD
Alternatives à Docker
- CRI-O (Container Runtime Interface - OpenShift) (Fonctionne uniquement avec K8S !?)
- podman
- Docker image build Buildah
- Skopeo (Gérer les images du dépôt “Docker Registry”)
Podman
Voir :
Podman has a built-in command to generate unit files so your containers can be managed and monitored by systemd:
podman generate systemd --new --files --name example_pod
systemctl --user start pod-example_pod.service
Voir :
