Docker (五)实战案例

一.构建SSH镜像

##开启ip转发功能
vim /etc/sysctl.conf 

net.ipv4.ip_forward = 1

sysctl -p

systemctl restart docker

1.cd /opt
mkdir sshd

2.vim Dockerfile

FROM centos:7

MAINTAINER this is sshd image <2022-3-9-14:19-zqh>

RUN yum install -y openssh* net-tools lsof telnet passwd

RUN echo 'abc123' | passwd --stdin root

RUN sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config

RUN sed -i -r '/^session\s+required\s+pam_loginuid.so/ s/^/#/' /etc/pam.d/sshd

RUN ssh-keygen -t rsa -A

RUN mkdir -p /root/.ssh && chown root.root /root && chown 700 /root/.ssh

EXPOSE 22

CMD ["/usr/sbin/sshd","-D"]

3.生成镜像
docker build -t sshd:centos .

4.启动容器并修改root密码
docker run -d -P sshd:centos
docker ps -a
ssh localhost -p 49153

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6s3IFrv5-1647703370730)(C:\Users\zhuquanhao\Desktop\截图命令集合\linux\Docker\Docker案例\1.bmp)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RLeySeoa-1647703370731)(C:\Users\zhuquanhao\Desktop\截图命令集合\linux\Docker\Docker案例\2.bmp)]

二.构建systemctl 镜像

1.  mkdir /opt/systemctl
    cd systemctl/
    vim Dockerfile
    
FROM sshd:centos

MAINTAINER this is systemctl image <2022-3-9-zqh>

ENV container docker

RUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == systemd-tmpfiles-setup.service ] || rm -f $i; done); \
rm -f /lib/systemd/system/multi-user.target.wants/*; \
rm -f /etc/systemd/system/*.wants/*; \
rm -f /lib/systemd/system/local-fs.target.wants/*; \
rm -f /lib/systemd/system/sockets.target.wants/*udev*; \
rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \
rm -f /lib/systemd/system/basic.target.wants/*;\
rm -f /lib/systemd/system/anaconda.target.wants/*;

VOLUME [ "/sys/fs/cgroup" ]

CMD ["/usr/sbin/init"]

2.生成镜像
docker build -t systemctl:centos .

3.启动容器,并挂载宿主机目录挂载到容器中,进行初始化
docker run --privileged -d -P -v /sys/fs/cgroup:/sys/fs/cgroup:ro systemctl:sshd init

4.登入容器
docker exec -it 84eff8690073 bash

5.启动sshd
systemctl start sshd

### Docker 实战案例与应用场景 Docker 技术自2013年首次发布以来,已经广泛应用于多种行业和领域。其核心功能在于提供一种轻量级的虚拟化解决方案,能够显著简化应用程序的开发、测试和部署流程[^4]。 #### 应用场景概述 Docker 可用于构建微服务架构的应用程序,支持持续集成/持续交付(CI/CD),并能有效管理复杂的多容器环境。以下是几个常见的应用场景: - **微服务架构**:通过将不同的业务逻辑模块封装到独立的容器中,开发者可以更灵活地扩展和维护系统。 - **持续集成与交付**:利用 Docker 镜像的一致性和可移植性特点,在不同环境中实现无缝迁移。 - **开发环境标准化**:团队成员可以在相同的环境下工作,减少因配置差异导致的问题。 #### 实战案例解析 ##### 案例一:电商平台容器化改造 某知名电商公司为了提升系统的弹性和可用性,决定对其现有的单体应用进行重构,并采用基于 Docker容器化方案来替代传统的物理机部署方式。他们创建了一个包含 Web 服务器、数据库以及其他中间件组件在内的完整生态系统,并将其拆分成若干个小的服务单元分别运行于各自的容器实例之中[^2]。 ```bash # 创建一个简单的 Nginx 容器 docker run --name my-nginx -p 80:80 nginx ``` 上述命令展示了如何启动一个名为 `my-nginx` 的 Nginx 容器并将宿主机端口映射至容器内部服务端口上。 ##### 案例二:金融数据分析平台 一家金融机构希望加速数据处理速度同时降低硬件成本支出比例,于是引入了 Kubernetes 加持下的大规模分布式计算框架 Spark 运行在 Docker 上面形成弹性伸缩能力极强的大规模集群体系结构。此方法不仅提高了资源利用率还增强了安全性保障机制防止敏感信息泄露风险发生概率增加情况出现[^3]。 ##### 案例三:在线教育直播课堂 随着远程办公需求激增,在线教学成为新趋势之一。一家初创型企业借助 Docker Compose 工具轻松实现了音视频流媒体传输协议 RTMP 推拉流服务搭建过程自动化脚本编写任务完成度达到预期目标水平之上;另外一方面考虑到用户体验优化方面因素影响较大程度决定了最终效果呈现形式是否令人满意因此特别注重延迟控制环节调整参数设置合理范围之内确保流畅观看体验得以保持稳定状态不变动频繁切换频道之间也不会存在明显卡顿现象产生干扰正常学习进程顺利推进下去。 ```yaml version: '3' services: web: image: node:latest ports: - "3000:3000" redis: image: redis:alpine ``` 以上 YAML 文件定义了一组相互关联的服务描述信息其中包括前端展示层使用的 Node.js 环境以及缓存存储依赖 Redis 数据库引擎两者共同协作构成整个项目的基石部分不可或缺任何一方缺失都将直接影响整体功能性表现质量下降严重甚至无法正常使用。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值