docker run中的-itd参数正确使用

这篇具有很好参考价值的文章主要介绍了docker run中的-itd参数正确使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. docker run 命令

docker run 命令的作用是通过镜像(image)创建一个docker容器。如果本地没有相关镜像会自动从远程仓库拉取(镜像)到本地,再进行创建容器。

2. -idt参数说明

简写的参数一般都是英文单词的简写,理解了单词的意思会加强记忆。使用的过程

  • -i,--interactive,以交互模式运行容器,并保持终端激活。
    注:交互就是用户输入命令,机器执行命令,并提供返回结果。那么在哪里输入命令呢?得有一个终端吧,所以这个命令必须与 -a 或 -t 命令配合使用。-a 选项用于指定将容器的标准输出连接到终端。使用 -t 选项创建的容器会分配一个伪终端,并将容器的标准输入、输出和错误连接到该终端。

  • -t,--tty:为容器分配一个伪终端。

  • -d,--detach:以后台模式运行容器,并返回容器ID
    如果在 docker run -it 不使用 -d 那么启动容器后如果你使用 ctrl+c 或 exit 退出交互模式,docker容器会停止运行。

3. docker run 什么情况下使用-itd

-d 使用场景

一般创建的docker容器都需要使用 -d ,除非你想创建一个前台运行的容器,操作完成后就想让它停止。但停止运行的docker容器并不会销毁。一般情况下你想使用一个一次性的容器,也就是使用完让它自己销毁,你可以使用 --rm命令,如:docker run --rm 显然,--rm 选项不能与 -d 同时使用(或者说同时使用没有意义)。一般 --rm 会用在自动部署,使用完自动销毁。

即使使用了-d命令,一旦容器执行的命令执行结束,容器也会自己关闭,停止运行

-it 使用场景

根据上面的解释,-it 一般会同时使用。

  • 有启动命令:有些镜像在制作时指定了容器启动的命令 [cmd] ,即:docker容器运行时需要执行的命令,这样的镜像使用 docker run 生成容器时不需要再指定容器初始运行的命令。
    如: 使用nginx的(未指定版本默认为latest版本,即 nginx:latest ,如果指定版本:nginx:1.19 )镜像生成一个docker容器:docker run -d nginx

  • 没有启动命令:有些未指定容器启动命令的需要在生成容器时指定命令,如果不指定则会报错:Error response from daemon: No command specified. ,是说没有指定执行命令。需要指定,如:docker run -d test_image:2.0 /bin/bash,这种情况因为启动命令是/bin/bash。这个容器启动后会立马退出,这是因为/bin/bash命令是一个交互式命令,它需要与用户进行交互并等待用户输入命令。在后台运行时,没有用户与容器进行交互,因此bash进程在启动后立即退出。这种情况可以修改为 docker run -id test_image:2.0 /bin/bash 或 docker run -td test_image:2.0 /bin/bash 或 docker run -itd test_image:2.0 /bin/bash

4. docker exec 中 -it

docker exec 命令用于在运行中的容器中执行命令,必须在容器启动的情况下执行。
有时不需要使用交互式执行命令就直接不使用 -it ,一般这种是自动部署或更新容器内程序时直接在宿主机操作的命令。如删除容器内的文件:docker exec nginx rm -rf /var/logs/nginx.log 

docker exec 中的 -it 参数和 docker run 中相同。==docker exec中的 -it 不会受 docker run的参数影响。他们是两个工具,只要 docker run 把容器启动了,docker exec 执行什么命令是它的事 ==

5. docker run 的其他常用命令

  • -a, --attach: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项。
  • -p, --publish:发布容器端口到主机端口。常用:端口映射到宿主机
  • -v, --volume:绑定容器挂载点到主机目录。常用:文件(夹)映射到宿主机
  • -e, --env:设置环境变量。
  • -w, --workdir:设置容器的工作目录。docker exec -it进入容器后的默认目录
  • --name:为容器指定一个名称。
  • --net:指定容器的网络连接类型。
  • --link:将容器链接到另一个容器。
  • --expose:开放一个端口或一组端口。
  • --dns:指定容器使用的DNS服务器。
  • --rm:容器停止后自动删除。自动打包、编译部署,或自动测试时很常用

点击查看公众号更多文章

更新精彩文章请关注公众号:大胡几哥哥文章来源地址https://www.toymoban.com/news/detail-718888.html

