本文记录如何使用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.shdocker 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