https://blog.csdn.net/qq_38603541/article/details/124028994

要在Docker容器启动时自动启动自定义SSH文件,可以通过编写一个Dockerfile或使用Docker Compose来实现。

首先,创建一个自定义的SSH密钥文件并将其命名为id_rsaid_rsa.pub(或其他名称)。

然后,在Dockerfile中添加以下内容:

FROM <基础镜像>

# 将自定义SSH文件复制到容器中
COPY id_rsa /root/.ssh/id_rsa
COPY id_rsa.pub /root/.ssh/id_rsa.pub

# 更改权限
RUN chmod 600 /root/.ssh/id_rsa
RUN chmod 644 /root/.ssh/id_rsa.pub

# 安装所需软件(例如OpenSSH)
RUN apt-get update && apt-get install -y openssh-server

# 启动SSH服务
RUN service ssh start

# 设置SSH文件编码
RUN echo "export LANG=<编码>" >> /etc/profile

# 设置容器启动时自动运行的命令(例如启动一个Web服务器)
CMD <启动命令>

<基础镜像>替换为所需的基础镜像名称(例如ubuntu:latest)。
<编码>替换为所需的SSH文件编码(例如en_US.UTF-8)。
<启动命令>替换为容器启动时需要自动运行的命令(例如启动一个Web服务器)。

保存Dockerfile后,使用以下命令构建和运行容器:

docker build -t <镜像名称> .
docker run -d <镜像名称>

这将构建镜像并在容器中启动自定义的SSH服务,并设置了自定义的SSH文件和编码。

请注意,如果你希望在容器外部访问SSH服务,你还需要将SSH服务的端口映射到主机上,可以通过添加-p参数来完成。例如:

docker run -d -p 2222:22 <镜像名称>

这将把容器内的SSH服务端口22映射到主机上的端口2222。这样,你就可以使用SSH客户端连接到容器的SSH服务了。

文档更新时间: 2023-08-22 13:12   作者:admin