Maison > Opération et maintenance > Docker > Quelle est la différence entre les commandes docker run et docker exec ?

Quelle est la différence entre les commandes docker run et docker exec ?

青灯夜游
Libérer: 2021-11-25 19:40:34
original
10941 Les gens l'ont consulté

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.

Quelle est la différence entre les commandes docker run et docker exec ?

L'environnement d'exploitation de ce tutoriel : système linux5.9.8, version docker-1.13.1, ordinateur Dell G3.

La différence entre docker run et docker exec


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


Syntaxe

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
Copier après la connexion

OPTIONS Description :

    -a stdin
  • :

    Spécifie le type de contenu d'entrée et de sortie standard, facultatif STDIN/STDOUT/STDERR ;

  • -d
  •  :

    Exécutez le conteneur en arrière-plan et renvoyez l'ID du conteneur

  • -i
  •  :

    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

  • est mappé au port haut de l'hôte
  • -p:Spécifiez le mappage de port, le format est : Hôte ( host) port

    :
  • Port du conteneur
  • -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
    Copier après la connexion
  • Le navigateur accède à http://host IP:8081, l'effet est le suivant :

  • Utilisez l'image nginx:latest pour démarrer un conteneur en mode arrière-plan, et mappez le port 80 du conteneur à le port aléatoire de l'hôte :
  • docker run -P -d nginx:latest
    Copier après la connexion

    使用镜像 nginx:latest 以后台模式启动一个容器,将主机的 80 端口映射到容器的 80 端口,主机的目录 /data 映射到容器的 /data:

    docker run -p 80:80 -v /data:/data -d nginx:latest
    Copier après la connexion

    使用镜像 nginx:latest 以交互模式启动一个容器,在容器内执行/bin/bash命令:

    docker run -it nginx:latest /bin/bash
    Copier après la connexion


    docker exec 命令

    语法

    docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
    Copier après la connexion

    OPTIONS说明:

    • -d : 分离模式: 在后台运行

    • -i : 即使没有附加也保持STDIN 打开

    • -t : 分配一个伪终端

    在容器名称 my-nginx 中开启一个交互模式的终端:

    docker exec -it my-nginx /bin/bash
    Copier après la connexion

    或者使用容器ID 721eb23901ce 开启一个交互模式的终端:

    docker exec -it 721eb23901ce /bin/bash
    Copier après la connexion

    推荐学习:《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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal