• 技术文章 >运维 >Docker

    docker run和docker exec命令的区别是什么

    青灯夜游青灯夜游2021-11-25 19:40:34原创86

    区别:1、“docker run”的操作对象是“镜像”,而“docker exec”的操作对象是“容器”;2、“docker run”适用适合没有容器运行的情况,而“docker exec”适用于在现有容器中运行命令的情况。

    本教程操作环境:linux5.9.8系统、docker-1.13.1版、Dell G3电脑。

    docker run 和 docker exec 的差异


    docker run根据镜像创建一个容器并运行一个命令,操作的对象是 镜像

    docker exec在运行的容器中执行命令,操作的对象是 容器

    “docker run”通常是在新创建的容器中所使用的命令。 它适用适合没有容器运行的情况,您想要创建一个容器,并且要启动它,然后在其上运行一个进程。

    “docker exec”适用于在现有容器中运行命令的情况。如果您已经拥有了一个正在运行的容器,并希望更改该容器或从中获取某些内容,那么使用“docker exec”命令就非常合适了。


    docker run 命令

    语法

    docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

    OPTIONS说明:

    实例

    使用docker镜像 nginx:latest 以后台模式启动一个容器,并将容器命名为my-nginx。

    docker run --name my-nginx -p 8081:80 -d nginx:latest

    浏览器访问 http://主机IP:8081,效果如下:

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

    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 命令

    语法

    docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

    OPTIONS说明:

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

    docker exec -it my-nginx /bin/bash

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

    docker exec -it 721eb23901ce /bin/bash

    推荐学习:《docker视频教程

    以上就是docker run和docker exec命令的区别是什么的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    上一篇:kvm和docker之间有什么区别 下一篇:docker是什么?能做什么?
    php中文网线上培训班

    相关文章推荐

    • win10下phpstorm如何进行docker开发• 终于搞定php7-alpine的docker镜像• 聊聊关于Mac Laravel docker sail 搭建问题• 分析Macosx下使用docker/mysql的问题• docker镜像应该遵循哪些原则• docker部署有什么好处

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网