Compare commits
4
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
241a4fbe38 | ||
|
|
d9931bd74b | ||
|
|
9aafaa623a | ||
|
|
f6a873c954 |
@@ -1,2 +0,0 @@
|
|||||||
FROM nginx:1.19
|
|
||||||
COPY index.html /usr/share/nginx/html/index.html
|
|
||||||
@@ -1,107 +0,0 @@
|
|||||||
# DOCKER
|
|
||||||
|
|
||||||
Une simple Dockerfile contenant un NGINX 1.19 pouvant accueillir un site web.
|
|
||||||
|
|
||||||
## PROCESSUS
|
|
||||||
|
|
||||||
### INSTALLATION DE DOCKER (DEBIAN 10):
|
|
||||||
|
|
||||||
```bash
|
|
||||||
sudo apt-get update
|
|
||||||
|
|
||||||
sudo apt-get install \
|
|
||||||
apt-transport-https \
|
|
||||||
ca-certificates \
|
|
||||||
curl \
|
|
||||||
gnupg \
|
|
||||||
lsb-release
|
|
||||||
|
|
||||||
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
|
|
||||||
|
|
||||||
echo \
|
|
||||||
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \
|
|
||||||
$(lsb_release -cs) 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 -y
|
|
||||||
```
|
|
||||||
|
|
||||||
### CREER UN COMPTE SUR DOCKER HUB:
|
|
||||||
|
|
||||||
https://hub.docker.com
|
|
||||||
|
|
||||||
* clonage du repo Docker:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
sudo git clone https://github.com/GregLebreton/docker.git
|
|
||||||
```
|
|
||||||
|
|
||||||
### CONSTRUCTION DE L'IMAGE:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
docker build .
|
|
||||||
```
|
|
||||||
|
|
||||||
### TAG DE L'IMAGE:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
docker tag <ID_de_l'image> <nom_de_votre_registre>/<nom_de_l'image>:<tag>
|
|
||||||
```
|
|
||||||
|
|
||||||
* ou on peux tagger l'image lors du docker run:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
docker run -d -p 80:80 -t <nom_de_l_image_docker>:<tag_de_l_image>
|
|
||||||
```
|
|
||||||
|
|
||||||
### DEMARRER UN CONTENAIRE DE L'IMAGE EN Y MAPPANT LE PORT 80 DE LA MACHINE HÔTE:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
docker run -d -p 7000:80 <nom_de_votre_registre>/<nom_de_l'image>:<tag>
|
|
||||||
```
|
|
||||||
|
|
||||||
### VISITER SON NAVIGATEUR A L'ADRESSE:
|
|
||||||
|
|
||||||
http://localhost:7000
|
|
||||||
|
|
||||||
### TIPS:
|
|
||||||
|
|
||||||
* Docker sans sudo:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
sudo groupadd -f docker
|
|
||||||
sudo chown root:docker /var/run/docker.sock
|
|
||||||
sudo usermod -a -G docker "$(whoami)"
|
|
||||||
newgrp docker
|
|
||||||
sudo systemctl restart docker
|
|
||||||
```
|
|
||||||
|
|
||||||
* Autres commandes utiles:
|
|
||||||
|
|
||||||
- push un conteneur sur son registre DockerHub:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
docker push
|
|
||||||
```
|
|
||||||
- afficher les images docker:
|
|
||||||
```bash
|
|
||||||
docker ps
|
|
||||||
```
|
|
||||||
- afficher les containers docker:
|
|
||||||
```bash
|
|
||||||
docker ls
|
|
||||||
```
|
|
||||||
- Effacer une image:
|
|
||||||
```bash
|
|
||||||
docker rmi
|
|
||||||
```
|
|
||||||
- Effacer un conteneur:
|
|
||||||
```bash
|
|
||||||
docker rm
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
# DOCKER REGISTRE AVEC UI
|
||||||
|
|
||||||
|
Ce projet a pour but d'instancier un registre Docker sécurisé par mot de passe et
|
||||||
|
accessible via une UI. Votre Docker Hub!
|
||||||
|
|
||||||
|
### CREATION D'UN PASSWORD:
|
||||||
|
|
||||||
|
Ici, remplacer testuser et testpassword par le nom d'utilisateur et le mot de passe désiré.
|
||||||
|
```sh
|
||||||
|
sudo apt-get install apache2-utils
|
||||||
|
htpasswd -Bbn testuser testpassword > registry-config/htpasswd
|
||||||
|
```
|
||||||
|
|
||||||
|
### LANCER LA STACK
|
||||||
|
```sh
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
### SE CONNECTER A L'ADRESSE:
|
||||||
|
http://locahost:8087
|
||||||
|
|
||||||
|
### POUSSER UNE IMAGE:
|
||||||
|
|
||||||
|
Login au docker registry (nécessaire une fois):
|
||||||
|
```sh
|
||||||
|
docker login localhost:5000
|
||||||
|
```
|
||||||
|
|
||||||
|
Entrer l'utilisateur et le mot de passe créés plus tôt, puis:
|
||||||
|
```sh
|
||||||
|
docker tag localhost/mon_image:tag
|
||||||
|
docker push localhost/mon_image:tag
|
||||||
|
```
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
version: '3.8'
|
||||||
|
|
||||||
|
services:
|
||||||
|
registry-ui:
|
||||||
|
image: joxit/docker-registry-ui:main
|
||||||
|
container_name: registry-ui
|
||||||
|
restart: always
|
||||||
|
ports:
|
||||||
|
- 8087:80
|
||||||
|
environment:
|
||||||
|
- SINGLE_REGISTRY=true
|
||||||
|
- REGISTRY_TITLE=Docker Registry UI
|
||||||
|
- DELETE_IMAGES=true
|
||||||
|
- SHOW_CONTENT_DIGEST=true
|
||||||
|
- NGINX_PROXY_PASS_URL=http://registry:5000
|
||||||
|
- SHOW_CATALOG_NB_TAGS=true
|
||||||
|
- CATALOG_MIN_BRANCHES=1
|
||||||
|
- CATALOG_MAX_BRANCHES=1
|
||||||
|
- TAGLIST_PAGE_SIZE=100
|
||||||
|
- REGISTRY_SECURED=false
|
||||||
|
- CATALOG_ELEMENTS_LIMIT=1000
|
||||||
|
networks:
|
||||||
|
- registry-ui-net
|
||||||
|
|
||||||
|
registry:
|
||||||
|
image: registry:2.8.2
|
||||||
|
container_name: registry
|
||||||
|
restart: always
|
||||||
|
environment:
|
||||||
|
REGISTRY_HTTP_HEADERS_Access-Control-Origin: '[http://registry.example.com]'
|
||||||
|
REGISTRY_HTTP_HEADERS_Access-Control-Allow-Methods: '[HEAD,GET,OPTIONS,DELETE]'
|
||||||
|
REGISTRY_HTTP_HEADERS_Access-Control-Credentials: '[true]'
|
||||||
|
REGISTRY_HTTP_HEADERS_Access-Control-Allow-Headers: '[Authorization,Accept,Cache-Control]'
|
||||||
|
REGISTRY_HTTP_HEADERS_Access-Control-Expose-Headers: '[Docker-Content-Digest]'
|
||||||
|
REGISTRY_STORAGE_DELETE_ENABLED: 'true'
|
||||||
|
volumes:
|
||||||
|
- ./registry/data:/var/lib/registry
|
||||||
|
- ./registry/config:/etc/docker/registry
|
||||||
|
networks:
|
||||||
|
- registry-ui-net
|
||||||
|
|
||||||
|
networks:
|
||||||
|
registry-ui-net:
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
<html>
|
|
||||||
<title>Hello Docker</title>
|
|
||||||
<p>Hello le Garage numerique!</p>
|
|
||||||
</html>
|
|
||||||
|
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
version: 0.1
|
||||||
|
log:
|
||||||
|
fields:
|
||||||
|
service: registry
|
||||||
|
storage:
|
||||||
|
delete:
|
||||||
|
enabled: true
|
||||||
|
cache:
|
||||||
|
blobdescriptor: inmemory
|
||||||
|
filesystem:
|
||||||
|
rootdirectory: /var/lib/registry
|
||||||
|
maintenance:
|
||||||
|
uploadpurging:
|
||||||
|
enabled: true
|
||||||
|
age: 168h
|
||||||
|
interval: 24h
|
||||||
|
dryrun: false
|
||||||
|
readonly:
|
||||||
|
enabled: false
|
||||||
|
http:
|
||||||
|
addr: :5000
|
||||||
|
headers:
|
||||||
|
X-Content-Type-Options: [nosniff]
|
||||||
|
Access-Control-Allow-Origin: ['http://127.0.0.1:8000']
|
||||||
|
Access-Control-Allow-Credentials: [true]
|
||||||
|
Access-Control-Allow-Methods: ['HEAD', 'GET', 'OPTIONS', 'DELETE']
|
||||||
|
Access-Control-Allow-Headers: ['Authorization', 'Accept', 'Cache-Control']
|
||||||
|
Access-Control-Max-Age: [1728000]
|
||||||
|
Access-Control-Allow-Credentials: [true]
|
||||||
|
Access-Control-Expose-Headers: ['Docker-Content-Digest']
|
||||||
|
auth:
|
||||||
|
htpasswd:
|
||||||
|
realm: basic-realm
|
||||||
|
path: /etc/docker/registry/htpasswd
|
||||||
|
health:
|
||||||
|
storagedriver:
|
||||||
|
enabled: true
|
||||||
|
interval: 10s
|
||||||
|
threshold: 3
|
||||||
Reference in New Issue
Block a user