到了这里,关于docker run中的-itd参数正确使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【hadoop运维】running beyond physical memory limits:正确配置yarn中的mapreduce内存

    在hadoop3.0.3集群上执行hive3.1.2的任务,任务提交时报如下错误: Application application_1409135750325_48141 failed 2 times due to AM Container for appattempt_1409135750325_48141_000002 exited with exitCode: 143 due to: Container [pid=4733,containerID=container_1409135750325_48141_02_000001] is running beyond physical memory limits. Curren

    2024年02月09日
    浏览(44)
  • docker run 之后,docker ps找不到容器的解决办法

    1. 问题: 今天在部署项目过程中,用docker run指令启动容器返回了容器id,但是用 docker ps 指令却不显示刚才启动的容器。 2. 问题查找: 由于 docker ps 指令只能查看正在运行的容器,-a 是显示所有容器,使用 docker ps -a 指令查看容器的状态是否是 Exited 的。如果容器状态是 Exi

    2024年02月11日
    浏览(42)
  • 【Docker】如何查看之前docker run命令启动的参数

    个人主页 :金鳞踏雨 个人简介 :大家好,我是 金鳞 ,一个初出茅庐的Java小白 目前状况 :22届普通本科毕业生,几经波折了,现在任职于一家国内大型知名日化公司,从事Java开发工作 我的博客 :这里是CSDN,是我学习技术,总结知识的地方。希望和各位大佬交流,共同进

    2024年02月08日
    浏览(44)
  • 如何使用docker容器中的redis

    1.检查docker容器中是否启动了redis;命令: docker ps 2.如果没启动,则先启动服务;命令: docker run -p 6379:6379 --name redis -d redis (这里name后面的redis就是你在docker里面的redis服务映射的名称,可以叫任何名称,端口号也是) 3.根据查询出来的名称,比如你的redis服务就叫redis;命令

    2024年02月12日
    浏览(42)
  • docker run 命令30个常用参数详解

    Docker run 命令是在 Docker 中创建和运行容器的主要命令之一。它允许根据需要配置容器的各种属性。 下面是 docker run 命令的一些常见用法和示例,我们共同学习。 以下是一个比较常见的 Docker run 命令示例,用于创建一个 NGINX 容器: -d : 在后台以守护进程模式运行容器。 --na

    2024年02月07日
    浏览(39)
  • 从零自制docker-8-【构建实现run命令的容器】

    log “github.com/sirupsen/logrus”: 这是引入了 github.com/sirupsen/logrus 包,并将其重命名为 log 假设我们有一个切片 myArgs := []string{\\\"arg1\\\", \\\"arg2\\\", \\\"arg3\\\"} ,我们想将这个切片作为参数传递给 exec.Command() 函数。 如果直接传递 myArgs 作为参数,那么 exec.Command() 函数会将整个切片作为一个单独的

    2024年04月09日
    浏览(85)
  • 【DOCKER】docker run的-d,-v等参数用处

    0.引用 ref1 docker ps的详解 表格和文本的记录版本  1.手册查询内容 2.-d 后台运行 3.-v 绑定一个数据卷 4.-p(小写) 指定要映射的IP和端口,但是在一个指定端口上只可以绑定一个容器. 支持的格式有  hostPort:containerPort 、 ip:hostPort:containerPort 、  ip::containerPort 5.-P(大写) Docker会随机

    2024年02月16日
    浏览(42)
  • 软件测试|深入解析Docker Run命令:创建和启动容器的完全指南

    简介 Docker是一种流行的容器化平台,用于构建、分发和运行应用程序。其中一个最基本且重要的Docker命令是 docker run ,用于创建和启动容器。本文将详细解析 docker run 命令的用途、参数和示例,帮助您全面掌握创建和启动容器的过程。 docker run 在Docker中,容器是运行应用程序

    2024年02月09日
    浏览(42)
  • 【Python编程工具】【ssh连接Docker容器】如何使用Docker容器里的python环境,如何调试在容器中的代码

    本篇博客将介绍如何在Docker容器中打开SSH连接服务,以及如何使用JetBrains Gateway软件进行代码调试。 JetBrains Gateway是一款紧凑型桌面应用,可让您通过 JetBrains IDE 远程工作,甚至无需下载这些IDE。通过在桌面端安装这款软件,您可以直接调试服务器上的代码。 使用以下命令启

    2024年01月25日
    浏览(67)
  • docker run:--privileged=true选项解析(特权模式:赋予容器几乎与主机相同的权限)

    Docker在创建和运行容器时,提供了许多命令行参数来自定义容器的行为。其中之一就是 --privileged=true 选项。此选项提供了对主机系统资源更深层次的访问权限。本文将详细解析这个选项,并探索它的用途和可能带来的风险。 1.1 Linux Namespace 和 Capabilities 在理解 --privileged=true

    2024年02月08日
    浏览(87)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包