前言
在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系统,没有sshd命令。
apt-get update 更新软件源
apt-get install openssh-server 安装ssh服务
要正常启动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 生成登录的公钥信息
再将该文件内容拷贝到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 查看本地生成的新镜像
使用镜像
docker run -p 10022:22 -d sshd:ubuntu /run.sh
run启动容器,-p 容器的22端口映射到宿主机的10022端口,-d 后台运行
docker ps 查看容器运行的信息
此时,宿主机可以通过SSH访问10022端口来登录容器。。