我有一些在 P2 实例上运行的 docker 容器。过去我在 P2 实例中运行 tmux,并在里面运行一个 docker 容器。后来我用了
docker exec -it
Run Code Online (Sandbox Code Playgroud)
进入正在运行的 docker 容器。我想避免上述情况并能够在现有容器内运行 tmux。打
tmux new -s <some name>
Run Code Online (Sandbox Code Playgroud)
什么都不做。
我假设您想通过 . 连接到远程运行的 docker 容器tmux。为此,您必须在容器内运行 ssh 服务器并tmux使用 附加到会话ssh。例如:
ssh使用并安装创建容器映像tmux。可能Dockerfile看起来像这样:
FROM ubuntu:latest
RUN apt-get update && \
apt install -y tmux && \
apt install -y openssh-server && \
service ssh start && \
tmux new -s mysesh
EXPOSE 22/tcp
Run Code Online (Sandbox Code Playgroud)运行容器,并将端口转发到 ssh 端口:
docker run -it -d -p 8654:22 <image name>
Run Code Online (Sandbox Code Playgroud)附加到tmux会话:
ssh user@<hostname> -p 8654 -t "tmux a -t mysesh"
Run Code Online (Sandbox Code Playgroud)注意:tmux会话是特定于用户的,因此请确保该用户存在于容器中,并且tmux会话以容器内的用户身份启动。
| 归档时间: |
|
| 查看次数: |
22317 次 |
| 最近记录: |