Docker
- Commandes
- Version des conteneurs
- Installer docker & docker-compose
- PhpMyAdmin
- MariaDB
- Bookstack
- Traefik
- Wordpress
- Adminer
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 <ID du conteneur> bash
Stopper un conteneur
docker stop <ID conteneur>
Supprimer un conteneur
docker rm <ID conteneur>
Version des conteneurs
Pour utiliser la dernière version : latest
Version | 1 |
Fonctionnalité | 1.2 |
Correctif de sécurité / Patch | 1.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
version: '3'
services:
phpmyadmin:
image: phpmyadmin:latest
container_name: phpmyadmin
restart: always
ports:
- 8080:80
Avec Traefik :
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
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
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
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
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
MAIL_HOST: smtp.**.fr
MAIL_USERNAME: **@orange.fr
MAIL_PASSWORD: ***
MAIL_PORT: 25
MAIL_FROM: admin@bookstack.fr
MAIL_FROM_NAME: notification
Traefik
docker network create traefik
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
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
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
version: '3'
services:
adminer:
image: adminer:latest
restart: always
ports:
- 8080:80