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