在docker容器中使用dockerfile构建SSH,systemctl,nginx,tomacat,mysql镜像,有手就行!easy

前提:
已经部署安装docker,能够正常使用即可
使用一台centos7的虚拟机,关闭防火墙和和核心防护

一:dockerfile构建镜像

1.1 Dockerfile命令解释

在这里插入图片描述

1.2 构建SSH镜像

1.创建目录,编写Dockerfile

[root@localhost ~]# mkdir sshd
[root@localhost ~]# cd sshd
[root@localhost ~]# vim Dockerfile

FROM centos:7                                        //指定基础镜像
MAINTAINER The CentOS Project <cloud-centos>             //镜像的维护人信息
RUN yum -y update                             //更新容器yum源
RUN yum -y install openssh* net-tools lsof telnet passwd           //部署环境工具
RUN echo '123456' | passwd --stdin root            //设置root管理员账户登录密码
RUN sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/ssh_config            //禁用ssh中的pam验证
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key             //创建非对称密钥,并指定文件路径
RUN sed -i '/^session\s\+required\s\+pam_loginuid.so/s/^/#/' /etc/pam.d/sshd    //禁用pam的ssh的pam会话模块
RUN mkdir -p /root/.ssh && chown root.root /root && chmod 700 /root/.ssh         //创建ssh工作目录和权限设置
EXPOSE 22
CMD ["/usr/sbin/sshd","-D"]            //容器加载时启动sshd服务

2.生成镜像,名称为sshd:new

[root@localhost sshd]# docker build -t sshd:new .         //生成镜像
。。。省略内容,出现Successfully即安装成功

3.启动容器

[root@localhost sshd]# docker run -d -P sshd:new  
[root@localhost sshd]# docker ps -a
CONTAINER ID        IMAGE               COMMAND               CREATED             STATUS              PORTS                   NAMES
adafc81ccb30        sshd:new            "/usr/sbin/sshd -D"   6 seconds ago       Up 5 seconds        0.0.0.0:32768->22/tcp   distracted_pasteur

//-P:自动生成一个端口号,并且第一次产生的端口号为32768

4.远程登录测试

[root@localhost sshd]# ssh localhost -p 32768
。。。省略
Are you sure you want to continue connecting (yes/no)? yes         //输入yes
root@localhost's password:                 //输入你设的密码,我设的是123456
[root@adafc81ccb30 ~]#               //登录成功

1.3 构建systemctl镜像

1.创建目录,编写Dockerfile

[root@localhost sshd]# mkdir /systemctl
[root@localhost sshd]# cd /systemctl
[root@localhost systemctl]# vim Dockerfile

FROM sshd:new
ENV container docker                 设置环境变量,container和docker
RUN (cd /lib/systemd/system/sysinit.target.wants/;for i in *;do [ $i ==
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值