Dockerfile Centos7 安装wget gcc vim vi openssh 并默认启动ssh

Dockerfile 文档内容

#设置基本的镜像,后续命令都以这个镜像为基础
FROM ansible/centos7-ansible:latest
#作者信息
MAINTAINER JPinsz
#安装wget命令
RUN yum clean all
RUN yum makecache fast
RUN yum install wget -y
#删除默认YUM源,使用YUM源为国内163 YUM源;
RUN rm -rf /etc/yum.repos.d/*;wget -P /etc/yum.repos.d/ http://mirrors.163.com/.help/CentOS7-Base-163.repo
#RUN命令会在上面指定的镜像里执行任何命令
RUN yum install passwd openssh-server gcc -y
#修改root密码为1qaz@WSX

RUN echo '123' | passwd --stdin root
#设置镜像SSHD服务为TCP 6022端口
RUN sed -i 's/#Port.*/Port 6022/g' /etc/ssh/sshd_config
#安装vi、vim、wget、tar、make、netstat、ifconfig等
RUN yum install vi vim wget tar make net-tools -y
#创建用于存储应用数据目录/data/
RUN mkdir -p /data/
#将应用数据存储目录/data/进行映射,可以实现数据持久化保存;
VOLUME ["/data/"]
#暴露ssh端口6022
EXPOSE 6022
#设定运行镜像时的默认命令,并以daemon方式启动sshd
#基于镜像运行启动时,启动SSHD服务,能够实现远程访问
RUN ssh-keygen -q -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key -N ''
RUN ssh-keygen -q -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ''
RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_ed25519_key -N ''
CMD /usr/sbin/sshd -D

 镜像制作

docker bulid -t centos7:v1 .

 查看镜像

docker images

 

 

 启动容器

# -d –detach daemon后台模式运行容器,并且打印容器id。
# -i –interactive 即使没有连接,也要保持标准输入保持打开状态,一般与 -t 连用
# -t –tty 分配一个伪tty,一般与 -i 连用。
# -v 指定宿主机到容器的目录挂载
# --privileged 授予容器最高权限运行
docker run -itd --privileged -v /data/:/data/ centos7:v1

 登录到容器

# 其中/bin/bah 与 bash 暂时来说效果一致
docker exec -it docker-id /bin/bash

 

posted @ 2020-08-25 12:03  JPinsz  阅读(1585)  评论(0编辑  收藏  举报