Outils pour utilisateurs

Outils du site


blog

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
2025/03/24 15:06

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
2025/03/24 15:06

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
2025/03/24 15:06

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

Source : https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1804&target_type=deblocal

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
2025/03/24 15:06

Notes Docker CRI-P Podman Buildah Skopeo

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 :

2025/03/24 15:06
blog.txt · Dernière modification : de 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki