1 使用Dockerfile为镜像创建ssh服务
1.1 准备工作
首先在宿主机建立Dockerfile 工作空间,并准备ssh服务启动脚本,以及ssh免密登录的公钥文件
$
mkdir ~/ssh_ubuntu
$
cd ~/ssh_ubuntu
$
touch start.sh
$ vim start.sh
$ ssh-keygen
$
cat ~/.ssh/公钥文件
> authorized_keys
$
touch Dockerfile
$ vim Dockerfile
1.1.1 脚本内容如下
/usr/sbin/sshd -D
1.1.2 Dockerfile内容如下
FROM ubuntu:20.04
MAINTAINER kevin
<kevin@163.com
>
WORKDIR /root
RUN
echo "deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse" > /etc/apt/sources.list \
&& ehco
"deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse" >> /etc/apt/sources.list \
&& echo "deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse" >> /etc/apt/sources.list \
&& echo "deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse" >> /etc/apt/sources.list \
&& echo "deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse" >> /etc/apt/sources.list \
&& echo "deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse" >> /etc/apt/sources.list \
&& ehco
"deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse" >> /etc/apt/sources.list \
&& ehco
"deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse" >> /etc/apt/sources.list \
&& echo "deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse" >> /etc/apt/sources.list \
&& echo "deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse" >> /etc/apt/sources.list
RUN
apt-get update
&& apt-get upgrade -y
RUN
apt-get install openssh-server -y
RUN
apt-get clean
&& rm -rf /var/lib/apt/lists/*
RUN
mkdir -p /var/run/sshd
&& mkdir -p .ssh
RUN
sed -ri
"s/session required pam_loginuid.so/# session required pam_loginuid.so/g" /etc/pam.d/sshd
COPY authorized_keys ./ssh/authorized
COPY start.sh
.
RUN
chmod 755 start.sh
EXPOSE 22
CMD
["./start.sh"]
1.2 创建镜像
$ docker build -t myubuntu:myssh
.
1.3 运行容器
$ docker run --name
=myssh -P -d myubuntu:myssh
1.4 测试ssh免密登陆
ssh ip -p 端口
2 使用容器创建镜像ssh服务
$ docker run --name
=myssh -it ubuntu:20:04 /bin/bash
apt-get update
vim /etc/apt/sources.list.d/aliyun.list
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
apt-get update
apt-get install openssh-server
mkdir /var/run/sshd
/usr/sbin/sshd -D
&
sed -ri
"s/session required pam_loginuid.so/# session required pam_loginuid.so/g" /etc/pam.d/sshd
mkdir root/.ssh
vi /root/.ssh/authorized_keys
vi start.sh
chmod +x start.sh
/usr/sbin/sshd -D
exit
$ docker commit fc1 myubuntu:myssh
docker images
docker run --name
=myssh -P -d myubuntu:myssh /run.sh
docker
ps
ssh ip -p port