Docker 退出container后保持继续运行的操作

现象:

运行一个image,例如ubuntu14.04:

docker run -it --rm ubuntu:14.04 bash

退出时:

执行Ctrl+D或者执行exit

查看线程:

docker ps

发现为空,说明没有正在运行的容器。

解决方法:

运行一个image:

docker run -dit ubuntu:14.04

查看线程:

发现有一个线程,打开它:

docker attach 【CONTAINER ID或NAMES】

退出时如果想继续运行:按顺序按【ctrl+p】,【ctrl+q】

如果不想继续运行:按【ctrl+d】或输入exit

另:关闭后重启请输入:docker restart 【CONTAINER ID或NAMES】

补充:Docker - 避免启动container后运行shell脚本执行完成后docker退出container

最近在使用 Dockerfile 启动容器,发现使用Dockerfile调用容器里面的shell,当shell执行完成以后,docker会退出容器。

分析

Docker 在执行shell的时候,是在后台执行的;因此,在shell执行完成以后,docker检测到没有前台任务需要执行,便退出container.

解决方法

在shell脚本的最后加上一个“永远完成不了”的命令:

# tail -f /dev/null

这样当执行到这条命令的时候,shell便不会退出,container也不会退出。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。

(0)

相关推荐

  • 详解如何进入、退出docker容器的方法

    1 启动docker服务 首先需要知道启动docker服务是: service docker start 或者: systemctl start docker 2 关闭docker服务 关闭docker服务是: service docker stop 或者: systemctl stop docker 3 启动docker某个image(镜像)的container(容器) Docker的镜像称为image,容器称为container. 对于Docker来说,image是静态的,类似于操作系统快照

  • 重启docker服务应用自启停命令(推荐)

    下面看下重启docker服务应用自启停命令,具体内容如下所述: #重启docker服务应用,不自动开启docker容器 docker update --restart=no (docker容器CONTAINER ID 或 docekr容器NAMES) #重启docker服务应用,自动开启docker容器 docker update --restart=always (docker容器CONTAINER ID 或 docekr容器NAMES) ps:服务器重启后启动Docker命令 启动步骤: 1

  • Docker容器的创建、启动、和停止的方法

    1.容器是独立运行的一个或一组应用,及他们的运行环境.容器是Docker中的一个重要的概念. 2.docker容器的启动有三种方式 a.交互方式,基于镜像新建容器并启动 例如我们可以启动一个容器,打印出当前的日历表 [root@rocketmq-nameserver4 ~]# docker run my/python:v1 cal ##my/python:v1为镜像名和标签 我们还可以通过指定参数,启动一个bash交互终端. [root@rocketmq-nameserver4 ~]# dock

  • Docker 退出container后保持继续运行的操作

    现象: 运行一个image,例如ubuntu14.04: docker run -it --rm ubuntu:14.04 bash 退出时: 执行Ctrl+D或者执行exit 查看线程: docker ps 发现为空,说明没有正在运行的容器. 解决方法: 运行一个image: docker run -dit ubuntu:14.04 查看线程: 发现有一个线程,打开它: docker attach [CONTAINER ID或NAMES] 退出时如果想继续运行:按顺序按[ctrl+p],[ct

  • 如何进入、退出docker的container实现

    1 启动docker服务 首先需要知道启动docker服务是: service docker start 或者: systemctl start docker 2 关闭docker服务 关闭docker服务是: service docker stop 或者: systemctl stop docker 3 启动docker某个image(镜像)的container(容器) Docker的镜像称为image,容器称为container. 对于Docker来说,image是静态的,类似于操作系统快照

  • Docker下搭建一个JAVA Tomcat运行环境的方法

    前言 Docker旨在提供一种应用程序的自动化部署解决方案,在 Linux 系统上迅速创建一个容器(轻量级虚拟机)并部署和运行应用程序,并通过配置文件可以轻松实现应用程序的自动化安装.部署和升级,非常方便.因为使用了容器,所以可以很方便的把生产环境和开发环境分开,互不影响,这是 docker 最普遍的一个玩法.更多的玩法还有大规模 web 应用.数据库部署.持续部署.集群.测试环境.面向服务的云计算.虚拟桌面 VDI 等等. 主观的印象:Docker 使用 Go 语言编写,用 cgroup 实现

  • Docker中 container 和 image 的命名

    目录 1. 容器命名 使用 --name 自定义容器名称 2. image 命名 image 命名使用 --tag 或者 -t 1. 容器命名 创建容器时,如果不用 --name 指定名称,那么container的名称将自动生成. 使用 --name 自定义容器名称 docker run --name "node_server" -d -p 80:80 node_server_debug 可以看到生成的名称为node_server 的容器. PS D:\nodejs-app> d

  • Java线程监听,意外退出线程后自动重启的实现方法

    Java线程监听,意外退出线程后自动重启 前一天写了一个微博爬行程序,主要工作原理就是每隔2分钟爬行一次微博,获取某N个关注朋友微博数量,然后将其保存起来,2分钟之后再次爬行,再取 其微博数量,与2分钟前保存的微博数量比较,如果数量增加,说明该好友在此2分钟之内发布微博,如果数量减少,则是删除微博.最后将爬行结果发送到指定手机上,作为通知! 今天看微博时发现自己关注的朋友发布了微博,然而自己手机却没有收到报警消息,查看爬行日志发现,在凌晨6点钟时,公司网络曾经断网,导致网络堵 塞,程序在爬行的时

  • iOS实现后台长时间运行

    前言 一般APP在按下Home键被挂起后,这时APP的 backgroundTimeRemaining 也就是后台运行时间大约只有3分钟,如果在退出APP后,过十几二十二分钟或者更长时间再回到APP,APP就会回到刚打开时的状态,也就是首页:有的项目在被挂起后需要在后台运行一段时间,使有足够的时间来完成与服务器对接的操作,或者需要一直运行的需求:如果需要,则在APP被挂起后,申请后台,来延长后台运行时间. APP申请后台运行的方式有几种: 播放音乐 定位 Newsstand downloads

  • 详解如何获取docker容器(container)的ip地址

    1. 进入容器内部后 cat /etc/hosts 会显示自己以及(– link)软连接的容器IP 2.使用命令 docker inspect --format '{{ .NetworkSettings.IPAddress }}' <container-ID> 或 docker inspect <container id> 或 docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' c

  • Docker 创建容器后再修改 hostname的详细过程

    世上是有后悔药的,只要肯琢磨!再也不用重新创建容器了! 我有一个叫m2的容器,现在想要修改它的 hostname 1.查看容器配置文件在宿主机上的位置,这里看到是 /var/lib/docker/containers/67e012c02434168aff3762ab4edf7550f0bfe1db57b396ce78660f140dd3056e 2.关闭容器.关闭 docker 服务 前提条件,非常重要!!!前提条件,非常重要!!!前提条件,非常重要!!! 3.进入该容器所在配置文件所在宿主机文

  • docker部署mysql后无法连接的解决方式

    1.创建实例命令 docker run -id --name=c_mysql -p 3306:3306 -v /docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.6.37 2.查看启动的实例 docker ps 3.这里映射的是宿主机的3306端口,我已经把端口开放了 4.在宿主机进行连接 #这个报错像是mysql不存在,查看mysql是否启动 #mysql已启动,端口也没有被占用 5.已经在容器里面测试

  • Docker在线、离线安装及其常用命令操作

    一.测试环境 名称 版本 centos 7.6 docker 18.09.06 二.在线安装 这里采用yum源命令安装前期准备的依赖包,包括yum-utils.device-mapper-persistent-data.lvm2 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 因为官方镜像仓库网速较慢,在此设置阿里云镜像代理,以便快速下载.上传镜像. sudo yum-config-manager --add-re

随机推荐