如何避免Docker容器启动脚本运行后自动退出
发布网友
发布时间:2022-02-26 22:37
我来回答
共2个回答
热心网友
时间:2022-02-27 00:06
避免Docker容器启动脚本运行后自动退出的解决办法
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了
热心网友
时间:2022-02-27 01:24
避免Docker容器启动脚本运行后自动退出的解决办法
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了
如何用dockerrun命令执行脚本而不退出
1. 选择合适的镜像和命令:首先,你需要选择一个合适的Docker镜像作为基础。这个镜像应该包含你执行脚本所需的所有依赖和环境。然后,使用docker run命令启动容器。2. 后台运行容器:在docker run命令中,你可以使用“-d”参数来让容器在后台运行。这样,即使脚本执行完毕,容器也不会立即退出。...
如何避免Docker容器启动脚本运行后自动退出
避免Docker容器启动脚本运行后自动退出的解决办法 docker run指定的命令如果不是那些一直挂起的命令(比如运行top,不断echo),就是会自动退出的。-d命令是设置detach为true,根据官方的文档,意思是让这个命令在后台运行,但并不是一直运行(我们在一个正常的Linux Terminal中运行/bin/bash,运行完了也就...
如何用d脚本而不退出
如果需要在容器中启动一个持续运行的bash shell,可以直接使用docker run -i -t命令,并提供容器名称。这个命令会启动一个交互式和带tty的bash会话。如果你觉得这个命令参数较多,可以设置一个别名来简化操作。在终端中输入以下命令来创建别名:alias dockerbash='docker run -i -t CONTAINER_NAME /bin/...
entrypoint执行完sh脚本后,容器退出了
Docker容器在执行完entrypoint指定的脚本后,如果没有前台进程在运行,容器会自动退出。Docker容器在启动时会执行entrypoint指定的脚本。如果这个脚本执行完毕后,容器内没有其他前台进程在运行,Docker会认为容器已经完成了它的任务,然后自动停止容器。这是Docker的设计机制,旨在确保容器只运行所需的任务并保持...
docker容器运行后退出,怎么才能一直运行
运行多进程Docker容器的方法如下:1、使用Shell脚本依次启动Kubernetes的各个组件即可。以下为start-kubernetes.sh2、然后在Dockerfile中,将start-kubernetes.sh指定为Docker容器默认执行的命令即可。3、需要注意的一点在于,start-kubernetes.sh脚本将作为Docker容器的1号进程运行,必须始终保持运行。因为Docker容器...
一招解决开发环境问题——远程容器开发指南
容器内可以访问Workspace的所有文件,并且修改不会因容器退出而丢失。容器开发环境可以使用的VSCode插件,在Workspace的devcontainer.json配置中指定。为了提高启动速度并保留容器内插件的配置,开发容器内的/vscode目录其实挂载了一个docker volume,不会自动随docker退出而回收。环境准备:要使VSCode可以远程连接...
docker容器创建后,修改重启策略,实现开机启动
首先,如果你需要重新部署容器,可以选择删除旧的容器,然后使用Compose脚本或docker run命令重新构建。这种方法适用于测试环境或数据未在生产环境中部署的场景。另一种方式是直接修改已部署容器的重启策略。通过执行`docker update --restart always [容器ID]`命令,可以将容器的重启策略更改为always。例如,...
Docker 容器优雅终止方案
2. 在shell模式中添加exec命令: 如果坚持使用shell模式,可以在ENTRYPOINT后追加启动命令,如ENTRYPOINT ['sh', '-c', 'your_command &'],同样使PID 1变为脚本。3. 引入init系统(如tini): 对于不能修改代码的应用,可以将轻量级init系统tini集成到容器中,如添加到Dockerfile:FROM ... ...
Docker 入门私人笔记(十七)回顾和总结4 - harbor 的关闭和启动
这确保容器在意外关闭后自动重启,适用于如 Docker 重启或服务器重启等情况。然而,手动停止容器不会触发自动重启。为解决手动启动后容器未自动重启的问题,可以尝试将 Harbor 配置为 systemd 服务。这需要在 /usr/lib/systemd/system 目录下创建 harbor.service 配置文件,并添加相应的配置,如将 {{ ...
docker请求数据的时候直接退出后面用不了了
脚本中最后一个进程一定要用前台运行方式即在进程最后不加&(&表示后台运行),否则容器会退出。