apt updateapt install ca-certificates curl gnupgsudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo \ "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \ "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
apt install apt-transport-https gnupg2 software-properties-commonapt install docker-ce docker-ce-cli containerd.iosystemctl enable dockerusermod -aG docker admindocker run hello-worlddocker: Got permission denied while trying to connect to the Docker daemon socket apparait :.bashrc : source ~/.bashrcdocker run hello-worldAfin de pouvoir limiter la consommation de mémoire et de CPU des containers Docker, il est nécessaire de vérifier que le noyau Linux est compilé avec les bonnes options :
Si le noyau est correctement compiler, vous pouvez passer à l'étape suivante :
docker info vi /etc/default/grub GRUB_CMDLINE_LINUX="cdgroup_enable=memory swapaccount=1"
update-grub reboot docker info /var/lib/docker/sudo -isystemctl stop dockersystemctl status dockerps faux | grep -i docker/etc/docker/daemon.json dans lequel vous indiquerez le nouveau dossier : vi /etc/docker/daemon.json/etc/docker/daemon.json : { "data-root": "/data/docker" }
sudo mkdir /data/dockerrsync -avxPS /var/lib/docker/ /data/dockerdu -hs /var/lib/docker/; du -hs /data/dockermv /var/lib/docker /var/lib/docker.oldsystemctl start dockersystemctl status dockerdocker info | grep 'Docker Root Dir' docker psrm -rf /var/lib/docker.olddocker. Si la commande suivante afficher la version de Compose, inutile de suivre les étapes suivantes : docker compose versionapt install docker-compose-plugindocker --help |grep composerm -f /usr/local/bin/docker-compose ; rm -f /etc/bash_completion.d/docker-composevi /etc/docker/daemon.json{ "ipv6": true, "fixed-cidr-v6": "c01d:c01a:cafe::/64", "experimental": true, "ip6tables": true }
systemctl restart dockerdocker network inspect bridge|grep EnableIPv6docker network rm nginx-proxydocker compose down; docker compose up -dports: - "0.0.0.0:80:80" - "0.0.0.0:443:443" - "[::]:80:80" - "[::]:443:443"
ss -6ltpnenvironment: ENABLE_IPV6: true
docker network create --driver=bridge --ipv6 --subnet=172.18.5.0/24 --ip-range=172.18.5.0/24 --subnet a1f:ea75:ca75::/48 --gateway=172.18.5.1 nginx-proxy Les fichiers docker-compose.yml des différents outils de suivi sont hébergés dans un dépôt Github. Il est nécessaire de copier ces fichiers sur les différentes instances afin de pouvoir les installer.
rsync :rsync suivante, ici pour web-srv et le dossier /web-srv/home/admin/docker avec l'option --dry-run (à supprimer quand tout est ok) : rsync -av ./web-srv/home/admin/docker/ admin@web-<region>-sinp:/home/admin/docker/ --dry-run
Lorsqu'on lancer docker-compose up, Docker-Compose se charge de créer les volumes nommés. Lors de leur création, il utilise le nom du dossier dans lequel se trouve le fichier docker-compose.yml. Ainsi, si l'on change ultérieurement ce nom de dossier, Docker-Compose recréer de nouveaux volumes nommés au prochaine lancement.
Il est donc nécessaire de suivre la procédure suivante pour renommer le dossier d'une stack créé par Docker-Compose :
docker-compose downmv monitor.silene.eu monitordocker volume create \
--label com.docker.compose.project=<futur-nom-de-la-stack> \
--label com.docker.compose.version=<version-de-docker-compose> \
--label com.docker.compose.volume=<nom-du-volume> \
--name <futur-nom-de-la-stack>_<nom-du-volume>
docker volume create \
--label com.docker.compose.project=monitor \
--label com.docker.compose.version=1.24.1 \
--label com.docker.compose.volume=influxdb-storage \
--name monitor_influxdb-storage
docker run --rm -it \ -v <ancien-nom-de-la-stack>_<nom-du-volume>:/from:ro \ -v <futur-nom-de-la-stack>_<nom-du-volume>:/to \ alpine ash -c "cd /from ; cp -av . /to"
docker run --rm -it \ -v monitorsileneeu_influxdb-storage:/from:ro \ -v monitor_influxdb-storage:/to \ alpine ash -c "cd /from ; cp -av . /to"
docker-compose up -dIl est possible de déplacer les volumes nommés d'un serveur à un autre :
docker compose downsystemctl stop docker/var/lib/docker/volumes/rsync -e 'ssh -p <bkp-srv-ssh-port>' -avxP analytics_matomo-storage/ admin@bkp-paca-sinp:~/dwl/analytics_matomo-storage//data/docker/) : mv analytics_matomo-storage /data/docker/volumes/chown –from=admin root -R /data/docker/volumes/analytics_matomo-storage .env pour adapter la configuration au nouveau serveur.docker compose up -d journalctl -x -u docker.service docker run <image>docker image ls -adocker image rm <image id>docker container ls --alldocker container rm <hash> docker build -t <nom>:<tag> .docker exec -it <container name> /bin/baship est installé - paquet iproute2), afficher l'IP de l'hôte : ip route|awk '/default/ { print $3 }'docker system df
docker system df --verbose
docker system prune
docker system prune --volumes
docker-compose build [SERVICE...] docker-compose build --pull [SERVICE...] docker-compose build --no-cache docker-compose config docker-compose config --services docker-compose config --volumes docker-compose down docker-compose down --volumes docker-compose down --volumes --rmi all docker-compose up -d --no-deps --build <service-name> docker-compose exec [options] [-e KEY=VAL...] SERVICE COMMAND [ARGS...] docker-compose images [SERVICE...] docker-compose logs [options] [SERVICE...] Ex. docker-compose logs -f --tail=3