首先,启动一个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