Docker
Docker
docker pull : Récupérer une image depuis un registre
docker run :
- p 8080:8080
- rm : Supprimer le conteneur à la fin de son exécution
- it : Interactif
- v $(pwd):/src
- d : Détaché
- e : Variables d’environnement
docker run -p 8080:8080 -rm -it -v $(pwd):/src -d -e NODE_ENV=production nom_de_l_image
docker run => docker create + docker start
docker create id_de_l_image
docker start id_du_conteneur
docker stop id_du_conteneur
docker restart id_du_conteneur
docker rm id_du_conteneur
docker rmi id_de_l_image
docker exec -it id_du_conteneur bash
docker logs id_du_conteneur
docker stats
docker system prune : Supprimer tous les conteneurs, images, volumes et réseaux non utilisés
docker system prune -a : Supprimer tous les conteneurs, images, volumes et réseaux (même utilisés)
docker system df : Afficher l’espace disque utilisé par les images et les conteneurs
docker images : Afficher les images
docker ps -a
CONTAINER ID : Identifiant unique du conteneur
IMAGE : Image utilisée pour créer le conteneur
COMMAND : Commande exécutée au lancement du conteneur
CREATED : Date de création du conteneur
STATUS : Statut du conteneur
PORTS : Ports exposés par le conteneur
NAMES : Nom du conteneur
docker-compose
docker build : Construire une image à partir d’un Dockerfile
docker build -t nom_de_l_image .
docker-compose run –rm hugo –help
Docker Compose : yaml Dockerfile :
FROM node:12-alpine
RUN apk add --no-cache python2 g++ make
WORKDIR /app
COPY . .
RUN yarn install --production
CMD ["node", "src/index.js"]
EXPOSE 3000
Dockerfile :
docker-compose.yml :
version: '3'
services:
web:
build: .
ports:
- "3000:3000"
volumes:
- .:/app
- /app/node_modules
db:
image: mongo
ports:
- "27017:27017"
docker-compose up : Lancer les conteneurs
docker-compose up -d
docker-compose down : Arrêter les conteneurs
docker maintenance
docker system prune
docker system prune -a
docker system df
docker volume prune
docker volume ls
docker volume rm id_du_volume
docker volume rm $(docker volume ls -q)
sudo systemctl status docker
sudo systemctl start docker
sudo systemctl stop docker
sudo systemctl restart docker
sudo systemctl enable docker
sudo systemctl disable docker
sudo systemctl status docker
docker configuration
https://www.docker.com/products/docker-desktop/ https://docs.docker.com/engine/install/ubuntu/
sudo apt-get remove docker docker-engine docker.io containerd runc
sudo apt update
sudo apt-get install \
ca-certificates \
curl \
gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
ls -l /var/run/docker.sock : check the permissions
sudo chmod 666 /var/run/docker.sock
sudo chown root:docker /var/run/docker.sock
sudo usermod -aG docker $USER : Add user to docker group
ajouter les droits docker à l’utilisateur courant
sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker
docker run hello-world