Dockerlile生成带ssh的ubuntu镜像

生成运行就启动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
如图表示ssh服务已打开

现在我们打开putty测试看能不能连接上ubuntu——ssh


微信截图_20211105104746.png

输入账号密码:root



如上图已经可以连接上ubuntu了

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

推荐阅读更多精彩内容