Annuaire d'articles
- 1. Présentation de Docker
- Deuxièmement, la différence entre Docker et une machine virtuelle
- Trois, technologie de base de conteneur
- Quatrièmement, le concept de base de Docker
- Cinq, installez Docker
- Six, opération d'image Docker
-
- 1. Rechercher des miroirs
- 2. Procurez-vous un miroir
- 3. Voir le miroir
- 4. Accélération miroir
- 5. Afficher les informations sur l'image
- 6. Modifier le nom et l'étiquette de l'image
- 7. Supprimer le miroir
- 8. Exportation miroir et importation locale
- 9. Exportez l'image vers la propre bibliothèque du site officiel
- Sept, opération de conteneur Docker
-
- 1. Création de conteneur
- 2. Afficher tous les conteneurs et leur statut
- 3. Démarrez le conteneur
- 4. Arrêtez le conteneur
- 5. Créer et démarrer le conteneur
- 6. Modifier le nom du conteneur
- 7. Entrez dans le conteneur
- 8. Implémenter le transfert de fichiers avant le conteneur et l'hôte
- 9. Exportation et importation de conteneurs
- 10. Supprimer le conteneur
1. Présentation de Docker
Docker est un moteur de conteneur d'applications open source , développé sur la base du langage go et open source conformément au protocole apache2.0
est un outil open source pour exécuter des applications dans des conteneurs Linux
est une "machine virtuelle" légère
La technologie de conteneur de Docker facilite la création d'un conteneur léger, portable et autonome pour toute application sur un seul hôte.
Deuxièmement, la différence entre Docker et une machine virtuelle
caractéristique | Docker | machine virtuelle |
---|---|---|
vitesse de démarrage | secondes | niveau des minutes |
Perte de puissance de calcul | presque cinq | Perte d'environ 50% |
performance | proche du natif | plus faible que |
prise en charge du système | milliers | dizaines de |
isolement | Isolement/limitation des ressources | complètement isolé |
Trois, technologie de base de conteneur
Docker est essentiellement un processus de l'hôte. Docker implémente l'isolation des ressources via l'espace de noms (espace de noms), la limitation des ressources via cgroup et des opérations de fichiers efficaces (similaire à la machine virtuelle) via la technologie de copie sur écriture. Par exemple, l'allocation de 500 g de disque ne n'occupent pas réellement 500g de disque physique).
Quatrièmement, le concept de base de Docker
●La mise en miroir
de l'image de Docker est la base de la création d'un conteneur, similaire à un instantané d'une machine virtuelle, et peut être comprise comme un modèle en lecture seule pour le moteur de conteneur Docker.
Démarrage d'un conteneur avec une image, une image est un package exécutable qui inclut tout le nécessaire pour exécuter l'application, y compris le code, l'environnement d'exécution, les bibliothèques, les variables d'environnement et les fichiers de configuration.
Une image Docker est également un package compressé, mais ce package compressé n'est pas seulement un fichier exécutable, un script de déploiement d'environnement, mais également un système d'exploitation complet. Étant donné que la plupart des images sont créées sur la base d'un certain système d'exploitation, il est facile de créer les mêmes environnements locaux et distants, ce qui est l'essence même des images Docker.
● Conteneurs Les conteneurs
Docker exécutent des instances créées à partir d'une image, qui peuvent être démarrées, arrêtées et supprimées. Chaque conteneur créé est isolé et invisible les uns des autres pour assurer la sécurité de la plateforme.
Un conteneur peut être considéré comme un simple environnement Linux (y compris les autorisations de l'utilisateur root, l'espace image, l'espace utilisateur et l'espace réseau, etc.) et les applications qui s'y exécutent.
●Entrepôt
L'entrepôt Docker est un endroit pour enregistrer les images de manière centralisée. Après avoir créé votre propre image, vous pouvez utiliser la commande push pour la télécharger vers un référentiel public (Public) ou un référentiel privé (Private). La prochaine fois que vous souhaitez utiliser cette image sur une autre machine, récupérez-la simplement dans le référentiel.
Les images, conteneurs, journaux, etc. de Docker sont tous stockés dans /var/lib/docker par défaut
Cinq, installez Docker
1. Désactivez le pare-feu et la protection des fichiers
[root@zqh ~]# systemctl stop firewalld
[root@zqh ~]# setenforce 0
2. Installer les packages de dépendance
[root@zqh ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
yum-utils:提供了yum-config-manager 工具。device mapper:
是Linux内核中支持逻辑卷管理的通用设备映射机制,它为实现用于存储资源管理的块设备驱动提供了一个高度模块化的内核架构。device mapper存储驱动程序需要 device-mapper-persistent-data和 lvm2。
Définir la source miroir du cloud d'Alibaba
[root@zqh ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
Installez Docker-CE et configurez-le pour qu'il démarre automatiquement au démarrage
[root@zqh ~]# yum install -y docker-ce docker-ce docker-ce-cli containerd.io
[root@zqh ~]# systemctl start docker.service
[root@zqh ~]# systemctl enable docker.service
####
安装好的Docker系统有两个程序,Docker服务端和ocker客户端。其中Docker服务端是一个服务进程,负责管理所有容器。
Docker客户端则扮演着Docker服务端的远程控制器,可以用来控制Docker的服务端进程。大部分情况下Docker服务端和客户端运行在一台机器上。
Afficher les informations sur le menu fixe
Afficher l'état du menu fixe, les informations sur la quantité, les informations sur le conteneur, les informations sur l'image
Six, opération d'image Docker
1. Rechercher des miroirs
Format:
docker search 关键字
2. Procurez-vous un miroir
Format:
docker pull 仓库名称[:标签]
##如果下载镜像时不指定标签,则默认会下载仓库中最新版本的镜像,即选择标签为latest标签
3. Voir le miroir
docker imager
Afficher les détails du miroir
docker inspect 镜像id或名称
4. Accélération miroir
Connectez-vous au site Web d'Alibaba Cloud
5. Afficher les informations sur l'image
6. Modifier le nom et l'étiquette de l'image
Format:
docker tag 旧名:旧标签 新名:新标签
7. Supprimer le miroir
la première méthode :
docker rmi 库名:标签
La deuxième méthode consiste à forcer la suppression par numéro d'identification
docker rmi 镜像id号 -f
##注意,如果这个镜像在被容器使用,那么用-f就会把容器也会删掉
8. Exportation miroir et importation locale
(1) Exportez d'abord l'image
docker save -o 自定义文件名.tar 库名:标签
[root@zqh ~]# docker save -o nginx-1.14.tar nginx:1.14
(2) Importez à nouveau l'image
9. Exportez l'image vers la propre bibliothèque du site officiel
Connectez-vous d'abord au site officiel pour créer un compte
retour au serveur
[root@zqh ~]# docker login
[root@zqh ~]# docker tag nginx:1.14 zqhh/nginx:1.14
##将发布的镜像改到自己账户名下
[root@zqh ~]# docker push zqhh/nginx:1.14
Passez à l'interface Web pour afficher
Sept, opération de conteneur Docker
1. Création de conteneur
Le conteneur nouvellement créé est à l'état arrêté par défaut et n'exécute aucun programme. Il est nécessaire d'y lancer un processus pour démarrer le conteneur.
Format:
docker create [选项] 镜像
常用选项:
-i:让容器开启标准输入
-t:让Docker分配一个伪终端tty
-it:合起来实现和容器交互的作用,运行一个交互式会话shell
[root@zqh ~]# docker create -it nginx:latest /bin/bash
2. Afficher tous les conteneurs et leur statut
docker ps -a
3. Démarrez le conteneur
docker start 容器id
4. Arrêtez le conteneur
docker stop 容器id
或
docker kill 容器id
两者区别是 docker stop 想当于给程序发送一个指令,等程序处理完进程后 关闭程序
而 docker kill 是不管三七二十一,直接强制删除
5. Créer et démarrer le conteneur
Vous pouvez exécuter directement la commande docker run, ce qui équivaut à exécuter d'abord la commande docker create, puis la commande docker start.
Note de cœur
: un conteneur est un terminal qui coexiste avec les commandes shell qui s'y exécutent, la commande exécute le conteneur s'exécute, la commande termine le conteneur se termine.
Par défaut, le conteneur Docker utilisera le premier processus à l'intérieur du conteneur, c'est-à-dire le programme avec pid = 1, comme base pour déterminer si le conteneur Docker est en cours d'exécution. Si le processus avec pid = 1 dans le conteneur Docker se bloque, alors le conteneur Docker sortira directement, c'est-à-dire qu'il doit y avoir un processus de premier plan dans le conteneur Docker, sinon le conteneur est considéré comme mort.
Lorsque vous utilisez docker run pour créer un conteneur, le processus d'exécution standard de Docker en arrière-plan est :
(1)检查本地是否存在指定的镜像。当镜像不存在时,会从公有仓库下载;
(2)利用镜像创建并启动一个容器;
(3)分配一个文件系统给容器,在只读的镜像层外面挂载一层可读写层;
(4)从宿主主机配置的网桥接口中桥接一个虚拟机接口到容器中;
(5)分配一个地址池中的IP地址给容器;
(6)执行用户指定的应用程序,执行完毕后容器被终止运行。
(1) Exécutez en continu le conteneur créé par docker run en arrière-plan
[root@zqh ~]# docker run -d centos:7 /bin/bash -c "while true; do echo helloworld; done"
6. Modifier le nom du conteneur
(1) Arrêtez d'abord un conteneur
[root@zqh ~]# docker stop 4c9f41540e7f
(2) Modifier le nom du conteneur
[root@zqh ~]# docker run -itd --name zqh1 centos:7 /bin/bash
7. Entrez dans le conteneur
[root@zqh ~]# docker exec -it zqh1 bash
(1) Comment créer un conteneur et entrer directement dans le conteneur (une commande pour l'obtenir)
[root@zqh ~]# docker run -it centos:7 bash
8. Implémenter le transfert de fichiers avant le conteneur et l'hôte
宿主机导入文件到容器
docker cp 文件 容器id号:/容器目录/
容器导出文件到宿主机并改名
docker cp 容器id号:/容器目录/文件 宿主机目录/新文件名
9. Exportation et importation de conteneurs
nœud1:192.168.100.142
nœud2:192.168.100.140
Les utilisateurs peuvent migrer n'importe quel conteneur Docker d'une machine à une autre. Pendant le processus de migration, vous pouvez utiliser la
commande docker export pour exporter le conteneur créé sous forme de fichier, que le conteneur soit en cours d'exécution ou arrêté. Les fichiers d'exportation peuvent être transférés vers d'autres machines et les conteneurs peuvent être migrés via les commandes d'importation correspondantes.
format d'exportation
docker export 容器id/名称 > 文件名
format d'importation
cat 文件名 | docker import - 镜像名称:标签
##导入后会生成镜像,但不会创建容器
Exigence : vous devez maintenant migrer le conteneur zqhh1 du nœud 1 vers l'hôte du nœud 2.
Le fonctionnement est le suivant :
Opération sur node1
[root@zqh ~]# docker export c4b00385104e > zqh.tar
[root@zqh ~]# scp zqh.tar 192.168.100.140:/opt
Opération sur node2
[root@bogon opt]# cat zqh.tar | docker import - zqh:aa
[root@bogon opt]# docker run -itd zqh:aa bash
[root@bogon opt]# docker exec -it 8e5d07246112 bash
[root@8e5d07246112 /]# cd /opt/
[root@8e5d07246112 opt]# ls
aa.txt passwd.txt
10. Supprimer le conteneur
docker rm 容器id
删除正在运行的容器,需要先停止容器 或者加-f 强制删除
Comment supprimer tous les conteneurs à la fois
[root@zqh ~]# docker ps -a | awk 'NR>=2 {print $1}' | xargs docker rm -f