使用ssh远程连接其他机器上的Docker容器

首先,启动一个Docker容器

docker run -p 2222:22 -dit [docker镜像] /bin/bash

ssh默认端口为22,这里将容器的22端口映射为宿主机的2222端口,这样其他机器可以通过宿主机2222端口访问该Docker容器。

容器中需要进行配置。

apt install openssh-server vim rsync gdb gdbserver

然后修改sshd_config

vim /etc/ssh/sshd_config

找到下述行并做对应修改

PermitRootLogin yes #允许root用户ssh登录
UsePAM no ##禁用PAM

然后重启ssh服务

/etc/init.d/ssh restart

设置一下root用户密码

passwd root

这样可以用其他机器远程访问宿主机的端口,从而连接到Docker容器了

ssh -p 2222 root@[宿主机ip]

将修改后的容器commit一下,方便以后启用

由于每次Docker容器从一个镜像启动时,root密码都会更改,因此写了一个简单的bash脚本方便启动(有更好的解决办法请恳请各位大佬不吝赐教)

#!/bin/bash

echo "docker image name/id: $1";
docker_image=$1;
echo "host port: $2";
host_port=$2;

container_id=$(docker run -p ${host_port}:22 -dit ${docker_image} /bin/bash);
echo "container id: ${container_id}";
docker exec ${container_id} /etc/init.d/ssh start;

echo "enter password: ";
docker exec -it ${container_id} passwd;

参考

  • https://blog.csdn.net/weixin_44961798/article/details/104617561
  • https://blog.csdn.net/qq1124034012/article/details/104517977
  • https://blog.csdn.net/zwt0909/article/details/52355576
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值