docker创建支持SSH服务的镜像(一)

前言

在kali中搭建Docker后,尝试对Docker进行学习。根据《Docker技术入门与实战》一书,进行实验操作。

在kali(宿主机)上启动docker服务。

systemctl start docker  启动docker

systemctl stop docker  停止docker

systemctl enable docker  开机自启动

创建镜像

使用ubuntu14.04镜像创建一个容器

docker pull  ubuntu:14.04  拉取ubuntu镜像

也可以直接运行一个容器,ubuntu镜像会自动拉取。

docker  run -it  ubuntu:14.04  /bin/bash 

ubuntu:14.04

进入ubuntu系统,没有sshd命令。

apt-get  update  更新软件源

apt-get install  openssh-server  安装ssh服务

openssh-server

要正常启动SSH服务,需要目录/var/run/sshd存在,所以手动创建并启动

mkdir  -p  /var/run/sshd

/usr/sbin/sshd  -D        启动ssh服务

修改ssh服务的安全配置,取消pam登录的限制。

sed  -ri  's/session requiredpam_loginuid.so/#session required pam_loginuid.so/g'  /etc/pam.d/sshd

在kali中运行该命令,生成id_rsa.pub文件。存放在/root/.ssh/目录下。

ssh-keygen  -t  rsa  生成登录的公钥信息

/root/.ssh/id_rsa
id_rsa.pub

再将该文件内容拷贝到ubuntu的authorized_keys文件中。

mkdir  root/.ssh

vi  /root/.ssh/authorized_keys

创建自启动文件run.sh,并赋予权限。

vi  /run.sh

chmod  +x  run.sh

run.sh脚本为

#!/bin/bash

/usr/sbin/sshd -D

最后exit退出容器。

保存镜像

docker  commit  xxxx  sshd:ubuntu    保存为新的sshd:ubuntu镜像

docker images  查看本地生成的新镜像

commit
images

使用镜像

docker  run  -p  10022:22  -d  sshd:ubuntu  /run.sh

run启动容器,-p 容器的22端口映射到宿主机的10022端口,-d 后台运行

docker  ps  查看容器运行的信息

ps

此时,宿主机可以通过SSH访问10022端口来登录容器。。

ok
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容