生成运行就启动ssh服务的镜像,不用每次进入容器打开ssh服务
1. 新建一个文件夹ubuntu
2. 在里面新建一个doekerfile文件
docker文件内容如下:
################################################
#
#生成SSH服务的ubuntu镜像
#
################################################
#基于哪个镜像生成新的镜像
FROM ubuntu:20.04
#作者名
MAINTAINER haibin253
#设置环境变量
ENV TZ Asia/Shanghai
ENV LANG zh_CN.UTF-8
#执行命令
#替换为阿里源
RUN sed -i 's#http://archive.ubuntu.com/#http://mirrors.aliyun.com/#' /etc/apt/sources.list \
&& sed -i 's#http://security.ubuntu.com/#http://mirrors.aliyun.com/#' /etc/apt/sources.list
#更新软件源并安装软件
#安装ssh服务
RUN apt-get update -y \
&& apt-get -y install iputils-ping \
&& apt-get -y install wget \
&& apt-get -y install net-tools \
&& apt-get -y install vim \
&& apt-get -y install openssh-server \
&& apt-get clean && rm -rf /tmp/* /var/lib/apt/lists/* /var/tmp/*
#设置密码
RUN echo 'root:root' |chpasswd
#允许root用户登入
RUN sed -ri 's/^#PermitRootLogin\s+.*/PermitRootLogin yes/' /etc/ssh/sshd_config
RUN sed -ri 's/UsePAM yes/#UsePAM yes/g' /etc/ssh/sshd_config
#创建sshd目录
RUN mkdir /var/run/sshd
# 声明端口
EXPOSE 22
#开始ssh服务
CMD ["/usr/sbin/sshd", "-D"]
3.cmd 进入ubuntu目录
4开始编译ubuntu,命令如下:
使用当前目录的 Dockerfile 创建镜像,标签为 haibin253/ubuntu_ssh:20.04
后面的 "."表示当前目录
docker build -t haibin253/ubuntu_ssh:20.04 .
运行等待生成镜像
完成后查看镜像,复制IMAGE ID
docker images
运行容器,后面的haibin253/ubuntu_ssh:20.04就是上面编译的镜像标签
--name ubuntu_ssh是你想创建的容器名字
docker run --name ubuntu_ssh -i -t -d -p:10122:22 haibin253/ubuntu_ssh:20.04
然后输入命令进入容器
ubuntu_ssh 是上一步的容器名
docker exec -i -t ubuntu_ssh /bin/bash
现在就可以使用容器中的ubuntu了
下面验证ssh服务是否可用
ps -e|grep ssh
现在我们打开putty测试看能不能连接上ubuntu——ssh
输入账号密码:root
如上图已经可以连接上ubuntu了