Skip navigation

Docker : prise en main

Démarrer avec Docker

Liste des commandes courantes

Option Description
docker build . Construit le container à partir de dockerfile présent dans le dossier courant « . »
docker attach container-id ou container-name Entrer dans le container. Exemple : docker attach f7930f8da018, docker attach httpd
docker exec container-id/name command Execute une commande dans de container depuis l’hôte. Exemple : docker exec -it f7930f8da018 /bin/bash
docker history container-image-name Affiche l’historique de l’image. Exemple : docker history hello-world
docker images Liste les images présentent localement
docker info Information sur le daemon docker
docker inspect container:version Information sur le container passé en paramètre. Exemple : docker inspect here:latest
docker logs container-id/name Affiche les logs du container passé en paramètre
docker ps Lister les containers actifs
docker ps -a Lister tous containers
docker rm container-id/name Suprime le container passé en paramètre. Exemple : docker rm f7930f8da018 ou docker rm
httpd
docker rmi container-id/name Supprime l’image passé en paramètre. Exemple : docker rmi 0fc032ede28c
docker run debian Lance le container passé en paramètre
docker search –stars=10 debian Cherche une image passée en paramètre avec un filter à 10 étoiles
docker search debian Cherche une image passée en paramètre
docker start container-id/name Démarre le container passé en paramètre. Exemple : docker start f7930f8da018 ou docker start httpd
docker stop container-id/name Stop le container passé en paramètre. Exemple : docker stop f7930f8da018 ou docker stop httpd
docker volume create volume-name Crée le volume passé en paramètre. Exemple : docker volume create www-vol
docker volume inspect volume-name Information sur le volume passé en paramètre. Exemple : docker volume inspect www-vol
docker volume ls Liste tous les volumes présent sur l’hôte.

: pour l’installation de docker voirinstaller de docker sur Debian 9 et installer docker sur CentOS 7.

Lancer son premier docker.

[root@cent-os ~]#: docker run hello-world

sortie

Unable to find image 'hello-world:latest' locally
Trying to pull repository docker.io/library/hello-world ...
latest: Pulling from docker.io/library/hello-world
9bb5a5d4561a: Pull complete
Digest: sha256:f5233545e43561214ca4891fd1157e1c3c563316ed8e237750d59bde73361e77
Status: Downloaded newer image for docker.io/hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/engine/userguide/

: l’image n’a pas été trouvé localement, par conséquent elle est téléchargé depuis docker.io.

Lister les images présent sur l’hôte.

[root@cent-os ~]#: docker images

sortie

REPOSITORY              TAG                 IMAGE ID            CREATED             SIZE
docker.io/hello-world   latest              e38bc07ac18e        5 days ago          1.85 kB

Lancer un container Ubuntu et lancer bash en mode intéractive.

[root@cent-os ~]#: docker run -it ubuntu bash

sortie

Unable to find image 'ubuntu:latest' locally
Trying to pull repository docker.io/library/ubuntu ...
latest: Pulling from docker.io/library/ubuntu
d3938036b19c: Pull complete
a9b30c108bda: Pull complete
67de21feec18: Pull complete
817da545be2b: Pull complete
d967c497ce23: Pull complete
Digest: sha256:9ee3b83bcaa383e5e3b657f042f4034c92cdd50c03f73166c145c9ceaea9ba7c
Status: Downloaded newer image for docker.io/ubuntu:latest
root@f6fc0c9f3456:/#

Comme précédement, l’image n’était pas présente localement, d’où le téléchargement. La commande docker images montre que l’image est bien présente localement.

[root@cent-os ~]#: docker images

sortie

REPOSITORY              TAG                 IMAGE ID            CREATED             SIZE
docker.io/ubuntu        latest              c9d990395902        4 days ago          113 MB
docker.io/hello-world   latest              e38bc07ac18e        5 days ago          1.85 kB

Lancer le container Ubuntu comme précédent est maintenant instantané.

[root@cent-os ~]#: docker run -it ubuntu bash

sortie

root@c9d990395902:/#

Lister les containers actifs.

[root@cent-os ~]#: docker ps

sortie

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
dcf2bb82632d        ubuntu              "/bin/bash"         4 minutes ago       Up 4 minutes                            relaxed_pasteur

Lister tous les containers (actifs ou non).

[root@cent-os ~]#: docker ps -a

sortie

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                            PORTS               NAMES
c64c9dea861e        ubuntu              "bash"              2 minutes ago       Exited (127) About a minute ago                       practical_minsky
a3482aed83ae        ubuntu              "/bin/bash"         3 minutes ago       Exited (0) 3 minutes ago                              hungry_allen
dcf2bb82632d        ubuntu              "/bin/bash"         5 minutes ago       Up 5 minutes                                          relaxed_pasteur
[…]

Dockerfile

Créer un dockerfile basic avec apache2.

[root@cent-os ~]#: vim dockerfile

contenu du fichier

FROM debian:stretch
MAINTAINER Nicolas <stan@mail.local>
RUN apt update
RUN apt install -y apache2
COPY bashrc /root/.bashrc
COPY apache2.conf /etc/apache2/conf/apache2.conf
COPY service_start.sh /home/docker/script/service_start-stretch.sh
COPY dockerfile /home/docker
RUN chmod 744 /home/docker/script/service_start-stretch.sh
WORKDIR /home/docker
VOLUME ["/vol_var-www-html"]
ENTRYPOINT /home/docker/script/service_start-stretch.sh

La syntaxe.
FROM : la base du container.
MAINTAINER : le nom du créateur.
RUN : command à exécuter.
COPY : copie un fichier de l’hôte vers le container.
ADD : copie un fichier de l’hôte vers le container, la source peut être une URL. COPY est préféré à ADD tant que possible.
CMD : lance une commande.
ENTRYPOINT : le script à exécuter lors du démmarrage du container.
WORKDIR : le dossier dans lequel se « logger »

Construire l’images.

[root@cent-os ~]#: docker build --tag docker-httpd:v1 .

: le dockerfile est dans le dossier courant. L’option tag permet de donner un nom à l’image.

sortie

Sending build context to Docker daemon  15.36kB
Step 1/12 : FROM debian:stretch
stretch: Pulling from library/debian
c73ab1c6897b: Pull complete
Digest: sha256:c908a4fcb2b2a1953bd40ebc12d9a4116868d72540efc27502ee6c2395b8a1e9
Status: Downloaded newer image for debian:stretch
 ---> 2b98c9851a37
Step 2/12 : MAINTAINER Nicolas <stan@mail.local>
[…]
Removing intermediate container 875dd6038974
 ---> 2f99b4cf171c
Step 10/12 : WORKDIR /home/docker
Removing intermediate container 736e7b989abc
 ---> 3c8fb6bf00db
Step 11/12 : VOLUME ["/vol_var-www-html"]
 ---> Running in f35ae0392f46
Removing intermediate container f35ae0392f46
 ---> 4bffa8f41ff8
Step 12/12 : ENTRYPOINT /home/docker/script/service_start-stretch.sh
 ---> Running in cff9449e9cb5
Removing intermediate container cff9449e9cb5
 ---> 4b071d03f26f
Successfully built 4b071d03f26f

Lancer ce container en exposant le port 80 du container sur le port 80 de l’hôte.

[root@cent-os ~]#: docker run --name httpd -itd -p 80:80 here /bin/bash

sortie

3b58b3c4f540397aa25c9523a4e003527c1d5c7b85da346df6c0be6f498fba13

Quelques commande explicites

by | April 18, 2018 | No Comments | Système | Tags : container docker


Laisser un commentaire

Votre email ne sera pas publié. Required fields are marked*