首页

文章

如何用docker run命令执行脚本而不退出

发布网友 发布时间:2022-02-26 21:18

我来回答

2个回答

懂视网 时间:2022-02-27 01:40

产品型号:Thinkpad E15

系统版本:centos8

docker命令教程

例1:运行一个 container并加载镜像centos,运行起来这个实例后,在实例中执行 /bin/bash命令

docker常用参数:

run  运行

-i   以交互模式运行容器,通常与 -t 同时使用;

-t  为容器重新分配一个伪输入终端,通常与 -i 同时使用;

[root@xuegod63 ~]# docker images 

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

centos    latest              196e0ce0c9fb        12 days ago         196.6 MB

[root@xuegod63 ~]# docker run -it centos:latest bash  #启动一个实例,也就2秒就可以搞定

[root@068fd8c70344 /]# ls   #查看实例环境

[root@f072b5ae7542 /]# cat /etc/redhat-release 

退出容器:

[root@f072b5ae7542 /]#exit

例2:在 container 中启动一个长久运行的进程,不断向stdin输出 hello world 。模拟一个后台运行的服务

docker常用参数:

-d  后台运行容器,并返回容器ID;

-c  后面跟待完成的命令

[root@xuegod63 ~]# docker run  -d centos:latest /bin/sh -c "while true;do echo hello world; sleep 1; done"

1b3493487c4fde6eb233d59fa9ab9a204ad993cd3debbd5a9a28be6816694605

#容器的ID

从一个容器中取日志,查看输出的内容,可用于后期检查docker实例在标准输出中弹出的错误信息或正常的信息。 

语法: docker  logs   容器实例的Name/ID  

[root@xuegod63 ~]# docker logs 1b3493487c4    #容器的ID可以写全,也可以不写全,只要唯一就可以了

hello world

hello world

hello world

hello world

查看正在运行的容器:

[root@xuegod63 ~]# docker ps  #列出所有运行中容器。

也可以使用短ID或docker实例的名字查看日志输出:

[root@xuegod63 ~]# docker logs 4109c3446284

或:

[root@xuegod63 ~]# docker logs flamboyant_davinci

[root@xuegod63 ~]# docker ps -a  #-a 列出所有容器(包含沉睡/退出状态的容器);

总结:

1、docker run -it centos:latest bash  启动一个实例 

2、docker run  -d centos:latest /bin/sh -c "while true;do echo hello world; sleep 1; done"  #后台运行容器,并返回容器ID;

3、docker  logs   容器实例的Name/ID从一个容器中取日志,查看输出的内容

4、docker ps  #列出所有运行中容器。


热心网友 时间:2022-02-26 22:48

docker run指定的命令如果不是那些一直挂起的命令(比如运行top,不断echo),就是会自动退出的。-d命令是设置detach为true,根据官方的文档,意思是让这个命令在后台运行,但并不是一直运行(我们在一个正常的Linux Terminal中运行/bin/bash,运行完了也就完了,不会一直挂着等待响应的,所以确实没办法用daemon方式来跑/bin/bash)。
这个地方官方早期和现在的文档也确实有些前后不一致,现在是detach,早期的文档说指定-d以daemon方式来运行容器,可能存在一定的误解。

另外,如果你需要跑容器里的bash,直接运行docker run -i -t CONTAINER_NAME /bin/bash 就可以了,如果觉得参数比docker attach多,可以设置一个别名(alias)来解决:

alias dockerbash='docker run -i -t CONTAINER_ID /bin/bash'
设置好别名后,直接运行dockerbash就可以进入容器的bash了
...火柴小女孩》《词语手册》里有很多词语的意思的,求告知 暖融融解释 领淘通淘客助手这个软件怎么样? 淘宝客必备的九大工具有哪些? 电脑里硬盘如何共享怎么实现多台电脑共用一块硬盘 两台电脑一个硬盘两台电脑是否可以同时用一个硬盘 共享电脑硬盘怎样设置局域网电脑硬盘共享 现在下载歌曲好还是不下好 故障码P033D的含义解析 切菜机多功能型切菜机 scanbox三维扫描仪 苹果13没有删除的备忘录怎么恢复? iphone备忘录永久删除怎么恢复?iphone备忘录恢复最近删除文件方法介绍... 备忘录最近删除怎么找 初一班主任工作计划 新初一班主任工作计划 359度是什么角 报个 定向乡镇卫生院 的医学好不好 酒驾缓刑节保证书怎么写 合同法律咨询免费 这款充电宝可以带上飞机吗? 倪俊卿成就及荣誉 江苏种牛站有几家? 山东宏正牧业有限公司服务承诺 吃早餐后抽血会影响体检结果吗 电脑如何设置护眼模式(台式电脑如何设置护眼模式) 电脑显示器设置护眼电脑屏幕怎么设置比较护眼 广告机是否支持分屏显示功能? 上海东丰船务有限公司怎么样? 马弗炉管厂家 CF手游体验服怎样获取资格 穿越火线体验服在哪申请资格_cf手游体验服资格申请入口链接 穿越火线体验服资格申请链接在哪-穿越火线体验服资格申请链接介绍 快手浏览量多少才能赚钱?快手靠浏览量能挣多少钱? 小麦胚芽如何吃最好 个头怎么造句 高跟鞋走路磨脚该如何处理? 除螨虫的特效药 螨虫什么药物可以除掉 网上在哪买奢侈品 二手包包闲置了怎么办 夫妻想要怀孕要提前做哪些准备 手机图片如何投屏到电视上去 手机图片投屏到电视上去的方法 分区助手无法压缩卷怎么处理? 广州北斗公司有哪些 在文件夹里.把cfg文件删掉.电影还可以看么? 办理骑士卡要钱吗? 一千个伤心的理由吉他谱前奏怎么弹出 一千个伤心的理由吉他谱 去中国逛夜市,必买的小吃有哪些? 上海香肠的配料秘方有哪些? 如何免sudo使用docker命令 docker启动容器命令 如何输入繁体 docker菜鸟教程是什么? 几条简单的docker命令 如何使用docker命令替 苹果的视频怎么传到电脑里面 该选Apache还是nginx 服务器apache和nginx能同时用吗 服务器apache和nginx能同时用吗? web服务器一般选择Tomcat、Apache还是Nginx?这三者有啥区别 nginx为什么比apache快 nginx和apache两种服务器系统有什么区别?分别适合运行什么网站? Nginx/Apache 和Apache Tomcat 的区别 tomcat与nginx,apache的区别是什么? php+apache 和 php+nginx的区别 Nginx 和 Apache 各有什么优缺点 Nginx 和 apache 哪个好 版主,linux下的Apache和Nginx是不是有什么区别 抖音怎么授权淘宝 如何在python脚本里调docker命令 怎么在docker里面安装镜像命令 docker容器启动命令 /bin/bash有什么用,我发现不写这个命令也可以启动啊,求教大神。 这段docker命令写成Dockerfile是什么样? 如何查看docker 里某个容器的的启动命令 如何将下图宝塔面板中的docker配置用命令写出来? docker中的mysql中怎么执行命令 如何在docker容器中使用ping命令 如何在容器中运行docker命令 快手直播怎么直播? 求nginx反向代理配置 如何使用nginx设置反向代理 我想在快手上直播,怎么直播 nginx反向代理配置问题 Nginx 如何设置反向代理 nginx怎么反向代理配置lnmp 快手怎么直播?需要具备什么条件? nginx 反向代理到百度怎么配置 路由怎么设置nginx反向代理 如何用nginx实现反向代理
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com