Mettre à jour 'docker.md'
This commit is contained in:
parent
1e6ab9e47e
commit
800db14cda
72
docker.md
72
docker.md
@ -14,6 +14,7 @@
|
|||||||
- lister tous les conteneur `docker ps -a`
|
- lister tous les conteneur `docker ps -a`
|
||||||
- delete conteneur: `docker rm 2cdc
|
- delete conteneur: `docker rm 2cdc
|
||||||
- run a commad in container: `docker exec `
|
- run a commad in container: `docker exec `
|
||||||
|
- voir stdout d'un container: `docker logs`
|
||||||
- créer et lancer un conteneur `docker run -d --name node-app -p 3000:3000 -v $(pwd):/app node:0.12.4 node /app/server.js`
|
- créer et lancer un conteneur `docker run -d --name node-app -p 3000:3000 -v $(pwd):/app node:0.12.4 node /app/server.js`
|
||||||
- -d lance en tant que daemon
|
- -d lance en tant que daemon
|
||||||
- --name permet de nommer le conteneur
|
- --name permet de nommer le conteneur
|
||||||
@ -37,20 +38,23 @@ RUN apt-get update \
|
|||||||
RUN curl -LO "https://nodejs.org/dist/v12.2.0/node-v12.2.0-linux-x64.tar.xz" \
|
RUN curl -LO "https://nodejs.org/dist/v12.2.0/node-v12.2.0-linux-x64.tar.xz" \
|
||||||
&& tar -xJf node-v12.2.0-linux-x64.tar.xz -C /usr/local --strip-components=1 \
|
&& tar -xJf node-v12.2.0-linux-x64.tar.xz -C /usr/local --strip-components=1 \
|
||||||
&& rm node-v12.2.0-linux-x64.tar.xz
|
&& rm node-v12.2.0-linux-x64.tar.xz
|
||||||
#ADD permet d'ajouter des fichiers locaux ou distants à l'intérieur de votre image, il est le plus souvent utilisé pour importer les sources de votre projet ou des fichiers de configuration.
|
#copy permet d'ajouter des fichiers locaux ou distants à l'intérieur de votre image, il est le plus souvent utilisé pour importer les sources de votre projet ou des fichiers de configuration.
|
||||||
ADD package.json /app/
|
COPY package.json /app/
|
||||||
|
|
||||||
#WORKDIR permet de changer le répertoire courant de votre image, toutes les commandes qui suivront seront exécutées à partir de ce répertoire.
|
#WORKDIR permet de changer le répertoire courant de votre image, toutes les commandes qui suivront seront exécutées à partir de ce répertoire.
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
RUN npm install
|
RUN npm install
|
||||||
#ajoute le répertoire a projet a l'image
|
#ajoute le répertoire a projet a l'image
|
||||||
ADD . /app/
|
COPY . /app/
|
||||||
|
#ADD permet de rcupérer des source depuis un url ou d'extraire une archive
|
||||||
#EXPOSE et VOLUME permettent respectivement d'indiquer quel port et quel dossier nous souhaitons partager.
|
#EXPOSE et VOLUME permettent respectivement d'indiquer quel port et quel dossier nous souhaitons partager.
|
||||||
EXPOSE 3000
|
EXPOSE 3000
|
||||||
|
|
||||||
VOLUME /app/log
|
VOLUME /app/log
|
||||||
|
|
||||||
|
#USER permet de selectionner kl'utilisateur qui lancera le service
|
||||||
|
#ENTRYPOINT ["executable", "param1", "param2"] sets the command and parameters that will be executed first when a container is run.
|
||||||
|
|
||||||
#instruction qui doit s'exécuter au lancement du conteneur
|
#instruction qui doit s'exécuter au lancement du conteneur
|
||||||
CMD node server.js
|
CMD node server.js
|
||||||
```
|
```
|
||||||
@ -58,4 +62,62 @@ CMD node server.js
|
|||||||
le .dockerignore permet comme un .gitignore de ne pas inclure certain fichiers dans l'image Docker,
|
le .dockerignore permet comme un .gitignore de ne pas inclure certain fichiers dans l'image Docker,
|
||||||
|
|
||||||
- lancer la build du fichier: `docker build -t nomducontainer .`
|
- lancer la build du fichier: `docker build -t nomducontainer .`
|
||||||
- -t permet de nommer votre image docker,
|
- -t permet de nommer l'image docker
|
||||||
|
|
||||||
|
## docker compose
|
||||||
|
|
||||||
|
permet de gérer plusieur container ensemble (IaS)
|
||||||
|
exemple de fichier de confid en yaml:
|
||||||
|
```
|
||||||
|
version: 3
|
||||||
|
|
||||||
|
services:
|
||||||
|
#1 container postgress avec son image et ces variable d'environement
|
||||||
|
postgres:
|
||||||
|
image: postgres:10
|
||||||
|
environment:
|
||||||
|
POSTGRES_USER: rails_user
|
||||||
|
POSTGRES_PASSWORD: rails_password
|
||||||
|
POSTGRES_DB: rails_db
|
||||||
|
|
||||||
|
redis:
|
||||||
|
image: redis:3.2-alpine
|
||||||
|
|
||||||
|
rails:
|
||||||
|
#lance une build en fontion du dockerfile locale
|
||||||
|
build: .
|
||||||
|
#n'est construit que lorsque les dependance dont ok
|
||||||
|
#depends_on crée un pointage au sein du réseau créé par Docker entre conteneur
|
||||||
|
depends_on:
|
||||||
|
- postgres
|
||||||
|
- redis
|
||||||
|
environment:
|
||||||
|
DATABASE_URL: 'postgres://rails_user:rails_password@postgres:5432/rails_db'
|
||||||
|
REDIS_HOST: 'redis:6379'
|
||||||
|
#monte le répertoire local sur /app
|
||||||
|
volumes:
|
||||||
|
- .:/app
|
||||||
|
|
||||||
|
nginx:
|
||||||
|
image: nginx:latest
|
||||||
|
links:
|
||||||
|
- rails
|
||||||
|
ports:
|
||||||
|
- 3000:80
|
||||||
|
#on ne monte ici que un fichier de configuration
|
||||||
|
volumes:
|
||||||
|
- ./nginx.conf:/etc/nginx/conf.d/default.conf:ro
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
- `docker-compose up` démarre les services décrits dans docker-compose.yml et ne rend pas la main.
|
||||||
|
- `docker-compose up -d` fait la même chose mais rend la main une fois que les services sont démarrés.
|
||||||
|
- `docker-compose up –build` reconstruit les services avant de les lancer.
|
||||||
|
- `docker-compose down` stoppe les services.
|
||||||
|
- `docker-compose restart` redémarre l’ensemble des services.
|
||||||
|
- `docker-compose restart nginx` redémarre un des service (ici nginx).
|
||||||
|
- `docker-compose exec rails bash` fournit une console bash au sein du conteneur rails.
|
||||||
|
- `docker-compose logs` retourne l’ensemble des logs des services depuis le dernier démarrage et rend la main.
|
||||||
|
- `docker-compose logs -f` affiche les logs des services et continue à les « écouter » sansrendre la main.
|
||||||
|
- `docker-compose logs -f rails` fait la même chose pour le conteneur rails uniquement.
|
||||||
|
Reference in New Issue
Block a user