操作系统为何docker刚启动起来就退出了

操作系统为何docker刚启动起来就退出了

为何docker刚启动起来就退出了

退出原因

1、docker容器运行必须有一个前台进程, 如果没有前台进程执行,容器认为空闲,就会自行退出

2、容器运行的命令如果不是那些一直挂起的命令( 运行top,tail、循环等),就是会自动退出

3、这个是 docker 的机制问题

解决方法:

docker run -dit docker.elastic.co/elasticsearch/elasticsearch:5.6.16 /bin/bash

添加-it 参数交互运行

添加-d参数后台运行

这样就能启动一个一直停留在后台运行的docker容器了。

更多相关教程,请关注PHP中文网docker教程栏目。

以上就是为何docker刚启动起来就退出了的详细内容,更多请关注php中文网其它相关文章!

要让 Docker 容器作为系统服务自动启动,你需要在容器创建时配置使其成为守护进程(daemon mode),并在容器启动后将其添加到系统的启动脚本或服务管理工具中。以下是基本步骤: 1. **使用 `--restart` 参数**: 使用 `docker run` 的 `-d`( detached, 后台运行)选项,加上 `--restart always` 或 `--restart unless-stopped`,可以让容器容器退出后自动重启。前者表示无论容器状态如何都保持重启,后者只有当手动停止时才会停。 ```sh docker run -d --name my_service --restart always my_image ``` 2. **创建 Dockerfile 并设置 as 进入用户**: 如果你想要创建一个新的镜像并且希望容器以特定用户身份运行,可以在 Dockerfile 中指定 `USER` 声明。 ```Dockerfile FROM ubuntu:latest USER root CMD ["your-daemon-command"] EXPOSE your-port ENTRYPOINT ["/usr/sbin/init"] ``` 构建新镜像并运行: ```sh docker build -t my_service . docker run -d --name my_service -p host_port:container_port my_service ``` 3. **使用 systemd 或 sysvinit 管理**: 对于基于 Debian 或 Red Hat 类系的操作系统,你可以将 Docker 配置为 systemd 服务。首先,生成一个描述文件,比如 `/etc/systemd/system/my_service.service`,然后启用和启动它: ```bash cat << EOF > /etc/systemd/system/my_service.service [Unit] Description=My Docker Service After=docker.socket [Service] Restart=always ExecStart=/usr/bin/docker start my_service ExecStop=/usr/bin/docker stop my_service Type=forking [Install] WantedBy=multi-user.target EOF systemctl daemon-reload systemctl enable my_service systemctl start my_service ``` 4. **Ubuntu 上 Systemd 或 Upstart**: 类似地,在 Ubuntu 上可以使用 Systemd 的 `.service` 文件,或者 Upstart 的配置文件 `.conf`,然后分别用 `systemctl` 或 `update-rc.d` 来管理。 注意:这些步骤适用于大部分基于 Unix 系统的环境,如 Linux 和 macOS。Windows 上的服务管理略有不同,可以参考官方文档或相应的 Docker 参考资料。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值