docker
Table des matières
Docker
Installation :
- Créer un compte sur : Docker Hub. (pas obligatoire sous linux).
- Se connecter au serveur en SSH.
- Taper :
sudo apt-get update && sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable" sudo apt update && sudo apt-get install docker-ce docker-ce-cli containerd.io sudo usermod -aG docker your-user
Ne pas oublier de modifier your-user et de mettre votre user sur votre serveur linux.
Différence entre une image Docker et un conteneur :
- Si vous démarrez cette image, vous disposez d'un conteneur en cours d'exécution de cette image.
- Vous pouvez avoir plusieurs conteneurs en cours d'exécution de la même image.
- Vous pouvez voir toutes vos images avec “docker images” tandis que vous pouvez voir vos conteneurs en cours d'exécution avec “docker ps”(et vous pouvez voir tous les conteneurs avec docker ps -a).
- Une instance en cours d'exécution d'une image est un conteneur, ainsi vous pouvez avoir plusieurs conteneurs lancés à partir d'une même image. (utile pour créer plusieurs sites nuked klan de base et les données seront différentes selon l'évolution de chaque site par exemple).
Commandes :
Générales :
- docker login : se connecte au compte créé sur le site : Docker Hub. La connexion au compte n'est pas obligatoire sous linux.
- docker run XXX : Télécharge l'image si elle n'est pas encore présente et démarre le conteneur.
- docker run hello-world : Lance le conteneur de teste hello-world
- docker run -d -p 8080:80 nginx : Lance un serveur nginx
- -d pour détacher le conteneur du processus principal de la console.
- -p pour définir l'utilisation de ports. Dans notre cas, nous lui avons demandé de transférer le trafic du port 8080 vers le port 80 du conteneur.
- docker system prune : supprime tout les containers Docker qui ne sont pas en status running, l'ensemble des images Docker non utilisées, l'ensemble des réseaux créés par Docker qui ne sont pas utilisés par au moins un conteneur et caches utilisés pour la création d'images Docker.
Conteneur :
- docker ps : liste les conteneur démarrés.
- docker ps -a : liste tout les conteneur.
- docker exec -ti ID_RETOURNÉ_LORS_DU_DOCKER_RUN : ouvre un shell pour accéder dans le conteneur.
- docker stop ID(retourné lors de docker ps) : stop le conteneur mais il reste sur le disque.
- docker rm ID(retourné lors de docker ps -a) : supprime le conteneur.
Images :
- docker pull hello-world : récupère l'image hello-world, la met sur le disque mais ne lance pas.
- docker images -a : voir l'ensemble des images présentes sur le disque.
- docker rmi ID(retourné lors de images -a) : supprime l'image du disque.
Créer des images
- Créer un fichier nommé “Dockerfile”
- Mettre un truc comme ça dedans :
FROM debian:9 RUN apt-get update -yq \ && apt-get install curl gnupg -yq \ && curl -sL https://deb.nodesource.com/setup_10.x | bash \ && apt-get install nodejs -yq \ && apt-get clean -y ADD . /app/ WORKDIR /app RUN npm install EXPOSE 2368 VOLUME /app/logs CMD npm run start
- Explication :
FROM qui vous permet de définir l'image source ; RUN qui vous permet d’exécuter des commandes dans votre conteneur ; ADD qui vous permet d'ajouter des fichiers dans votre conteneur ; WORKDIR qui vous permet de définir votre répertoire de travail ; EXPOSE qui permet de définir les ports d'écoute par défaut ; VOLUME qui permet de définir les volumes utilisables ; CMD qui permet de définir la commande par défaut lors de l’exécution de vos conteneurs Docker.
- Créez un fichier .dockerignore : comme sur git il permet d'éviter la copie de certains fichiers.
- Mettre ça dedans, pas beaucoup d'explications merci OpenClassRoom :
node_modules .git
- Créer votre image Docker, -t permet de donner un nom à votre image Docker :
docker build -t ocr-docker-build
- Maintenant, vous pouvez lancer votre conteneur :
docker run -d -p 2368:2368 ocr-docker-build
Envoyez votre image sur le Docker Hub :
- Se connecter sur le docker hub.
- Créer un nouveau repository sur le site : ocr-docker
- Créer un tag :
docker tag ocr-docker-build
Rechercher des images :
docker search : Permet de rechercher des images en lignes de commandes. ex : docker search nginx
Les images officielles disponibles :
Il y en a 152 : Docker hub.
Les images non officielles disponibles :
En constante évolution, impossible de les compter : Docker hub.
Vous pourriez laisser un commentaire si vous étiez connecté.
docker.txt · Dernière modification : 2021/04/30 13:15 de micmacx