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 Nicolas SHINEY | April 18, 2018 | No Comments | Système | Tags : container docker