Maison > Article > Opération et maintenance > Maîtriser totalement l'utilisation des conteneurs d'apprentissage Docker
Cet article vous présente l'utilisation des conteneurs dans Docker. J'espère qu'il vous sera utile.
Exécuter un conteneur
Si vous souhaitez trouver une image existante, vous pouvez effectuer une recherche sur le Docker Hub public, où vous pouvez trouver son introduction et son utilisation, tout comme trouver une source open source sur les projets GitHub sont les mêmes.
Si vous utilisez Docker Hub pour la première fois, vous pouvez d'abord créer un compte et saisir ubuntu dans le champ de recherche supérieur. Le premier résultat trouvé est l'image officielle d'ubuntu. Cliquez dessus pour voir la page Figure ci-dessus. .
Cette page contient des informations de base et une introduction à l'utilisation de l'image. La commande docker pull ubuntu à droite est utilisée pour extraire l'image localement. Comme mentionné dans l'article précédent, lorsque nous instancions un conteneur, si Docker ne trouve pas l'image spécifiée localement, il la récupérera automatiquement. Nous pouvons donc l'exécuter directement localement :
docker run -i -t ubuntu /bin/bash
Cette commande est plus rapide que la précédente. L'exemple. la dernière fois a quelques paramètres supplémentaires, qui sont expliqués ci-dessous :
-je peux m'assurer que STDIN est activé dans le conteneur
-t attribuera un terminal pseudo-TTY au conteneur
ubuntu est le nom de l'image, qui équivaut à hello-world
/bin/bash dans l'exemple précédent est la commande à exécuter dans le conteneur après le démarrage
Les deux paramètres -i et -t peuvent faire le conteneur s'exécute. Après cela, nous pouvons interagir. Lorsque le conteneur est créé, Docker exécutera la commande /bin/bash dans le conteneur. Par conséquent, une fois le conteneur exécuté, notre terminal sera attaché au conteneur :
À ce moment, vous pouvez ouvrir un terminal. et entrez la commande docker ps pour afficher le conteneur démarré, les résultats sont les suivants :
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 402c5d3468d7 ubuntu "/bin/bash" 4 hours ago Up 4 hours reverent_wu
Cela affiche l'ID du conteneur, l'image, la dernière commande exécutée, l'heure de création, l'état et le nom. Le nom Reverent_wu ici est automatiquement généré par Docker. Si vous devez spécifier un nom lors de la création du conteneur, vous pouvez utiliser --name pour nommer le conteneur.
Au fond du conteneur
Dans l'état actuel, nous pouvons exécuter n'importe quelle commande prise en charge par le système Ubuntu dans le terminal attaché au conteneur. Par exemple, entrez la commande hostname et constatez que le nom d'hôte du conteneur est son ID de conteneur.
Ensuite, vous pouvez jeter un œil au fichier /etc/hosts :
root@402c5d3468d7:/# cat /etc/hosts 127.0.0.1 localhost ::1 localhost ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters 172.17.0.2 402c5d3468d7
Vous pouvez également essayer de visualiser le processus dans le conteneur vous-même, ou même utiliser apt-get pour installer le package.
Enfin, vous pouvez entrer la commande exit pour lancer le conteneur et revenir à l'invite de commande de l'hôte. Notez que lorsque vous exécutez docker ps à ce moment-là, vous constaterez que le conteneur Ubuntu que vous venez de créer ne figure plus dans la liste des conteneurs.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Lorsque nous sortons, le conteneur cesse de fonctionner. Cependant, le conteneur n'a pas été supprimé. Vous pouvez utiliser la commande docker ps -a pour afficher tous les conteneurs créés, que le conteneur soit démarré ou non :
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 402c5d3468d7 ubuntu "/bin/bash" 4 hours ago Exited (0) 2 minutes ago reverent_wu
À ce moment, son statut passe à Exited (0) il y a 2 minutes. , indiquant qu'il a été lancé il y a 2 minutes, le code d'état de sortie est 0, indiquant une sortie normale.
On peut redémarrer ce conteneur avec la commande suivante :
docker start 402c5d3468d7
Dans cette commande, docker start est suivi de l'ID du conteneur, ou le nom du conteneur peut également être utilisé. Une fois l'exécution réussie, vous pouvez voir que le conteneur est dans l'état de démarrage via la commande docker ps. Une fois le conteneur redémarré via la commande docker start, les paramètres spécifiés par la commande docker run seront utilisés, c'est-à-dire après. startup, /bin/bash sera exécuté pour démarrer un shell, mais nous n'avons pas entré la ligne de commande du conteneur. Vous pouvez entrer à nouveau via la commande docker attach :
docker attach 402c5d3468d7
À ce stade, vous pouvez continuer à exécuter des commandes dans le conteneur.
Si un conteneur n'est plus utilisé, vous pouvez utiliser la commande docker rm pour le supprimer.
docker rm 402c5d3468d7
Fournir des services continus
Le plus souvent, nous utilisons des conteneurs pour exécuter des applications et des services, et espérons qu'ils continueront à fournir des services en arrière-plan. À l'heure actuelle, nous devons utiliser le mode détaché (ou démon). mode) pour exécuter le conteneur. Ajoutez simplement un paramètre -d après l'exécution de Docker pour permettre au conteneur de s'exécuter en arrière-plan.
Ensuite, nous exécutons à nouveau un conteneur via la commande suivante :
docker run --name detached_mode -d ubuntu /bin/sh -c "while true; do echo Docker YYDS; sleep 1; done"
Cette fois, nous appelons le conteneur owned_mode, passons -d pour le laisser s'exécuter en mode détaché et exécutons un script toutes les 1 seconde Imprimons une ligne de Docker YYDS .
Comme il fonctionne en mode séparé, nous ne pouvons pas voir le contenu imprimé sur la ligne de commande après le démarrage. Mais vous pouvez voir le conteneur s'exécuter via la commande docker ps.
Si vous souhaitez l'empêcher de s'exécuter, vous pouvez utiliser la commande docker stop.
docker stop detached_mode
Vous pouvez également le redémarrer via la commande docker start, ou vous pouvez redémarrer le conteneur en cours d'exécution via docker restart.
L'état de fonctionnement du conteneur
在 detached_mode 容器运行的时候,可以通过 docker logs 命令获取容器的日志。也可以增加 -f 来持续监控日志,类似于 tail -f 命令。
docker logs -f detached_mode
此时就可以看到一直有 Docker YYDS 被打印。
除了监控容器的日志,也可以使用 docker top 命令,查看容器内的进程。
docker top detached_mode
使用 docker stats 命令,可以查看容器的CPU、内存、网络I/O、存储I/O的性能和指标。
另外,docker exec 命令可以在容器内部运行进程。
docker exec detached_mode cat /etc/hosts
以上命令可以让我们直接查看容器中的 hosts 文件的内容,如果需要运行一个后台进程,在指令后面增加 -d 参数就可以了。
容器的详细信息
使用 docker inspect 命令可以查看容器的详细信息,其结果是一个 JSON 结构,包含的信息非常丰富。可以通过 -f 或者 --format 来选定想要查看的部分。
docker inspect --format '{{ .NetworkSettings.IPAddress }}' detached_mode
执行以上的命令,只会在命令行展示容器的 IP 地址。
推荐学习:《docker视频教程》
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!