![无法以守护进程模式启动 Docker 容器](https://linux22.com/image/709902/%E6%97%A0%E6%B3%95%E4%BB%A5%E5%AE%88%E6%8A%A4%E8%BF%9B%E7%A8%8B%E6%A8%A1%E5%BC%8F%E5%90%AF%E5%8A%A8%20Docker%20%E5%AE%B9%E5%99%A8.png)
这是我的docker文件:
FROM ubuntu:16.04
RUN apt-get update --fix-missing && apt-get install -y emacs npm git nodejs
RUN rm -rf .emacs .emacs.d
RUN git clone https://github.com/syl20bnr/spacemacs ~/.emacs.d
RUN ln -s /usr/bin/nodejs /usr/bin/node
RUN npm install && npm install -g yarn
我尝试以守护进程模式启动它,以便稍后可以附加到该进程
docker run -d spacemacs bash
但它未能留驻
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d4f867eb78f1 spacemacs "bash" 3 minutes ago Exited (0) 3 minutes ago loving_turing
为什么会这样?我之前已经以守护进程模式运行过其他容器。
答案1
docker run -d spacemacs bash
您运行该命令bash
时没有输入任何内容,因此它退出了。如果您在普通的 Linux 提示符下执行此操作,也会发生同样的情况:
$ bash </dev/null
$ echo $?
0
如果您希望稍后连接到正在运行的 bash shell,您可以告诉 docker 该命令是交互式的,以便它保持 stdin 开放。我还建议分配一个 tty:
docker run -dit spacemacs bash