Corrigé Du TP Docker
Corrigé Du TP Docker
Corrigé du TP Docker
Travail à réaliser :
Dans ce TP, il est demandé de réaliser les manipulations suivantes en utilisant un outil
de conteneurisation comme Docker.
1. Créer un conteneur (nommé mongodb-service) pour la base de données
MongoDB en instanciant l’image officielle mongo.
# phase 2
FROM nginx:1.23.2-alpine as production
ENV NODE_ENV production
COPY --from=builder /app/build /usr/share/nginx/html
COPY --from=builder /app/nginx/nginx.conf /etc/nginx/conf.d/default.conf
EXPOSE 80
version: '3.8'
services:
mongodb-service:
image: mongo:5.0
container_name: mongodb-service
ports:
- 27017:27017
networks:
- appnetwork
volumes:
- dbvol:/data/db
- dbvolconfig:/data/configdb
backend:
image: dall49/backend:1.0.0
container_name: backend
ports:
- 5000:5000
networks:
- appnetwork
depends_on:
- mongodb-service
frontend:
image: dall49/frontend:1.0.0
container_name: frontend
ports:
- 3000:80
networks:
- appnetwork
depends_on:
- backend
volumes:
dbvol:
driver: local
dbvolconfig:
driver: local
networks:
appnetwork:
driver: bridge
Développement des Applications et Services Cloud
Filière : SUD Semestre : 4 Année universitaire : 2022/2023
Prof. Driss ALLAKI
10. Supprimer les conteneurs qui s’exécutent ainsi que les images se trouvant dans
le docker host.
11. Créer un registre privé d’images docker en local qui vous permettra de :
a. Stocker les images que vous avez construites.
b. Visualiser via une UI les images qu’il contient.
private_registry.yml
version: '3.8'
services:
registry:
image: registry:2
container_name: registry
ports:
- "5001:5000"
restart: always
volumes:
- "./registry-config/regconfig.yml:/etc/docker/registry/config.yml"
- "/mnt/registry:/var/lib/registry"
networks:
Développement des Applications et Services Cloud
Filière : SUD Semestre : 4 Année universitaire : 2022/2023
Prof. Driss ALLAKI
- reg-network
docker-registry-ui:
image: joxit/docker-registry-ui
container_name: reg-ui
depends_on:
- registry
ports:
- "9070:80"
environment:
- REGISTRY_URL=http://localhost:5001
- REGISTRY_TITLE=local registry
- REGISTRY_PROTOCOL=http
- SINGLE_REGISTRY=true
networks:
- reg-network
networks:
reg-network:
reconfig.yml
version: 0.1
log:
fields:
service: registry
storage:
delete:
enabled: true
cache:
blobdescriptor: inmemory
filesystem:
rootdirectory: /var/lib/registry
http:
addr: :5000
headers:
X-Content-Type-Options: [nosniff]
Access-Control-Allow-Origin: ['http://localhost:9070']
Access-Control-Allow-Methods: ['HEAD', 'GET', 'OPTIONS', 'DELETE']
Access-Control-Allow-Headers: ['Authorization', 'Accept']
Access-Control-Max-Age: [1728000]
Access-Control-Allow-Credentials: [true]
Access-Control-Expose-Headers: ['Docker-Content-Digest']
version: '3.8'
services:
mongodb-service:
image: localhost:5001/mongo
container_name: mongodb-service
ports:
- 27017:27017
networks:
- appnetwork
volumes:
- dbvol:/data/db
- dbvolconfig:/data/configdb
backend:
image: localhost:5001/backend:1.0.0
container_name: backend
ports:
- 5000:5000
networks:
- appnetwork
depends_on:
- mongodb-service
frontend:
image: localhost:5001/frontend:1.0.0
container_name: frontend
ports:
- 3000:80
networks:
- appnetwork
depends_on:
- backend
volumes:
dbvol:
dbvolconfig:
networks:
appnetwork:
driver: bridge