偷偷学 Docker 系列 | 基于 Dockerfile 创建 sshd/systemctl/nginx/mysql 镜像(纯干货!)

这篇博客详细介绍了如何利用 Dockerfile 分别构建 sshd、systemctl、nginx 和 mysql 的镜像。通过一步步的指导,读者将学会如何从零开始编译安装这些服务,内容涵盖各个镜像的构建过程,是 Docker 学习者不可多得的实战教程。
摘要由CSDN通过智能技术生成

①构建 sshd 镜像

[root@docker ~]# mkdir /sshd
[root@docker ~]# cd /sshd
[root@docker sshd]# vim Dockerfile

FROM centos:7
#指定基础镜像

MAINTAINER xcf-sshd
#作者信息

RUN yum -y update
RUN yum -y install openssh* net-tools lsof telnet passwd
#openssh*:下载openssh组件包
#net-tools:网络组件,支持使用ifconfig命令查看网卡信息
#lsof:查看进程打开的文件、打开文件的进程、进程打开的端口
#telnet:支持远程连接
#passwd:基础镜像是最小化安装没有passwd,用于设置密码,更新用户身份令牌

RUN echo "123123" | passwd --stdin root
#设置root登录密码

RUN sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config
#开启PAM认证模块,开启第三方登录认证

RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
#创建密钥对验证方式,rsa表示非对称密钥,-f指定验证文件

RUN sed -i '/^session\s\+required\s\+pam_loginuid.so/ s/^/#/' /etc/pam.d/sshd
#响应修改PAM认证模块

RUN mkdir -p /root/.ssh && chown root.root /root && chmod 700 /root/.ssh
#700权限表示只有自己能控制

EXPOSE 22
#开放22端口

CMD ["/usr/sbin/sshd","-D"]
#容器加载时启动sshd,并开启守护进程


--
[root@docker sshd]# docker build -t sshd:new .
#生成镜像,注意这里的'.'为指定当前目录

[root@docker sshd]# docker run -d -P sshd:new
#启动该容器
[root@docker sshd]# docker ps -a
CONTAINER ID   IMAGE      COMMAND               CREATED         STATUS         PORTS                   NAMES
a9d2ea204c6c   sshd:new   "/usr/sbin/sshd -D"   6 seconds ago   Up 5 seconds   0.0.0.0:49153->22/tcp   reverent_stonebraker
#随机指定端口号为49153

--
[root@docker sshd]# ssh docker -p 49153
#测试登录
[root@a9d2ea204c6c ~]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Xucf1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值