Docker容器技术场景化操作实战及网络模式部署

目录

前言:

[一.使用 nginx 镜像创建并启动容器(后台运行)](#一.使用 nginx 镜像创建并启动容器(后台运行))

二.容器的创建,启动与停止

1.使用create创建容器并查看

2.启动容器并查看状态

3.停止容器并查看状态

三.进行容器交互

四.关于宿主机与容器之间的文件互相复制

1.从宿主机复制文件到容器

2.从容器复制文件到宿主机

五.容器的迁移(导入导出)

1.容器的导出

2.容器的导入

六.下线与清理容器

1.删除指定容器

2.批量停止容器

3.批量删除容器

4.批量删除镜像

七.使用默认模式(bridge模式)

1.使用bridge模式启动nginx

2.查看一下容器,检查相应的IP和端口映射

3.查看连接

八.使用host模式(高性能服务部署)

1.使用host网络模式启动nginx

2.查看连接

九.使用container模式(紧密耦合服务)

1.启动主容器

2.查看主容器的网络命名空间

3.启动共享网络的辅助容器

4.查看并对比主辅容器的net设置

十.自定义网络模式(多容器与指定IP)

1.创建自定义网络

2.在自定义网络中启动容器

总结

前言:

今天所展现的是Docker容器化技术的相关场景化操作实战,以及进行网络配置时的几种方式的实际应用。

一.使用 nginx 镜像创建并启动容器(后台运行)

二.容器的创建,启动与停止

1.使用create创建容器并查看

2.启动容器并查看状态

3.停止容器并查看状态

三.进行容器交互

进行'ls'命令查看,并查看文件'os-release'

四.关于宿主机与容器之间的文件互相复制

1.从宿主机复制文件到容器

2.从容器复制文件到宿主机

五.容器的迁移(导入导出)

1.容器的导出

2.容器的导入

注意,导入先前容器打包成的tar包之后,不会创建容器,而是生成镜像。

说明题:export/import 和 save/load 有什么区别?

export/import实现的是导出/导入容器整体,save/reload实现的则是导出/导入镜像

六.下线与清理容器

1.删除指定容器

注意,这里正规操作应该是先停止容器,再进行删除,实在需要强制删除,可以在rm后添加f参数。

2.批量停止容器

首先是awk相关操作(包含筛选)

另一种是直接使用docker stop后面加所有容器

3.批量删除容器

4.批量删除镜像

这里我只删除了某个特定的镜像,采取了grep进行筛选。

安全说明:

为什么生产环境不建议直接执行"删除所有容器/镜像"?

1.删除所有容器/镜像包含其所有配置和依赖,如果涉及重要数据,极有可能丢失

2.假设部分容器/镜像涉及网络配置和多个库共用,极有可能造成生产混乱

接下来是网络模式部分:

七.使用默认模式(bridge模式)

1.使用bridge模式启动nginx

这里是基于nginx的随机映射

2.查看一下容器,检查相应的IP和端口映射

3.查看连接

思考:

1.为什么外部不能直接访问容器 IP?

因为bridge模式下容器的网桥是根据宿主机虚拟出来的,实际不存在,所以无法连接外网

2.bridge 模式下端口映射的作用是什么?

端口映射到宿主机之后,外网可以通过宿主机的IP以及这个端口去进行访问

八.使用host模式(高性能服务部署)

1.使用host网络模式启动nginx

在host模式下,容器与宿主机默认使用相同的ip和端口而并非独立,因此不会显示

2.查看连接

思考:

1.host 模式下,容器有没有独立 IP?

没有,与宿主机共用

2.host模式适用于什么类型的场景

公司内部的软件,网站等的架设和访问

3.host 模式的安全风险是什么?

因为与宿主机共用IP和端口,所以极有可能暴露宿主机信息

九.使用container模式(紧密耦合服务)

1.启动主容器

这里在创建时添加container参数去规定模式

2.查看主容器的网络命名空间

3.启动共享网络的辅助容器

4.查看并对比主辅容器的net设置

此为主

此为辅

可以观察到在container网络模式下这个参数是一致的,说明主辅容器共享了相同的IP和端口

思考:

1.container 模式与 host 模式的区别?

container模式是后面的容器可以直接使用第一台容器(直接创建默认bridge模式)的IP和端口,而host模式是全部和宿主机使用一样的IP和端口

2.为什么称这种模式为 Sidecar(边车模式---)?

边车/挎斗,本意即是形容主容器和辅助容器的关系,他们互相独立却紧密结合,独立体现在个体,结合体现在共用IP和端口

十.自定义网络模式(多容器与指定IP)

1.创建自定义网络

2.在自定义网络中启动容器

这里添加network中的mynetwork配置参数去在刚才设置的指定IP中启动容器

查看可以看到刚才设置的mynetwork自定义网络模式已经在列表中。

思考:

1.为什么默认 bridge 不能指定 IP?

因为bridge模式仅支持自动分配

2.自定义网络适合什么场景?

比如说公司内部或者某团体内部使用容器或者其他技术需要内部共享,不外接的,可以使用

3.Docker 如何实现容器间二层通信?

docker在使用bridge网络模式去进行部署时,所有容器与宿主机完全隔离,互相之间却可以通过类似于虚拟交换机的虚拟桥接进行通信,这样就构成了二层网络通信

总结:

本次详细讲述了关于docker容器的相关增删改查操作,包括交互和迁移,另外还对四种网络部署模式进行了实战操作演示,希望对读者们有所帮助!

相关推荐
苏生Susheng5 小时前
【软件实施】Linux系统Shell脚本教程
linux·运维·服务器·chrome·spring boot·学习·实施
2601_962304915 小时前
把出片接进自动化流水线:2026 年批量 AI 视频生成工具的脚本契约与同类项目对照
运维·人工智能·自动化
Ruiery5 小时前
Linux 6.6内核 IOMMU 深度解析(七):DMA API 与 IOMMU 集成 — 从 dma_map_single 到 iommu_map
linux·运维·服务器
snow@li5 小时前
服务器运维:Alibaba Cloud Linux 4 LTS 64位 根目录全景深度解析文章
linux·运维·服务器
实战派K8S&DB5 小时前
《基于 Dify + FastAPI + PyTiDB 搭建大模型驱动的 TiDB 智能运维 Agent》
运维·数据库·分布式·云原生·tidb·fastapi
苏生Susheng6 小时前
【软件实施】Linux企业运维常用命令手册
java·linux·运维·服务器·springboot·springcloud·软件实施
想要成为老金高手6 小时前
Kubernetes 调度器详解:从 nodeName 到污点容忍
java·容器·kubernetes
名字还没想好☜7 小时前
Docker buildx 多架构镜像实战:一次构建 amd64+arm64,告别 exec format error
运维·docker·eureka·架构·kubernetes
智购无人售货机厂家7 小时前
2026自动售货机软硬件版本管理策略:从版本号规范到兼容性矩阵的工程实践~YH
运维·服务器·人工智能·单片机·嵌入式硬件·线性代数·矩阵
gs801408 小时前
告别 CI/CD 误伤与红条:Docker 镜像智能清理与优雅防冲突实战
ci/cd·docker·容器