English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Le client Docker est très simple, nous pouvons directement entrer la commande docker pour voir toutes les options de commande du client Docker.
w3codebox@w3codebox:~# docker
Il est possible de passer la commande commande docker --help Pour une compréhension plus approfondie de la méthode d'utilisation spécifique des commandes Docker.
Par exemple, pour afficher docker stats Méthode d'utilisation spécifique de l'instruction :
w3codebox@w3codebox:~# docker stats --help
Si nous n'avons pas l'image ubuntu localement, nous pouvons utiliser la commande docker pull pour charger l'image ubuntu :
$ docker pull ubuntu
Les commandes suivantes utilisent l'image ubuntu pour démarrer un conteneur, le paramètre est d'entrer dans le conteneur en mode ligne de commande :
$ docker run -it ubuntu /bin/bash
Explication des paramètres :
-i: opérations interactives.
-t: terminal.
ubuntu: image ubuntu.
/bin/bash:Ce qui est placé après le nom de l'image est une commande, ici nous souhaitons avoir un Shell interactif, donc nous utilisons /bin/bash。
Pour quitter le terminal, entrez directement exit:
root@ed09e4490c57:/# exit
Voici la commande pour afficher tous les conteneurs :
$ docker ps -a
Cliquez sur l'image pour afficher la grande image :
Utilisez la commande docker start pour redémarrer un conteneur arrêté :
$ docker start b750bbbcfd88
Dans la plupart des scénarios, nous souhaitons que le service Docker fonctionne en arrière-plan, nous pouvons passer -d spécifie le mode de fonctionnement du conteneur.
$ docker run -itd --name ubuntu-test ubuntu /bin/bash
Cliquez sur l'image pour afficher la grande image :
Note :ajouté -Le paramètre d par défaut n'entrera pas dans le conteneur, pour entrer dans le conteneur, vous devez utiliser l'instruction docker exec(ci-après expliqué)。
La commande pour arrêter un conteneur est la suivante :
$ docker stop <ID du conteneur>
Les conteneurs arrêtés peuvent être redémarrés avec la commande docker restart :
$ docker restart <ID du conteneur>
lors de l'utilisation -d lors de l'exécution des paramètres, le conteneur entrera en arrière-plan après le lancement. Si vous souhaitez entrer dans le conteneur à ce moment-là, vous pouvez utiliser les instructions suivantes pour entrer :
docker attach
docker exec:Recommandons à tous d'utiliser la commande docker exec, car cette sortie du terminal du conteneur ne provoquera pas l'arrêt du conteneur.
Commande attach
Voici un exemple de démonstration de l'utilisation de la commande docker attach.
$ docker attach 1e560fca3906
Attention : Si vous quittez ce conteneur, cela entraînera l'arrêt du conteneur.
Commande exec
Voici un exemple de démonstration de l'utilisation de la commande docker exec.
docker exec -it 243c32535da7 /bin/bash
Attention : Si vous quittez ce conteneur, le conteneur ne s'arrêtera pas, c'est pourquoi il est recommandé d'utiliser docker exec pourquoi.
Pour plus de détails sur les paramètres, utilisez docker exec --Commande help pour voir.
Exporter le conteneur
Si vous souhaitez exporter un conteneur local, vous pouvez utiliser docker export Commande :
$ docker export 1e560fca3906 > ubuntu.tar
Exporter le conteneur 1e560fca3906 Capture vers le fichier local ubuntu.tar。
De cette manière, vous exporterez la capture de conteneur vers un fichier local.
Importer une capture de conteneur
Vous pouvez utiliser docker import pour importer à partir d'un fichier de capture de conteneur en tant qu'image, l'exemple suivant importe le fichier de capture ubuntu.tar dans l'image test/ubuntu:v1:
$ cat docker/ubuntu.tar | docker import - test/ubuntu:v1
De plus, vous pouvez également importer en spécifiant une URL ou un répertoire, par exemple :
$ docker import http://example.com/exampleimage.tgz example/imagerepo
Utilisation pour supprimer un conteneur docker rm Commande :
$ docker rm -f 1e560fca3906
Les commandes suivantes peuvent nettoyer tous les conteneurs en état de terminaison.
$ docker container prune
Le conteneur que nous avons exécuté précédemment n'a pas de fonction particulière.
Essayons maintenant de construire une application web en utilisant docker.
Nous allons exécuter une application Python Flask dans un conteneur docker pour exécuter une application web.
w3codebox@w3codebox:~# docker pull training/webapp # Charger l'image w3codebox@w3codebox:~# docker run -d -P training/webapp python app.py
Explication des paramètres:
-d:Laissez le conteneur s'exécuter en arrière-plan.
-P:Mappez les ports réseau internes du conteneur de manière aléatoire sur notre hôte.
使用 docker ps 来查看我们正在运行的容器:
w3codebox@w3codebox:~# docker ps CONTAINER ID IMAGE COMMAND ... PORTS d3d5e39ed9d3 training/webapp "python app.py" ... 0.0.0.0:32769->5000/tcp
webapp "python app.py" ... 0.0.0.0:
Il y a plus d'informations sur les ports ici. 0.0.0.0:32769->5000/tcp
PORTS 5Docker a ouvert 32769 000 port (port par défaut de Python Flask) est mappé sur le port de l'hôte
。
Nous pouvons également accéder à l'application WEB via le navigateur -p paramètre pour définir un port différent :
w3codebox@w3codebox:~$ docker run -d -p 5000:5000 training/webapp python app.py
docker psVoir les conteneurs en cours d'exécution
w3codebox@w3codebox:~# docker ps CONTAINER ID IMAGE PORTS NAMES bf08b7f2cd89 training/webapp ... 0.0.0.0:5000->5000/tcp wizardly_chandrasekhar d3d5e39ed9d3 training/webapp ... 0.0.0.0:32769->5000/tcp xenodochial_hoov
à l'intérieur du conteneur 5000 port est mappé sur notre hôte local 5000 port sur lequel l'application s'exécute.
par docker ps La commande permet de voir les mappages des ports du conteneur,docker Il fournit également un raccourci docker port,utilisez docker port Il est possible de voir un port spécifique (ID ou nom) du conteneur mappé au numéro de port de l'hôte.
Nous avons créé le conteneur d'application WEB ci-dessus avec l'ID bf08b7f2cd89 Le nom est wizardly_chandrasekhar.
Je peux utiliser docker port bf08b7f2cd89 ou docker port wizardly_chandrasekhar pour voir les mappages des ports du conteneur.
w3codebox@w3codebox:~$ docker port bf08b7f2cd89 5000/tcp -> 0.0.0.0:5000
w3codebox@w3codebox:~$ docker port wizardly_chandrasekhar 5000/tcp -> 0.0.0.0:5000
docker logs [ID ou nom] permet de voir la sortie standard à l'intérieur du conteneur.
w3codebox@w3codebox:~$ docker logs -f bf08b7f2cd89 * En cours d'exécution sur http://0.0.0.0:5000/ (Appuyez sur CTRL+C pour quitter) 192.168.239.1 - - [09/May/2016 16:30:37] "GET / HTTP/1.1" 200 - 192.168.239.1 - - [09/May/2016 16:30:37] "GET /favicon.ico HTTP/1.1" 404 -
-f: permet docker logs comme tail -f de la même manière pour afficher la sortie standard à l'intérieur du conteneur.
De haut en bas, nous pouvons voir que l'application utilise 5000 端口并且能够查看到应用程序的访问日志。
我们还可以使用 docker top 来查看容器内部运行的进程
w3codebox@w3codebox:~$ docker top wizardly_chandrasekhar UID PID PPID ... TIME CMD root 23245 23228 ... 00:00:00 python app.py
使用 docker inspect 来查看 Docker 的底层信息。它会返回一个 JSON 文件记录着 Docker 容器的配置和状态信息。
w3codebox@w3codebox:~$ docker inspect wizardly_chandrasekhar [ { "Id": "bf0"8b7f2cd897b5964943134aa6d373e355c286db9b9885b1f60b6e8f82b2b85, "Created": ""2018-09-17T01:41:26.174228707Z", "Path": "python", "Args": [ "app.py" ], "State": { "Status": "running", "Running": true, "Paused": false, "Restarting": false, "OOMKilled": false, "Dead": false, "Pid": 23245, "ExitCode": 0, "Error": "", "StartedAt": ""2018-09-17T01:41:26.494185806Z", "FinishedAt": "0001-01-01T00:00:00Z" } ......
w3codebox@w3codebox:~$ docker stop wizardly_chandrasekhar wizardly_chandrasekhar
已经停止的容器,我们可以使用命令 docker start 来启动。
w3codebox@w3codebox:~$ docker start wizardly_chandrasekhar wizardly_chandrasekhar
docker ps -l 查询最后一次创建的容器:
# docker ps -l CONTAINER ID IMAGE PORTS NAMES bf08b7f2cd89 training/webapp ... 0.0.0.0:5000->5000/tcp wizardly_chandrasekhar
Pour les conteneurs en cours d'exécution, nous pouvons utiliser la commande docker restart pour redémarrer.
Nous pouvons utiliser la commande docker rm pour supprimer les conteneurs inutiles
w3codebox@w3codebox:~$ docker rm wizardly_chandrasekhar wizardly_chandrasekhar
Lorsque vous supprimez un conteneur, le conteneur doit être en état arrêté, sinon vous recevrez l'erreur suivante
w3codebox@w3codebox:~$ docker rm wizardly_chandrasekhar Réponse d'erreur du démon : Vous ne pouvez pas supprimer un conteneur en cours d'exécution bf08b7f2cd897b5964943134aa6d373e355c286db9b9885b1f60b6e8f82b2b85Arrêter le conteneur avant de tenter de le supprimer ou de le supprimer强制