简介
在使用 Docker 进行应用部署时,经常需要在容器中进行调试以及维护。其中 SSH 登录是最常用的访问方式之一。本文将介绍如何在 Docker 容器中启用 SSH 访问,以及如何通过 SSH 访问运行中的容器。
安装 SSH 服务
首先,在容器中安装 SSH 服务。以 Ubuntu 18.04 为例,在 Dockerfile 文件中添加以下代码:
RUN apt-get update && \ apt-get install -y openssh-server && \ mkdir /var/run/sshd && \ echo 'root:password' | chpasswd && \ sed -i 's/^#PermitRootLogin.*/PermitRootLogin yes/' /etc/ssh/sshd_config && \ sed -ri 's/UsePAM yes/#UsePAM yes/g' /etc/ssh/sshd_config
其中,root:password
可以修改为其他的用户名和密码。
启动 SSH 服务
在容器中运行 SSH 服务:
/usr/sbin/sshd -D
访问容器
容器运行后,可以通过 SSH 客户端访问容器:
ssh root@<container-ip>
其中,<container-ip>
是容器的 IP 地址。可以通过以下命令获取容器的 IP 地址:
docker inspect <container-id> | grep IPAddress
或者,使用以下命令启动容器时,指定容器的 IP 地址:
docker run -it --rm --name test -p 2222:22 --ip 172.18.0.2 ubuntu:sshd /usr/sbin/sshd -D
其中,172.18.0.2
是指定的 IP 地址。
使用 SSH 进入容器
通过 SSH 连接到容器后,可以直接在容器中执行命令。也可以使用 docker exec
命令进入容器:
docker exec -it <container-id> /bin/bash
其中,<container-id>
是容器的 ID。
总结
本文介绍了在 Docker 容器中启用 SSH 访问的方法,以及如何通过 SSH 访问容器。使用 SSH 访问容器可以方便地进行容器的调试以及维护工作。同时,也可以使用 SSH 访问容器中的应用程序,便于进行应用程序的管理和维护。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6463151f968c7c53b04195fb