Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
kb_it:docker [2022/07/07 21:09] befekb_it:docker [2025/12/06 11:53] (Version actuelle) befe
Ligne 41: Ligne 41:
 docker run --rm -v osx-big-sur_data:/volume -v `pwd`/data:/target busybox sh -c 'cp -a /volume/* /target/' docker run --rm -v osx-big-sur_data:/volume -v `pwd`/data:/target busybox sh -c 'cp -a /volume/* /target/'
 </code> </code>
 +
 ===== Commandes secondaires ===== ===== Commandes secondaires =====
  
Ligne 49: Ligne 50:
 <code bash> <code bash>
 docker inspect -f '{{ .Created }}' IMAGE_OR_CONTAINER docker inspect -f '{{ .Created }}' IMAGE_OR_CONTAINER
 +</code>
 +
 +===== Gestion du réseau =====
 +
 +==== Utilisation du driver macvlan ====
 +
 +Cas d'utilisation :
 +
 +Exposition d'un serveur DNS conténeurisé avec une @IP spécifique et communication possible entre l'hôte et le conteneur.
 +
 +<code bash>
 +docker network create -d macvlan --subnet=192.168.0.0/24 --gateway=192.168.0.254 --ip-range 192.168.0.1/27 --aux-address "host=192.168.0.1" -o parent=enp0s3 befe.lan
 +</code>
 +
 +docker-compose.yml
 +<code yml>
 +version: "3.7"
 +
 +networks:
 +  befe.lan:
 +    external: true
 +
 +services:
 +  adguard:
 +    image: adguard/adguardhome:v0.107.26
 +    networks:
 +      befe.lan:
 +        ipv4_address: 192.168.0.2
 +    ports:
 +      - 192.168.0.2:53:53/tcp # DNS
 +      - 192.168.0.2:53:53/udp # DNS
 +</code>
 +
 +<code bash>
 +ip link add befe.lan-shim link enp0s3 type macvlan mode bridge
 +ip addr add 192.168.0.253/32 dev befe.lan-shim
 +ip link set befe.lan-shim up
 +ip route add 192.168.0.2/32 dev befe.lan-shim
 +</code>
 +
 +Pour une configuration persistante :
 +
 +/etc/network/interfaces.d/befe.lan-shim
 +<code>
 +auto befe.lan-shim
 +iface befe.lan-shim inet manual
 +        pre-up    /bin/ip link  add befe.lan-shim link enp0s3 type macvlan mode bridge
 +        up        /bin/ip addr  add 192.168.0.253/32 dev befe.lan-shim
 +        post-up   /bin/ip route add 192.168.0.2/32   dev befe.lan-shim
 +        post-down /bin/ip route del befe.lan-shim
 +</code>
 +
 +===== Gestion du mode graphique =====
 +
 +==== Lancer un conteneur en mode graphique ====
 +
 +<code bash>
 +docker run --rm -it \
 +  --net=host \
 +  -e DISPLAY \
 +  -v /home/me/.Xauthority:/root/.Xauthority \
 +  gns3/xeyes
 </code> </code>
  
Ligne 99: Ligne 162:
 RUN addgroup docker-test --gid 1000 && \ RUN addgroup docker-test --gid 1000 && \
  adduser docker-test --debug --no-create-home --disabled-password --gecos "" --uid 1000 --gid 1000  adduser docker-test --debug --no-create-home --disabled-password --gecos "" --uid 1000 --gid 1000
 +</code>
 +
 +===== Healthcheck =====
 +
 +==== httpd ====
 +
 +<code yml>
 +healthcheck:
 +  test: timeout 10s bash -c ':> /dev/tcp/127.0.0.1/80' || exit 1
 +  interval: 60s
 +  timeout: 30s
 +  retries: 3
 </code> </code>
  
Ligne 133: Ligne 208:
 ==== Maintenir un container en vie ==== ==== Maintenir un container en vie ====
  
-<code yml>+docker-compose.yml 
 +<code yaml>
 entrypoint: 'tail -f /dev/null' entrypoint: 'tail -f /dev/null'
 +</code>
 +
 +==== Lister les PID des conteneurs ====
 +
 +<code bash>
 +for i in $(docker container ls --format "{{.ID}}"); do docker inspect -f '{{.State.Pid}} {{.Name}}' $i; done
 +</code>
 +
 +==== Voir les adresses IP des conteneurs ====
 +
 +<code bash>
 +docker ps -q | xargs -n 1 docker inspect --format '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}} {{ .Name }}' | sed 's/ \// /'
 +</code>
 +
 +==== Commandes diverses ====
 +
 +=== PHP Composer et limitation de la mémoire ===
 +
 +<code bash>
 +docker run -it --rm -v $(pwd):/app -w /app -e COMPOSER_MEMORY_LIMIT=-1 composer:latest bash -c "php -r \"ini_set('memory_limit', '8G');\" && composer update"
 +</code>
 +
 +===== Problèmes connus =====
 +
 +==== MySQL/MariaDB :  ====
 +
 +<code>
 +Error: io_setup() failed with EAGAIN after 5 attempts
 +</code>
 +
 +<code bash>
 +$ sysctl fs.aio-max-nr
 +fs.aio-max-nr = 65536
 +sudo sysctl -w fs.aio-max-nr=2097152
 </code> </code>