Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
docpublic:systemes:docker_linux [2024/12/07 21:05]
adminjp [install packages]
docpublic:systemes:docker_linux [2024/12/08 13:24] (current)
adminjp [Run docker compose & file www site]
Line 8: Line 8:
   * https://docs.docker.com/engine/install/debian/   * https://docs.docker.com/engine/install/debian/
   * https://belginux.com/installer-docker-sous-debian-12/   * https://belginux.com/installer-docker-sous-debian-12/
 +  * https://cours.brosseau.ovh/cheatsheets/serveur/debian-docker.html
 +  * https://earthly.dev/blog/docker-image-storage-on-host/
 +  * https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-debian-10
 +  * https://iximiuz.com/en/posts/oci-containers/
 +
  
  
 ==== install packages ==== ==== install packages ====
  
 +d'abord une mise a jour des repos 
 <code> <code>
 root@debL74:~# apt-get update root@debL74:~# apt-get update
 </code> </code>
 +
 +==== clean old docker ====
  
 retrait d'eventuels anciennes installations docker deprecated  retrait d'eventuels anciennes installations docker deprecated 
Line 39: Line 47:
 </code> </code>
  
-install docker +==== install docker ==== 
  
 <code> <code>
Line 76: Line 84:
 This message shows that your installation appears to be working correctly. This message shows that your installation appears to be working correctly.
 </code> </code>
 +
 +
 +==== service ====
 +
 +<code>
 +root@debL74# service docker status
 +● docker.service - Docker Application Container Engine
 +     Loaded: loaded (/lib/systemd/system/docker.service; enabled; preset: enabled)
 +     Active: active (running) since Sat 2024-12-07 23:03:23 CET; 3min 25s ago
 +TriggeredBy: ● docker.socket
 +       Docs: https://docs.docker.com
 +   Main PID: 939669 (dockerd)
 +      Tasks: 14
 +     Memory: 31.2M
 +        CPU: 598ms
 +     CGroup: /system.slice/docker.service
 +             └─939669 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
 +</code>
 +
 +<code>
 +
 +root@debL74# systemctl status containerd.service
 +● containerd.service - containerd container runtime
 +     Loaded: loaded (/lib/systemd/system/containerd.service; enabled; preset: enabled)
 +     Active: active (running) since Sat 2024-12-07 23:03:21 CET; 21min ago
 +       Docs: https://containerd.io
 +   Main PID: 939538 (containerd)
 +      Tasks: 13
 +     Memory: 62.1M
 +        CPU: 1.955s
 +     CGroup: /system.slice/containerd.service
 +             └─939538 /usr/bin/containerd
 +             
 +root@debL74# docker compose version
 +Docker Compose version v2.29.7
 +</code>
 +==== user group docker ====
 +
 +
 +pour qu'une utilisateur non privilegier puisse lancer des CT docker il faut qu'il ai des privileges qu'il acquiere en appartenant au groupe docker, root le promote dans ce groupe 
 +
 +<code>
 +root@debL74# usermod -aG docker jehan
 +</code>
 +
 +le user rafraichit son environement 
 +
 +<code>
 +jehan@debL74$ su - jehan
 +jehan@debL74$ id
 +uid=1005(jehan) gid=1005(jehan) groupes=1005(jehan),100(users),994(docker)
 +</code>
 +
 +
 +==== commande de base user ====
 +
 +<code>
 +jehan@debL74$ docker ps
 +CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
 +jehan@debL74$ docker image ls
 +REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
 +hello-world   latest    d2c94e258dcb   19 months ago   13.3kB
 +jehan@debL74$ docker run hello-world
 +
 +Hello from Docker!
 +</code>
 +
 +rechercher une distribution linux 
 +
 +<code>
 +jehan@debL74$ docker search almalinux
 +NAME                          DESCRIPTION                                     STARS     OFFICIAL
 +almalinux/almalinux           DEPRECATION NOTICE: This image is deprecated…           
 +almalinux                     The official build of AlmaLinux OS.             176       [OK]
 +almalinux/8-base              AlmaLinux OS 8 official base image              1         
 +almalinux/9-base              AlmaLinux 9 Base container image                0         
 +...
 +<code>
 +
 +
 +recuperation de la distribution Linux 
 +
 +<code>
 +jehan@debL74-14212:~$ docker pull ubuntu
 +Using default tag: latest
 +latest: Pulling from library/ubuntu
 +de44b265507a: Pull complete 
 +Digest: sha256:80dd3c3b9c6cecb9f1667e9290b3bc61b78c2678c02cbdae5f0fea92cc6734ab
 +Status: Downloaded newer image for ubuntu:latest
 +docker.io/library/ubuntu:latest
 +</code>
 +
 +
 +==== docker image store ====
 +
 +<code>
 +jehan@debL74$ docker image list 
 +REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
 +ubuntu        latest    b1d9df8ab815   2 weeks ago     78.1MB
 +hello-world   latest    d2c94e258dcb   19 months ago   13.3kB
 +jehan@debL74$ docker inspect --format='{{json .RootFS}}' b1d9df8ab815 | jq
 +{
 +  "Type": "layers",
 +  "Layers": [
 +    "sha256:687d50f2f6a697da02e05f2b2b9cb05c1d551f37c404ebe55fdec44b0ae8aa5c"
 +  ]
 +}
 +
 +</code>
 +
 +=== image file location ===
 +
 +<code>
 +jehan@debL74$ docker info | grep -i "Storage Driver"
 + Storage Driver: overlay2
 +jehan@debL74$ docker info | grep "Root Dir"
 +WARNING: bridge-nf-call-iptables is disabled
 + Docker Root Dir: /var/lib/docker
 +</code>
 +
 +
 +<code>
 +root@debL74-14212:~# du -sm /var/lib/docker/overlay2/df3026f153ed2fb49308f8124adf41b81dcc48384a1497a28ff445bffbd89782/*
 +84 /var/lib/docker/overlay2/df3026f153ed2fb49308f8124adf41b81dcc48384a1497a28ff445bffbd89782/diff
 +1 /var/lib/docker/overlay2/df3026f153ed2fb49308f8124adf41b81dcc48384a1497a28ff445bffbd89782/link
 +</code>
 +
 +
 +==== run interactive terminal (-it) ====
 +
 +pour lancer notre image ubuntu et en instancier un container (CT) avec un shell interactif oouvert :
 +
 +<code>
 + jehan@debL74$ docker run -it ubuntu
 +root@c3b25bd7fa19:/# cat /etc/os-release 
 +PRETTY_NAME="Ubuntu 24.04.1 LTS"
 +NAME="Ubuntu"
 +VERSION_ID="24.04"
 +VERSION="24.04.1 LTS (Noble Numbat)"
 +</code>
 +
 +
 +==== docker compose ====
 +
 +monter une image mysql + phpMyAdmin avec un compose file en yaml 
 +
 +<code>
 +jehan@debL74:~/Docker$ cat ./docker-compose-mysql1.yml
 +services:
 +  db:
 +    image: mysql:8
 +    container_name: db
 +    restart: always
 +    environment:
 +      - MYSQL_USER=user
 +      - MYSQL_PASSWORD=user-secret
 +      - MYSQL_ROOT_PASSWORD=root-secret
 +    volumes:
 +      - ~/mysql-data:/var/lib/mysql
 +    ports:
 +      - 3306:3306
 +
 +  phpmyadmin:
 +    image: phpmyadmin
 +    container_name: phpmyadmin
 +    restart: always
 +    environment:
 +      - PMA_HOST=db
 +      - PMA_PORT=3306
 +    ports:
 +      - 8081:80
 +    depends_on:
 +      - db
 +</code>
 +
 +
 +<code>
 +jehan@debL74-14212:~/Docker$ docker compose --file ./docker-compose-mysql1.yml up -d
 +[+] Running 31/2
 + ✔ db Pulled                                                                                                                                    26.4s 
 + ✔ phpmyadmin Pulled                                                                                                                            38.0s 
 +[+] Running 3/3
 + ✔ Network docker_default  Created                                                                                                               0.2s 
 + ✔ Container db            Started                                                                                                               0.6s 
 + ✔ Container phpmyadmin    Started   
 +</code>
 +
 +
 +<code>
 +jehan@debL74:~/Docker$ docker ps 
 +CONTAINER ID   IMAGE        COMMAND                  CREATED         STATUS         PORTS                                                  NAMES
 +355a0c9fc396   phpmyadmin   "/docker-entrypoint.…"   3 minutes ago   Up 3 minutes   0.0.0.0:8081->80/tcp, [::]:8081->80/tcp                phpmyadmin
 +0dc0c7d82738   mysql:     "docker-entrypoint.s…"   3 minutes ago   Up 3 minutes   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   db
 +</code>
 +
 +service phpMyAdmin consultable sur http://localhost:8081/
 +
 +==== build a dockerfile ====
 +
 +<code>
 +jehan@debL74:~/Docker$ cat ./dockerfile-phpjp1.dck 
 +FROM php:apache
 +RUN docker-php-ext-install pdo pdo_mysql mysqli
 +</code>
 +
 +
 +<code>
 +jehan@debL74:~/Docker$ docker build --file dockerfile-phpjp1.dck  .
 +[+] Building 33.8s (6/6) FINISHED                                                                                                      docker:default
 + => [internal] load build definition from dockerfile-phpjp1.dck                                                                                  0.1s
 + => => transferring dockerfile: 112B                                                                                                             0.0s
 + => [internal] load metadata for docker.io/library/php:apache                                                                                    1.3s
 + => [internal] load .dockerignore                                                                                                                0.0s
 + => => transferring context: 2B                                                                                                                  0.0s
 + => [1/2] FROM docker.io/library/php:apache@sha256:204de2d31416e176774b98217beb8e078a9f3b55306b370d6a9f1f470af5f306                             17.3s
 + => => resolve docker.io/library/php:apache@sha256:204de2d31416e176774b98217beb8e078a9f3b55306b370d6a9f1f470af5f306                              0.0s
 + => => sha256:8a64a27210ceb93ea27ca865c5cf246274ba43f2d36bc96e7b2271b0e68cd3e3 104.15MB / 104.15MB      
 +...
 +=> => extracting sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1                                                        0.0s
 + => [2/2] RUN docker-php-ext-install pdo pdo_mysql mysqli                                                                                       14.9s
 + => exporting to image                                                                                                                           0.1s
 + => => exporting layers                                                                                                                          0.1s
 + => => writing image sha256:3f716064cbf1786dc96ef9bc2ae7897e224ab1cb60cc7f812e9e7e58913b0368      
 +</code>
 +resultat, une image pas nomée "none" apparait 
 +
 +<code>
 +jehan@debL74:~/Docker$ docker image list 
 +REPOSITORY    TAG       IMAGE ID       CREATED          SIZE
 +<none>        <none>    3f716064cbf1   18 seconds ago   513MB
 +ubuntu        latest    b1d9df8ab815   2 weeks ago      78.1MB
 +mysql                 3818a28b4a67   7 weeks ago      594MB
 +phpmyadmin    latest    a590866d53f0   17 months ago    558MB
 +hello-world   latest    d2c94e258dcb   19 months ago    13.3kB
 +</code>
 +
 +<code>
 +jehan@debL74-14212:~/Docker$ docker tag 3f716064cbf1 php-apache/jp1
 +jehan@debL74-14212:~/Docker$ docker image list 
 +REPOSITORY       TAG       IMAGE ID       CREATED         SIZE
 +php-apache/jp1   latest    3f716064cbf1   4 minutes ago   513MB
 +</code>
 +
 +===== docker compose et dockerfile combiné www-site =====
 +
 +==== site DocumentRoot et content ====
 +
 +<code>
 +jehan@debL74-14212:~/Docker$ mkdir ~/Docker/dck-www-site
 +
 +jehan@debL74:~/Docker$ echo "<html><h3>docker web site JP1</h3></html>" | tee ./dck-www-site/index.html 
 +<html><h3>docker web site JP1</h3></html>
 +</code>
 +
 +==== DockerFile ====
 +
 +<code>
 +jehan@debL74:~/Docker$ cat dockerfile-phpjp1.dck
 +FROM php:apache
 +RUN docker-php-ext-install pdo pdo_mysql mysqli
 +</code>
 +
 +==== Docker compose projet www site ====
 +
 +<code>
 +jehan@debL74:~/Docker$ cat docker-compose-phpsitejp1.yml
 +services:
 +  php:
 +    build: 
 +      dockerfile: ./dockerfile-phpjp1.dck
 +    container_name: php
 +    restart: always
 +    volumes:
 +      - ~/Docker/dck-www-site:/var/www/html
 +    ports:
 +      - 9090:80
 +</code>
 +
 +==== Run docker compose & file www site ====
 +
 +instance de CT resultat de la combinaison du docker compose incluant le dockerfile ci-dessus
 +
 +<code>
 +jehan@debL74:~/Docker$ docker compose --file ./docker-compose-phpsitejp1.yml up -d
 +[+] Building 1.3s (7/7) FINISHED                                                                                                       docker:default
 + => [php internal] load build definition from dockerfile-phpjp1.dck                                                                              0.0s
 + => => transferring dockerfile: 112B                                                                                                             0.0s
 + => [php internal] load metadata for docker.io/library/php:apache                                                                                1.1s
 + => [php internal] load .dockerignore                                                                                                            0.0s
 + => => transferring context: 2B                                                                                                                  0.0s
 + => [php 1/2] FROM docker.io/library/php:apache@sha256:204de2d31416e176774b98217beb8e078a9f3b55306b370d6a9f1f470af5f306                          0.0s
 + => CACHED [php 2/2] RUN docker-php-ext-install pdo pdo_mysql mysqli                                                                             0.0s
 + => [php] exporting to image                                                                                                                     0.0s
 + => => exporting layers                                                                                                                          0.0s
 + => => writing image sha256:5c7cbcf942fd91e116d24dad0d4291035bb7570ab4b4666b2110787554a24c20                                                     0.0s
 + => => naming to docker.io/library/docker-php                                                                                                    0.0s
 + => [php] resolving provenance for metadata file                                                                                                 0.0s
 +WARN[0001] Found orphan containers ([phpmyadmin db]) for this project. If you removed or renamed this service in your compose file, you can run this command with the --remove-orphans flag to clean it up. 
 +[+] Running 1/1
 + ✔ Container php  Started                                                                                                                        0.5s 
 +jehan@debL74:~/Docker$ docker ps
 +CONTAINER ID   IMAGE        COMMAND                  CREATED          STATUS          PORTS                                     NAMES
 +b22bc9482808   docker-php   "docker-php-entrypoi…"   24 seconds ago   Up 23 seconds   0.0.0.0:9090->80/tcp, [::]:9090->80/tcp   php
 +</code>
 +
 +<code>
 +jehan@debL74:~/Docker$ docker exec -it b22bc9482808 bash
 +root@b22bc9482808:/var/www/html# ls
 +index.html
 +</code>
 +
 +==== consultation cliente ====
 +
 +http://localhost:9090/
 +
 +docker web site JP1
 +
 +
docpublic/systemes/docker_linux.1733605555.txt.gz · Last modified: 2024/12/07 21:05 by adminjp
[unknown link type]Back to top
CC Attribution-Noncommercial-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0