# Docker # Commandes ##### Afficher l'ensemble des conteneurs ``` docker ps -a ``` ##### Lancer tous les conteneurs ``` docker-compose up -d ``` ##### Mettre à jour les conteneurs ``` docker-compose pull ``` ##### Nettoyer les conteneurs ``` docker system prune -a ``` ##### Shell dans un conteneur ``` docker exec -it bash ``` ##### Stopper un conteneur ``` docker stop ``` ##### Supprimer un conteneur ``` docker rm ``` # Version des conteneurs Pour utiliser la dernière version : latest
Version1
Fonctionnalité1.2
Correctif de sécurité / Patch1.2.3
# Installer docker & docker-compose ##### Etape 1 : Les dépendances ``` apt install apt-transport-https ca-certificates gnupg2 software-properties-common ``` ##### Etape 2 : Ajouter docker dans le repository ``` curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list ``` ##### Etape 3 : Mise à jour des paquets ``` apt update ``` ##### Etape 4 : Installer Docker ``` apt install docker-ce ``` ##### Etape 5 : Test ``` systemctl status docker ``` ``` root@vm-web:~# systemctl status docker ● docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; preset: enabled) Active: active (running) since Sun 2023-12-10 19:27:20 CET; 33s ago TriggeredBy: ● docker.socket Docs: https://docs.docker.com Main PID: 8610 (dockerd) Tasks: 9 Memory: 29.8M CPU: 394ms CGroup: /system.slice/docker.service └─8610 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock déc. 10 19:27:20 vm-web systemd[1]: Starting docker.service - Docker Application Container Engine... déc. 10 19:27:20 vm-web dockerd[8610]: time="2023-12-10T19:27:20.284944139+01:00" level=info msg="Starting up" déc. 10 19:27:20 vm-web dockerd[8610]: time="2023-12-10T19:27:20.430101570+01:00" level=info msg="Loading containers: start." déc. 10 19:27:20 vm-web dockerd[8610]: time="2023-12-10T19:27:20.769213106+01:00" level=info msg="Loading containers: done." déc. 10 19:27:20 vm-web dockerd[8610]: time="2023-12-10T19:27:20.789324414+01:00" level=info msg="Docker daemon" commit=311b9ff graphdriver=overlay2 version=24.0.7 déc. 10 19:27:20 vm-web dockerd[8610]: time="2023-12-10T19:27:20.789479443+01:00" level=info msg="Daemon has completed initialization" déc. 10 19:27:20 vm-web dockerd[8610]: time="2023-12-10T19:27:20.830725349+01:00" level=info msg="API listen on /run/docker.sock" déc. 10 19:27:20 vm-web systemd[1]: Started docker.service - Docker Application Container Engine. ``` ##### Etape 6 : Installer docker-compose ``` apt-get install docker-compose ``` # PhpMyAdmin ```yaml version: '3' services: phpmyadmin: image: phpmyadmin:latest container_name: phpmyadmin restart: always ports: - 8080:80 ``` #### Avec Traefik : ```yaml version: '3' services: phpmyadmin: image: phpmyadmin:latest container_name: phpmyadmin restart: always networks: - traefik labels: - "traefik.enable=true" - "traefik.http.routers.phpmyadmin.rule=Host(`ndd.fr`)" - "traefik.http.routers.phpmyadmin.entrypoints=web" networks: traefik: external: true ``` # MariaDB ```yaml version: '3' services: db: image: mariadb:latest container_name: MariaDB volumes: - db_data:/var/lib/mysql restart: unless-stopped environment: MARIADB_ROOT_PASSWORD: tbeFo80uV!rGN9lsA volumes: db_data: ``` #### Avec Traefik ```yaml version: '3' services: db: image: mariadb:11 container_name: MariaDB volumes: - db_data:/var/lib/mysql restart: unless-stopped networks: - traefik environment: MARIADB_ROOT_PASSWORD: tbeFo80uV!rGN9lsA volumes: db_data: networks: traefik: external: true ``` # Bookstack ```yaml version: '3' services: bookstack: image: ghcr.io/linuxserver/bookstack:latest volumes: - bookstack:/config ports: - "8001:80" restart: unless-stopped environment: DB_USER: bookstack DB_PASS: RD4!JeIP4grTqVGjr DB_DATABASE: bookstack DB_HOST: db:3306 APP_URL: http://192.168.1.12:8001 depends_on: - db volumes: bookstack: ``` ##### Avec Traefik ```yaml version: '3' services: bookstack: image: ghcr.io/linuxserver/bookstack:latest container_name: bookstack restart: unless-stopped networks: - traefik environment: DB_USER: bookstack DB_PASS: RD4!JeIP4grTqVGjr DB_DATABASE: bookstackapp DB_HOST: db:3306 APP_URL: http://ndd.fr volumes: - bookstack:/config labels: - "traefik.enable=true" - "traefik.http.routers.bookstack.rule=Host(`ndd.fr`)" - "traefik.http.routers.bookstack.entrypoints=web" depends_on: - db volumes: bookstack: networks: traefik: external: true ``` ##### Activation MAIL() Ajouter les variables suivantes dans le fichier docker-compose.yaml ```yaml MAIL_HOST: smtp.**.fr MAIL_USERNAME: **@orange.fr MAIL_PASSWORD: *** MAIL_PORT: 25 MAIL_FROM: admin@bookstack.fr MAIL_FROM_NAME: notification ``` # Traefik ```bash docker network create traefik ``` ```yaml version: '3' services: traefik: image: traefik:2.11 container_name: traefik restart: unless-stopped command: - "--log.level=DEBUG" - "--api.insecure=true" - "--providers.docker=true" - "--providers.docker.exposedbydefault=false" - "--entrypoints.web.address=:80" - "--entrypoints.web-secure.address=:443" networks: - traefik ports: - "80:80" - "443:443" - "8080:8080" volumes: - "/var/run/docker.sock:/var/run/docker.sock" networks: traefik: external: true ``` # Wordpress ```yaml version: '3' services: db: image: mariadb:latest volumes: - db_data:/var/lib/mysql restart: unless-stopped environment: MARIADB_ROOT_PASSWORD: tbeFo80uVrGN9lsA MARIADB_DATABASE: wordpress MARIADB_USER: wordpress MARIADB_PASSWORD: 6y9SeZr9MnJmWW7N wordpress: image: wordpress:latest volumes: - wordpress:/var/www/html ports: - "8000:80" restart: unless-stopped environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: 6y9SeZr9MnJmWW7N WORDPRESS_DB_NAME: wordpress depends_on: - db volumes: db_data: wordpress: ``` ##### Avec Traefik ```yaml version: '3' services: db: image: mariadb:latest volumes: - db_data:/var/lib/mysql restart: unless-stopped networks: - traefik environment: MARIADB_ROOT_PASSWORD: tbeFo80uVrGN9lsA MARIADB_DATABASE: wordpress MARIADB_USER: wordpress MARIADB_PASSWORD: 6y9SeZr9MnJmWW7N wordpress: image: wordpress:latest container_name: wordpress volumes: - wordpress:/var/www/html networks: - traefik restart: unless-stopped environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: 6y9SeZr9MnJmWW7N WORDPRESS_DB_NAME: wordpress labels: - "traefik.enable=true" - "traefik.http.routers.wordpress.rule=Host(`ndd.fr`)" - "traefik.http.routers.wordpress.entrypoints=web" depends_on: - db volumes: db_data: wordpress: networks: traefik: external: true ``` # Adminer ```yaml version: '3' services: adminer: image: adminer:latest restart: always ports: - 8080:80 ```