“docker run”VS“docker exec”,这两个命令有区别吗?
出品丨Docker公司(ID:docker-cn)
编译丨小东
每周一、三、五晚6点10分 与您不见不散!
“docker run”和“docker exec”都是 Docker 容器中用于执行的命令。然而,在不同的情况下,它们的使用有着本质上的区别。
“docker run”命令
“docker run”通常是在新创建的容器中所使用的命令。 它适用于在没有其他容器运行的情况下,您想要创建一个容器,并且要启动它,然后在其上运行一个进程。它的格式如下所示:
docker run [OPTIONS] IMAGE COMMAND [ARG...]
在“docker run”命令之后,您必须通过指定镜像来创建容器,同时还可以指定的[OPTIONS]和[ARG...],例如:
docker run --name ubuntu_bash --rm -i -t ubuntu bash
上述命令将创建一个名为 ubuntu_bash 的容器并启动一个 Bash 会话。该示例中所使用的[OPTIONS]和[ARG...]的详细解读如下所示:
- --name 为容器指定名称,在本例中的容器名称为 ubuntu_bash;
- --rm 就像 bash 中的 rm 命令一样,它会删除容器,但这里它会在该容器退出时进行删除;
- -i 就是 –interactive 的缩写,它确保了即使没有连接到正在运行的容器,STDIN(标准输入)也会处于打开状态;
- -t 也可以使用 –tty 来进行引用,在容器中启动交互式的 bashshell;
- 容器的镜像应遵循[OPTIONS],这里的是镜像 ubuntu;
- 紧随镜像后面的部分是您要运行的命令:bash;
想了解更多关于“docker run”的更多[OPTIONS]信息,请查看https://docs.docker.com/engine/reference/commandline/run/。
“docker exec”命令
“docker exec”适用于在现有容器中运行命令的情况。如果您已经拥有了一个正在运行的容器,并希望更改该容器或从中获取某些内容,那么使用“docker exec”命令就非常合适了。例如,如果您使用了 docker-compose,那么您可能会启动多个容器,并且希望能够在创建它们后访问其中的一个或多个容器。它的格式如下所示:
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
“docker exec”也有着一系列可以指定的[OPTIONS]和[ARG...],尽管您需要确保容器和命令的状态才能执行。您可以使用以下命令在名为 ubuntu_bash 的容器上启动交互式的 bash shell:
docker exec -it ubuntu_bash bash
这里的[OPTIONS] –it 与“docker run”命令中的相同。 更多[OPTIONS]和[ARG...]的示例如下所示:
docker exec -d -w /temp ubuntu_bash touch my_file.sh
- -w 后跟目录或文件路径,您可以说明要在哪个工作目录中运行命令;
- -d 或 –detached 表示容器将以分离模式运行,因此您仍然可以继续将终端会话和在后台运行的容器一起使用。如果要查看容器发送到 STDOUT 的内容,请不要使用此选项;
- 该命令用于创建名为 my_file.sh 的文件,在 /temp 目录下运行名为 ubuntu_bash 的容器;
想了解更多关于“docker exec”的更多[OPTIONS]信息,请查看https://docs.docker.com/engine/reference/commandline/exec/。
了解更多
除了这两个命令之外,还有其他一些具有细微差别的 Docker 命令,例如 run 与 build 与create 的相似之处。了解更多并尝试不同的 docker 命令可以帮助您成为使用这种强大云技术的专业人士。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
【图文】实操创建快照
大家好,本期为大家介绍阿里云如何创建快照。当您希望使用某块磁盘上的数据作为其它磁盘的基础数据,或者是当磁盘上的数据出现问题需要回滚磁盘的时候,都需要用到磁盘快照。下面开始说明:首先登录阿里云控制台,进入云服务器ECS实例页面,选择需要创建快照的实例。之后点击本实例磁盘。这里我们可以看到本实例的系统盘和数据盘。下面我们可以通过两种方式来创建快照:手动创建和设置自动快照策略。我们先介绍一下手动创建,点击创建快照。在弹出的页面中输入快照名称,标签可以定义快照,方便管理,非必填项,大家可根据需求选择。最后点击确定。之后点击左侧导航栏的本实例快照。这里就可以看到我们刚刚手动创建的快照,等进度变成100%的时候,快照就创建好了。同时也可以在这里通过快照进行回滚磁盘和创建自定义镜像的操作。接下来介绍一下如何创建自定义快照策略。在云服务器ECS页面下点击自动快照策略。这里可以看到我之前创建的快照策略,点击右上角的创建策略。在弹出的页面中输入策略名称,选择创建时间和重复日期,这两项都可以多选,大家根据业务需求自行选择。最后选择快照的保留时间然后点击确定。之后自动快照策略就创建好了,接下来还需要我们将这条...
- 下一篇
【图文】实操配置安全组
大家好,本期为大家介绍阿里云如何配置安全组规则。安全组是阿里云提供的分布式虚拟化防火墙,具备状态检测包过滤功,许多用户在购买ECS服务器时一般都是默认创建的安全组,用户想要添加新的安全组规则或者新创建安全组需要如何配置。 首先登录阿里云控制台,进入云服务器ECS网络与安全下的安全组,选择创建安全组。点击创建安全组,根据您的需求选择相应的模板、安全组名称、网络类型。创建好之后右边会有一个配置规则的选项。点击配置规则,有两种配置规则的方式,我们分别讲一下。添加安全组规则,根据您自己的需求选择规则方向、协议类型、端口范围、授权对象等。点击确定就创建了一个入方向的规则,右边可以修改、克隆和删除。快速创建规则就是把常用协议类型以对选框的形式罗列出来,方便大家勾选。点击确定就创建完成了一个新的出方向的规则。本期安全组规则配置的介绍到此结束,如果大家在创建安全组规则的操作中遇到问题可以在下方留言与我们进行交流。
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS关闭SELinux安全模块
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS7设置SWAP分区,小内存服务器的救世主
- Red5直播服务器,属于Java语言的直播服务器
- Docker快速安装Oracle11G,搭建oracle11g学习环境