ssh远程连接docker中的container

由于工作需要,要远程连接container,本地机器是windows,以下为解决步骤:

1. 环境

   本地:Windows

              ↓

   docker版本1.12

              ↓

   远程:docker中的Container(Ubuntu)


2. Container安装ssh服务

首先进入Container,进行以下步骤:

① 安装ssh

sudo apt-get install openssh-server #安装ssh服务器
service ssh status # 查看ssh服务启动情况
service ssh start # 启动ssh服务
② 配置ssh,允许root登陆

vi /etc/ssh/sshd_config
将PermitRootLogin的值从withoutPassword改为yes

③ 重启ssh服务

service ssh restart # 重启动ssh服务


3. 保存Container镜像

另外开启Docker Quickstart Terminal,保存镜像

docker ps #查看正在运行的container
**找到所要保存的container的container id,假设为xxxxxx**
docker commit xxxxxxxx tomjerry/foobar
(注:tomjerry/foobar为要保存的新镜像的名字,可任意写)


4. 重新运行Container

docker run -it -p 50001:22 tomjerry/foobar /bin/bash
service ssh start
注意-p 50001:22这句,意思是将docker的50001端口和container的22端口绑定,这样访问docker的50001等价于访问container的22端口


5. ssh连接container
你可以用xshell或putty等ssh客户端工具连接container

首先假设各方的ip如下:

本地windows ip: 192.168.99.1
docker ip:192.168.99.100
container ip:172.17.0.3
那么,你要远程container,则要访问以下地址:

ssh 192.168.99.100:50001

这样通过访问docker的50001端口,就神奇的间接连通到container的22端口了,从而达到ssh连接container的目的,至此。


  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
### 回答1: 你可以使用 docker run 命令来在 Alpine Linux 启动 docker,例如: docker run -d --name ssh -p 22:22 -e SSH_USERS=user:pass alpine/ssh。 ### 回答2: 要在Alpine Linux的Docker容器使用SSH远程连接,需要先在容器内安装SSH服务器,并将SSH端口映射到宿主机。 下面是一个启动带有SSH功能的Alpine Linux Docker容器的示例命令: ``` docker run -d -p 2222:22 --name my_container alpine:latest ``` 解释: - `docker run` 用于在Docker启动一个新的容器。 - `-d` 标志表示在后台运行容器。 - `-p 2222:22` 标志表示将容器的22端口映射到宿主机的2222端口。 - `--name my_container` 标志表示给容器取个名字为"my_container"。 - `alpine:latest` 表示使用的镜像是最新版本的Alpine Linux。 接下来,需要进入容器并安装SSH服务。通过以下命令进入容器的shell环境: ``` docker exec -it my_container /bin/sh ``` 然后,在容器内安装openssh-server: ``` apk update apk add openssh ``` 然后,可以修改`/etc/ssh/sshd_config`文件来自定义SSH连接的配置,例如允许root用户远程连接等。修改完成后,重启SSH服务: ``` rc-update add sshd default /etc/init.d/sshd start ``` 现在,可以通过SSH远程连接到容器了。使用以下命令: ``` ssh -p 2222 root@宿主机IP地址 ``` 其`宿主机IP地址`是运行容器的宿主机的IP地址。如果一切正常,将会要求输入密码并成功连接到容器的Alpine Linux。 请注意,这只是一个简单的示例,实际使用时可能需要根据需求进行更多的设置和安全配置。 ### 回答3: 要通过SSH远程连接Docker的Alpine Linux,您可以使用以下步骤: 1. 确保您的主机上已安装Docker,并且Docker守护程序正在运行。您可以通过运行`docker version`命令来验证安装情况。 2. 使用以下命令在Docker启动一个Alpine Linux容器: ``` docker run -d --name=my-alpine alpine ``` 这将以后台模式启动一个名为"my-alpine"的容器,该容器基于Alpine Linux镜像。 3. 运行以下命令来获取Alpine Linux容器的IP地址: ``` docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' my-alpine ``` 记下该IP地址,以便稍后通过SSH连接使用。 4. 确保您的主机上具有SSH客户端工具(如OpenSSH)。 5. 使用以下命令通过SSH远程连接到Alpine Linux容器: ``` ssh root@<container-ip-address> ``` 其,`<container-ip-address>`是上一步获取到的Alpine Linux容器的IP地址。 6. 您将被要求输入Alpine Linux容器的root密码。默认情况下,Alpine Linux镜像的root密码为空。按照提示输入密码并按Enter键。 现在,您已经通过SSH成功远程连接Docker的Alpine Linux容器。您可以在远程终端执行命令以管理容器。请记住,在生产环境,安全性很重要,因此您应该考虑为容器设置更强大的身份验证方式,如SSH密钥认证。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值