docker daemon run /bin/bash discussion

2023-11-04 01:32

本文主要是介绍docker daemon run /bin/bash discussion,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

如何让docker以daemon方式运行/bin/bash

  • docker
 
kapprentice 2014年03月05日提问
0

请教各位达人一个关于docker的问题哈。我想在docker run的时候,用-d参数运行/bin/bash,然后让这个bash一直跑着,我要用的时候就docker attach上去。但是我一跑docker run -d .... /bin/bash,这个容器就运行结束停下来了。这是为毛啊,有啥解决方案没。。。

  • 2014年03月05日提问 
  • 编辑 
  • 评论 
  • 邀请回答 
来源:  Docker 技术问答
默认排序 时间排序

5个回答

0
采纳

我自己也遇到这个问题。不过不同的时,我希望docker run的时候,可以让容器一直在后台运行,并允许我远程登陆进去操作。

我把文章拷贝过来了:ssh远程登陆一个容器

----内容开始-----

启动了一个容器之后,我们可能需要用ssh登陆进去进行一些操作。为达到此目的,有2点需要保证:

  • 容器必须处于运行状态。
  • openssh-server处于启动状态。
注意:以下示例是在ubuntu/13.10中完成的

首先确保镜像安装有openssh-server服务

# 官方镜像一般没有安装ssh服务端,so,需要安装一个
apt-get install openssh-server
# 设置一个初始密码
passwd 123
...

然后,提交镜像:

docker commit CONTAINER_ID NAME/VERSION

最后,运行镜像,并让生成的容器一直在后台运行:

# 第一个-d表示让容器在后台运行
# 末尾的-D表示启动ssh的daemon模式,不然容器启动后立刻就变为停止状态了
docker run -d NAME/VERSION /etc/init.d/ssh start -D

现在,便可以ssh登陆容器了。

# 查询容器IP
docker inspect CONTAINER_ID | grep IP# 登入
ssh root@IP
# 输入密码 123完成登陆
# 为保证安全,请即刻用passwd修改密码
  • 2014年04月27日回答 
  • 编辑 
  • 评论
1

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了。

  • 2014年03月07日回答 · 2014年03月07日更新 
  • 编辑 
  • 评论
0

用supervisor就可以实现。而且可以同时启动多个服务。
先yum -y install supervisor 安装软件包,修改配置文件/etc/supervisord.conf
增加自己要启动的服务,如sshd 。

具体的话,可以参考这个文章:http://openstack.blog.163.com/blog/static/236387267201491734019283/

  • 2014年10月22日回答 
  • 编辑 
  • 评论
0

docker run --attach=stdin -d image bash,-d参数默认关闭了stdin。

  • 2015年04月09日回答 
  • 编辑 
  • 评论
0

建议在构建镜像的Dockerfile文件中加一句:
CMD tail -f
如果还有其他命令
CMD 其他命令 && tail -f
希望对你有所帮助

这篇关于docker daemon run /bin/bash discussion的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/342296

相关文章

使用IDEA部署Docker应用指南分享

《使用IDEA部署Docker应用指南分享》本文介绍了使用IDEA部署Docker应用的四步流程:创建Dockerfile、配置IDEADocker连接、设置运行调试环境、构建运行镜像,并强调需准备本... 目录一、创建 dockerfile 配置文件二、配置 IDEA 的 Docker 连接三、配置 Do

SpringBoot结合Docker进行容器化处理指南

《SpringBoot结合Docker进行容器化处理指南》在当今快速发展的软件工程领域,SpringBoot和Docker已经成为现代Java开发者的必备工具,本文将深入讲解如何将一个SpringBo... 目录前言一、为什么选择 Spring Bootjavascript + docker1. 快速部署与

使用Docker构建Python Flask程序的详细教程

《使用Docker构建PythonFlask程序的详细教程》在当今的软件开发领域,容器化技术正变得越来越流行,而Docker无疑是其中的佼佼者,本文我们就来聊聊如何使用Docker构建一个简单的Py... 目录引言一、准备工作二、创建 Flask 应用程序三、创建 dockerfile四、构建 Docker

SpringBoot+Docker+Graylog 如何让错误自动报警

《SpringBoot+Docker+Graylog如何让错误自动报警》SpringBoot默认使用SLF4J与Logback,支持多日志级别和配置方式,可输出到控制台、文件及远程服务器,集成ELK... 目录01 Spring Boot 默认日志框架解析02 Spring Boot 日志级别详解03 Sp

java实现docker镜像上传到harbor仓库的方式

《java实现docker镜像上传到harbor仓库的方式》:本文主要介绍java实现docker镜像上传到harbor仓库的方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录1. 前 言2. 编写工具类2.1 引入依赖包2.2 使用当前服务器的docker环境推送镜像2.2

ubuntu如何部署Dify以及安装Docker? Dify安装部署指南

《ubuntu如何部署Dify以及安装Docker?Dify安装部署指南》Dify是一个开源的大模型应用开发平台,允许用户快速构建和部署基于大语言模型的应用,ubuntu如何部署Dify呢?详细请... Dify是个不错的开源LLM应用开发平台,提供从 Agent 构建到 AI workflow 编排、RA

Docker安装MySQL镜像的详细步骤(适合新手小白)

《Docker安装MySQL镜像的详细步骤(适合新手小白)》本文详细介绍了如何在Ubuntu环境下使用Docker安装MySQL5.7版本,包括从官网拉取镜像、配置MySQL容器、设置权限及内网部署,... 目录前言安装1.访问docker镜像仓库官网2.找到对应的版本,复制右侧的命令即可3.查看镜像4.启

debian12安装docker的实现步骤

《debian12安装docker的实现步骤》本文主要介绍了debian12安装docker的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着... 目录步骤 1:更新你的系统步骤 2:安装依赖项步骤 3:添加 docker 的官方 GPG 密钥步骤

Windows Docker端口占用错误及解决方案总结

《WindowsDocker端口占用错误及解决方案总结》在Windows环境下使用Docker容器时,端口占用错误是开发和运维中常见且棘手的问题,本文将深入剖析该问题的成因,介绍如何通过查看端口分配... 目录引言Windows docker 端口占用错误及解决方案汇总端口冲突形成原因解析诊断当前端口情况解

Docker镜像修改hosts及dockerfile修改hosts文件的实现方式

《Docker镜像修改hosts及dockerfile修改hosts文件的实现方式》:本文主要介绍Docker镜像修改hosts及dockerfile修改hosts文件的实现方式,具有很好的参考价... 目录docker镜像修改hosts及dockerfile修改hosts文件准备 dockerfile 文