Différence : 1. L'objet d'opération de « docker run » est « miroir », tandis que l'objet d'opération de « docker exec » est « conteneur » ; 2. « docker run » convient aux situations où aucun conteneur n'est en cours d'exécution, alors que "docker exec" Convient pour exécuter des commandes dans des conteneurs existants.
L'environnement d'exploitation de ce tutoriel : système linux5.9.8, version docker-1.13.1, ordinateur Dell G3.
docker run : Créez un conteneur basé sur l'image et exécutez une commande, l'objet de l'opération est image ;
docker exec
Exécuter des commandes dans un conteneur en cours d'exécution, et l'objet de l'opération est le container. "docker run" est généralement la commande utilisée dans les conteneurs nouvellement créés. Il convient aux situations dans lesquelles aucun conteneur n'est en cours d'exécution et que vous souhaitez créer un conteneur, le démarrer, puis exécuter un processus dessus. "docker exec" convient pour exécuter des commandes dans des conteneurs existants. Si vous avez déjà un conteneur en cours d'exécution et que vous souhaitez le modifier ou en tirer quelque chose, alors utiliser la commande "docker exec" est parfait.
docker run command
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
Spécifie le type de contenu d'entrée et de sortie standard, facultatif STDIN/STDOUT/STDERR ;
Exécutez le conteneur en arrière-plan et renvoyez l'ID du conteneur
Exécutez le conteneur en mode interactif, généralement utilisé avec -t ; -P : Mappage de port aléatoire, le port interne du conteneur aléatoirement
-p:Spécifiez le mappage de port, le format est : Hôte ( host) port
:-t: réaffecte un pseudo terminal d'entrée pour le conteneur, généralement utilisé avec -i; ": pour le conteneur Précisez un nom;
--dns 8.8.8.8: Précisez le serveur DNS utilisé par le conteneur, qui est cohérent avec l'hôte par défaut;
--dns-search example.com: Spécifiez le nom de domaine de recherche DNS du conteneur, la valeur par défaut est la même que celle de l'hôte
-h "mars": Spécifiez le nom d'hôte du conteneur ;
-e username="ritchie": Définir les variables d'environnement
--env-file=[]: Lire les variables d'environnement à partir du fichier spécifié ; --cpuset="0-2" ou --cpuset="0,1,2" :
Liez le conteneur au processeur spécifié à exécuter-m :
Définissez l'utilisation maximale de la mémoire ; du conteneur ;--net="bridge" :
Spécifiez la connexion réseau du conteneur Type, prend en charge bridge/host/none/container :--link=[]: Ajouter un lien vers un autre conteneur
- -expose=[]: Ouvrir un port ou un groupe de ports ; -volume, -v : Lier un volume
InstanceUtiliser l'image docker nginx:latest Démarrez un conteneur en mode arrière-plan et nommez le conteneur my-nginx.
docker run --name my-nginx -p 8081:80 -d nginx:latest
Le navigateur accède à http://host IP:8081, l'effet est le suivant :
docker run -P -d nginx:latest
使用镜像 nginx:latest 以后台模式启动一个容器,将主机的 80 端口映射到容器的 80 端口,主机的目录 /data 映射到容器的 /data:
docker run -p 80:80 -v /data:/data -d nginx:latest
使用镜像 nginx:latest 以交互模式启动一个容器,在容器内执行/bin/bash命令:
docker run -it nginx:latest /bin/bash
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
OPTIONS说明:
-d : 分离模式: 在后台运行
-i : 即使没有附加也保持STDIN 打开
-t : 分配一个伪终端
在容器名称 my-nginx 中开启一个交互模式的终端:
docker exec -it my-nginx /bin/bash
或者使用容器ID 721eb23901ce 开启一个交互模式的终端:
docker exec -it 721eb23901ce /bin/bash
推荐学习:《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!