使用 ssh 连接 Docker 容器

为了能使用 Jenkins 直接操作 Docker 容器,给容器开个 ssh 服务器。

# 开容器

docker run -p 4922:22 -it --name my-ssh-server node /bin/bash
cat /etc/issue # 查看发行版和内核版本

# 修改 debian 更新源

向兲朝低头

## /etc/apt/sources.list
deb http://mirrors.163.com/debian/ stable main
deb-src http://mirrors.163.com/debian/ stable main
## 没有编辑器可以直接使用 echo
echo deb http://mirrors.163.com/debian/ stable main > /etc/apt/sources.list
echo deb-src http://mirrors.163.com/debian/ stable main >> /etc/apt/sources.list

# 开启 ssh server

apt-get install openssh-server
service ssh start # 开启服务
ps -e | grep ssh # 判断是否已开启

# 新版本默认不允许 root 登录

可以修改配置文件 /etc/ssh/sshd_config

## PermitRootLogin without-password
PermitRootLogin yes # 重启 ssh

重启服务器

service ssh restart
## /etc/init.d/ssh restart 不行的?

# 生成镜像

docker commit my-ssh-server my-ssh-server

# 然后就可以直接在宿主机用 root 密码登录了

ssh [email protected] -p 4922

# 参考

Debian apt-get