问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何用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了
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
剑川石宝山歌会还能唱多久 全世界陆地、海洋等霸主都有那些?举例陆地上的动物前十位以上 和海洋两... 为什么越来越多的人不爱走亲戚了?没钱是其次,主要是因为这两点_百度知 ... 广州中蝶阀门有限公司怎么样? 九江著名旅游景点有哪些 淘宝保证金可以退回来吗 淘宝店铺保证金被扣除能要回来吗?被扣保证金怎么申诉? 深圳广田装饰集团股份有限公司科学发展 斗鱼怎么电脑开直播斗鱼开怎么才能开直播要不要钱啊电脑配置最低要求是... 这个周星期五晚上七点半 快乐男生冠军争夺赛 希望武艺加油哦 我们午 ... 如何免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实现反向代理