Docker 容器开启 SSH 访问的方法

在使用 Docker 构建应用程序时,有时需要访问正在运行的容器。其中一种方式是通过 ssh 连接到容器中。在本文中,我们将探讨如何在 Docker 容器中开启 SSH 访问,并介绍具体实现步骤。

安装 SSH 服务器

首先,安装 SSH 服务器在容器中。可以执行以下命令:

--- ------
--- ------- -- --------------

创建 SSH 用户

创建一个新的用户,以便用于 SSH 连接。可以使用以下命令来创建新用户:

------- -- ----------

设置新用户的密码:

------ ----------

修改 SSH 配置文件

修改 SSH 配置文件,以便允许远程连接。打开 /etc/ssh/sshd_config 文件,并修改以下两个选项:

--------------- ---
---------------------- ---

这允许 root 用户远程连接,并且使用密码进行验证。

重启 SSH 服务使配置生效:

------- --- -------

在容器启动时自动启动 SSH 服务

现在我们已经安装和配置了 SSH 服务器,下一步是确保每次容器启动时,SSH 服务都能自动启动。有两种方法可以实现这一目标。

方法一:编写脚本并将其添加到 Dockerfile 中

为了在容器启动时启动 SSH 服务,可以编写一个脚本并添加到容器的 Dockerfile 文件中。示例如下:

---- -------------

--- ------- ------ -- -
    ------- ------- -- -------------- -- -
    ----- -------------

--- -------- ---------
--- ----- -- ---------

--- -------------

/start.sh 脚本中添加以下行:

---------
------- --- -----

方法二:使用 systemd

另外一种方法是使用 systemd 管理 SSH 服务,并且在容器启动时自动启用它。

需要在 Dockerfile 文件中放置以下内容:

---- -------------

--- ------- ------ -- -
    ------- ------- -- ------- -------------- -- -
    --------- ------ ---

--- --------------

注意:在这个 Dockerfile 中,我们使用 /sbin/init 启动系统,而不是普通命令(例如 CMD service ssh start),因为要在容器中使用 systemd。

使用 SSH 访问容器

现在容器已经配置了 SSH 服务器并在启动时自动启动。下一步是连接到运行着 SSH 服务器的 Docker 容器。

首先,需要获取容器的 IP 地址。可以使用以下命令来查找容器 IP 地址:

------ ------- ----------------- ------------------------------------------------- --------------

通过运行以下命令与容器连接:

--- ---------------------------------

这样,您就可以使用 SSH 连接到容器中并执行需要的操作了。

结论

本文介绍了在 Docker 容器中开启 SSH 访问的方法。我们首先安装和配置了 SSH 服务器,然后详细解释了如何自动启用 SSH 服务,并演示了如何通过 SSH 连接到运行着 SSH 服务器的容器中。希望本文对那些需要在 Docker 中远程管理应用程序的读者提供了实用的技巧和指导。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/672d46c1ddd3a70eb6da0ff5