Docker and Docker Compose
Docker
Quelques commandes simples :
docker images # voir la liste des images présentes sur le système
docker pull nom_image # récupérer l’image du docker hub
docker run nom_image # instancier un conteneur à partir de l’image
docker ps # voir les instances en cours d’exécution
docker kill id_instance # « tuer » l’instance (« docker ps » pour voir l’ID)
Des commandes plus évoluées, pratiques :
docker run --name mon_nom -d nom_image # instancier en tant que démon un conteneur
docker run --rm -it nom_image /bin/bash # instancier un conteneur et s’y connecter
Dockerfile
FROM
ENV
pour run
RUN
EXPOSE
CMD
COPY
COPY
Support tar.gz, ou tar
ARG
pour build
Docker Compose
healthcheck
version: '3'
services:
mariadb-test:
image: mariadb:10.6
ports:
# - "3306:3306" (pour tester le DB avec un client)
volumes:
- mon-volume:/var/lib/mysql
environment:
MARIADB_USER: squash-user
MARIADB_PASSWORD: password
MARIADB_DATABASE: squash
MARIADB_ROOT_PASSWORD: azerty
healthcheck:
test: ["CMD", "healthcheck.sh", "--su-mysql", "--connect", "--innodb_initialized"]
# test: healthcheck.sh --su-mysql --connect --innodb_initialized
interval: 5s
#timeout: 30s
#retries: 3
#start_period: 0s
squash-tm:
image: squash-xzhao:1.0.2
ports:
- "8080:8080"
environment:
MY_DB_URL: "jdbc:mysql://mariadb-test:3306/squash"
MY_DB_TYPE: mariadb
MY_DB_USERNAME: squash-user
MY_DB_PASSWORD: password
depends_on:
mariadb-test:
condition: service_healthy
volumes:
mon-volume: {}
Réseaux
SDN
Docker cleanup
check space usage
docker system df
Cleanup
# Remove all stopped containers
docker container prune
# Remove all unused volumes
docker volume prune
# Remove unused images
docker image prune
# Remove unused network
docker network prune
# Remove all unused containers, volumes, images (in this order)
docker system prune
# clean up unused build cache generated by Docker Buildx
docker buildx prune
# Similar to the previous command, but more aggressive in its cleanup
docker buildx prune --all
Enter into a running Docker container
# with bash
docker exec -it <container_name> /bin/bash
# no bash
docker exec -it <container_name> /bin/sh