0%

创建支持 SSH 服务的 docker ubuntu 镜像

本文记录如何使用docker commit创建一个带有SSH服务的ubuntu镜像

以交互式进入容器

docker run -it ubuntu:latest

安装sshd服务

apt-get update && apt-get install openssh-server

以后台常驻方式启动sshd服务

/usr/sbin/sshd -D

查看端口及进程

netstat -aunpt
ps aux

复制公钥信息到容器中

在主机(非容器内)使用ssh-keygen -t rsa生成rsa的公私密钥对, 将~/.ssh/id_rsa.pub中的内容复制到容器~/.ssh/authorized_keys文件中(即 粘贴客户端的公钥信息)

创建自启动文件

vim /init.sh
添加如下信息:
#!/bin/bash
/usr/sbin/sshd -D
赋予权限chmod 500 /init.sh

提交容器保存为镜像方便日后使用

docker commit $(CONTAINAER_ID) ubuntu:ubuntu_sshd

映射端口并以常驻后台方式运行镜像

docker run -p 10122:22 -d ubuntu:ubuntu_sshd /init.sh
docker ps -a可查看容器状态

客户端(非容器内)使用ssh链接

ssh -i ~/.ssh/id_rsa root@192.168.99.101 -p 10122

使用docker cp复制文件到容器中

docker cp ~/.ssh/docker-sshd-authorized_keys $(CONTAINAER_ID):/root/.ssh/authorized_keys