遇到一个问题,tmux
未在docker容器文件中初始化。此外,人们将tmux
附加到一个预先存在的容器上,从而造成搜索障碍。这不是我想要做的。
# in the dockerfile
FROM debian:latest
RUN apt-get install tmux
RUN tmux new -s foo -d
RUN tmux ls
_________________________
$: docker build .
...
> [8/8] RUN tmux ls:
#11 0.415 no server running on /tmp/tmux-0/default
------
executor failed running [/bin/sh -c tmux ls]: exit code: 1
我试图做的是运行两个“应用程序”,它们需要同时相互对话。这个想法是为了避免使用docker compose来解决这个特殊问题。
我可以轻松地将这两个命令作为后台进程运行。
但是,我宁愿让它们在一个tmux会话中运行,当图像运行时,我可以附加到该会话。
在构建过程中,如何在docker容器内启动tmux
?
这是层的问题:
这是你的工作代码。
FROM debian:latest
RUN apt-get update && apt-get install -y tmux
RUN tmux new -s foo -d && tmux ls
但它只会解决构建问题,而不会解决您的问题。
您应该在入口点这样做,因为当层终止时tmux被终止。。。
在构建每个层的过程中,您可以启动一些进程(您启动了tmux)。层构建完成后,将终止在该特定层中启动的所有进程。
容器只是只读图像层之上的另一层,所以您需要在那里启动tmux。
Entrypoint是容器无融资创业时运行的bash脚本。
示例entrypoint可以是:
#!/bin/bash
# entrypoint.sh
set -eu
tmux new -s foo -d && tmux ls
exec "$@"
chmod +x entrypoint.sh
Dockerfile
\ COPY ./entrypoint.sh /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]
在docker映像中启动多个程序是不好的做法。你正在失去码头工人的主要优势,即分离。
然而,官方文件对你的问题说了一句话:https://docs.docker.com/config/containers/multi-service_container/
我真的很喜欢这样做(当我必须)与监督
。这是一个小程序来管理你的程序。
我正在docker容器中运行一个简单的spring boot应用程序。在启动时,是否从或应用程序将始终在以下时间点挂起: 这里有一个问题,我只能在数字海洋(1CPU,1GB MEM)的Ubuntu 14.04盒子上重现这个,即使它在容器中运行。在我的本地机器上,一切都运行良好。 Dockerfile文件: 我尝试过的事情 给JVM更多内存(占机器总数的75%) 按这里建议的方式停止库 我能接触到的
安装到Ubuntu容器中需要运行/etc/init.d/amh-start才会启动, 把/etc/init.d/amh-start放到dockerfile中的cmd 运行容器启动完程序容器会自动关闭
本文向大家介绍Docker使用编写dockerfile启动node.js应用,包括了Docker使用编写dockerfile启动node.js应用的使用技巧和注意事项,需要的朋友参考一下 编写 Dockerfile 以 express 自动创建的目录为例,目录结构如下: 在项目目录下新建 Dockerfile 文件 FROM 指定基础镜像为 node 的 10.15 版本(node 官方版本可在此
主要内容:指令详解什么是 Dockerfile? Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。 使用 Dockerfile 定制镜像 这里仅讲解如何运行 Dockerfile 文件来定制一个镜像,具体 Dockerfile 文件内指令详解,将在下一节中介绍,这里你只要知道构建的流程即可。 1、下面以定制一个 nginx 镜像(构建好的镜像内会有一个 /usr/s
我成功地在ubuntu 18.04上安装了docker和nvidia-docker,我从NVIDIA的GPU云中提取了这个图像 用这个命令运行它 例如,容器给了我一个shell提示,它似乎可以工作 导致 它看到了我脆弱的gpu。我尝试用这个命令运行jupyter 但我明白了 我知道Jupyter安装在容器里因为当我打字的时候 我得到 打字 给予 在连接到容器的主机目录中,我有几个笔记本 但似乎什么
我有以下系统脚本: 运行命令:systemctl start/stop hub工作正常。我还使用systemctl启用集线器创建了符号链接。为什么我的服务在我重新启动整个笔记本电脑后没有启动?我遵循了docker指南,以便Docker在重新启动时启动,但由于某种原因我的容器没有启动。我的脚本中缺少一个字段吗? 我正在使用ExecStart,“/home/hub/hub.sh”脚本的命令是: 重新启