首页 > 编程知识 正文

docker run -dit,Linux 离线docker

时间:2023-05-06 01:09:37 阅读:130717 作者:1906

执行指令: docker run---- name centos8- d centos /诚心带/bash,检查docker ps上正在运行的容器,找不到centos8。

docker ps -a检查发现centos8容器已停止

[ root @ mi wifi-r4a-SRV server ] $ docker run-- name centos8- d centos /诚心诚意的发箍/bash

a 770630 ca 865 b 3c 3346 a 321 a 383 f 302 ed 22 af 9281 be 8482 F4 debc 59218 d 0d 1

[ root @ mi wifi-r4a-SRV server ] $ docker PS

containeridimagecommandcreatedstatusportsnames

[ root @ mi wifi-r4a-SRV server ] $ docker PS-a

containeridimagecommandcreatedstatusportsnames

a770630ca865 centos '/诚心诚意的发箍/bash'37secondsagoexited(0) 35 seconds ago centos8

为什么要退出?

这是因为docker在后台运行,需要前台进程。 docker执行的命令必须是挂起的命令(e.g. top,ping ),才能自动退出。 在上面的代码中,这是-d centos必须运行的指定命令。 如果命令执行完成或APP应用程序结束,容器将自动关闭。

解决方法

以以前的舞台流程的形式执行

运行的程序作为前台进程运行,如果容器需要同时启动多个进程,则可以将其中一个进程挂起到前台。

例如,在上述centos容器中,您只需要以交互方式更改启动命令以启动:

docker run---- name centos8- it centos /诚心乐队/bash

或Web容器:

service PHP5- fpmstartnginx-g ' daemon off;'

巧妙的安排

添加像tail top这样可以在前台运行的程序,继续输出log文件即可。

servicenginxstartservicephp5- fpmstarttail-f/var/log/nginx/error.log

以上述web容器为例,可以写为:

servicenginxstartservicephp5- fpmstarttail-f/var/log/nginx/error.log

自己写脚本

在启动centos/ubuntu容器时,可以创建一个死循环,并做手脚以继续进行任意输出。 这样,集装箱就不会以为无能为力而自杀。

docker run -d centos /诚心诚意的发箍/bash -c 'while true; do echo hello world; 步骤1; done '

补充知识:在docker中启动容器时CMD调用的sh脚本中if命令意外的符号if[[的解决方案]

最近在Dockerfile中创建镜像,CMD调用sh脚本start.sh启动容器,在docker run中启动容器时,启动失败,运行docker logs容器ID,以及意外的符号if

我成功地通过直接外部linux系统调用运行了start.sh。 在docker exec中进入容器,在容器中调用start.sh时没有报告错误,需要通过命令启动的所有程序都已成功启动。 直接运行脚本没有问题,但通过docker run报告错误很奇怪。

start.sh的错误代码段如下

if [ [-e/home/DC/test nn-AAA.zip ] ]; 陈真

rm -rf /home/testnn-aaa

unzip -q -o -d /home testnn-aaa.zip

echo 'unzip zip finished '

else

echo 'dc zip not exist '

fi

经过调查,我的start.sh中也有错误文件前面有if文件,但没有错误。 两个位置的区分对第一个if使用了单个[],将代码更改为[]后成功,并进行了以下修改:

if [ -e /home/dc/testnn-aaa.zip ]; 陈真

至此,在解析docker run或docker restart并启动镜像时,编辑人员共享的所有内容都会自动退出。 希望您能参考。 另外,请多关照褐家。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。