《Docker容器:利用Kubernetes、Flannel、Cockpit和Atomic构建和部署》——导读

简介: Docker的本质特性:我描述了Docker如何利用诸如Linux容器(LXC)技术保持容器与宿主机上运行的其他应用程序隔离或者如何有选择性地介入宿主机系统。





前言

Docker这一容器化技术目前正处于新浪潮的中心,这一浪潮波及了应用的构建、打包和部署。它有可能影响计算机技术的方方面面,从应用程序的开发流程到应用程序如何部署以及跨大规模数据中心进行垂直和水平扩展。

尽管Docker非常流行,但它依然是一个非常新的项目,许多人并没有真正理解什么是Docker。如果你也是其中一员,那么本书会帮你迈出第一步,并让你见识到容器化所承诺的巨大潜力。我的目标是通过本书引领你进入容器化的世界,这些目标可以概括为以下几种方式。

通过实践来学习:我常在自己的书中提及这一点,我相信学习技术最好的方式就是获取并使用它。为了做到这一点,我让你从几种流行的Linux系统中进行选择,并介绍如何在所选的系统上安装Docker,而且还给出使用Docker做各种事情的实际例子——从运行简单的容器到构建和管理自己的容器镜像。之后学习会延伸至编排和管理容器的工具和技术。
如何通过Docker受益:我描述了在容器中创建和运行应用程序的好处,而不是安装软件包(如RPM或者Deb格式)并直接从硬盘上运行非容器化的应用程序。除了运行应用程序,我还描述了容器化如何为软件开发人员和系统管理人员带来益处。 
Docker的本质特性:我描述了Docker如何利用诸如Linux容器(LXC)技术保持容器与宿主机上运行的其他应用程序隔离或者如何有选择性地介入宿主机系统。这些特性包括Docker如何使用命名空间、元数据以及独立的文件系统来管理容器化应用并保证其安全。
阅读本书并不需要读者了解Docker或者容器化方面的知识,读者可以将本书作为Docker的入门书。当然,本书也探讨了更高级的Docker话题,如编排和容器的开发。

随着阅读的深入,读者将看到运行、调查、停止和启动、保存以及管理容器的具体方法。开始创建容器时,我讨论了一些技巧,这些技巧将有助于读者创建高效地构建和运行的容器镜像。我还将带读者逐步研究其他人为了生成自己的容器而创建的构建文件(其被称为Dockerfile)。

阅读本书大体上并不需要Linux容器,或者Docker容器的知识。不过,话虽如此,有些技术在Docker容器内部和外部都会用到,了解其中的一些会有助于更加得心应手地使用Docker。
了解一些Docker运行环境的知识有助于更好地使用Docker容器。Docker构建在Linux技术之上,并与特定的高级特性相结合,包括用于管理Linux命名空间的Linux容器(LXC),以及用于管理容器对系统资源(如CPU和内存)的访问的Cgroups。

即使是与Docker容器最基本的交互,也依赖于底层的Linux技术。你可能听说过Docker可以运行在Windows或者Mac系统之上,但在这些系统上运行Docker始终依赖Linux虚拟机。换句话说,没有Linux就没有Docker容器。同样,每个容器自身通常都是从基础镜像构建的,而这个基础镜像又是从特定的Linux发行版创建的。

因此,如果没有Linux系统的使用经验,你会发现,了解Linux的如下方面及相关技术会很有用。

目录

[第一部分 开启容器之旅
第1章 使用Docker对应用进行容器化
1.1 了解容器化应用的优缺点

1.1.1 容器化应用不是直接在宿主机上运行的应用
1.1.2 容器化应用不是直接在虚拟机上运行的应用
1.1.3 了解容器的优点
1.1.4 了解容器化应用面临的挑战
1.2 了解容器的组成
1.2.1 Docker项目
1.2.2 Docker Hub Registry
1.2.3 Docker镜像和容器
1.2.4 docker命令
1.3 探究容器
1.4 小结
[第2章 搭建容器运行时环境
2.1 标准Linux系统的Docker配置

2.1.1 Ubuntu的Docker配置
2.1.2 Fedora的Docker配置
2.1.3 Red Hat Enterprise Linux的Docker配置
2.1.4 其他操作系统的Docker配置
2.2 容器式Linux系统的Docker配置
2.2.1 Atomic Host的Docker配置
2.2.2 CoreOS的Docker配置
2.3 小结

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
5月前
|
Kubernetes Docker Python
Docker 与 Kubernetes 容器化部署核心技术及企业级应用实践全方案解析
本文详解Docker与Kubernetes容器化技术,涵盖概念原理、环境搭建、镜像构建、应用部署及监控扩展,助你掌握企业级容器化方案,提升应用开发与运维效率。
924 108
|
4月前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1895 10
|
4月前
|
人工智能 前端开发 Docker
从本地到云端:用 Docker Compose 与 Offload 构建可扩展 AI 智能体
在 AI 智能体开发中,开发者常面临本地调试与云端部署的矛盾。本文介绍如何通过 Docker Compose 与 Docker Offload 解决这一难题,实现从本地快速迭代到云端高效扩容的全流程。内容涵盖多服务协同、容器化配置、GPU 支持及实战案例,助你构建高效、一致的 AI 智能体开发环境。
467 2
从本地到云端:用 Docker Compose 与 Offload 构建可扩展 AI 智能体
|
4月前
|
JavaScript Docker 容器
使用Docker多阶段构建优化镜像大小
使用Docker多阶段构建优化镜像大小
413 100
|
4月前
|
缓存 安全 Linux
优化Docker镜像大小的多阶段构建实践
优化Docker镜像大小的多阶段构建实践
341 99
|
4月前
|
缓存 前端开发 Docker
Docker Layer Caching:加速你的容器构建
Docker Layer Caching:加速你的容器构建
|
4月前
|
安全 Go Docker
使用Docker多阶段构建优化镜像大小
使用Docker多阶段构建优化镜像大小
|
4月前
|
Java Docker 容器
使用Docker多阶段构建优化镜像大小
使用Docker多阶段构建优化镜像大小
228 8
|
4月前
|
存储 Kubernetes 网络安全
关于阿里云 Kubernetes 容器服务(ACK)添加镜像仓库的快速说明
本文介绍了在中国大陆地区因网络限制无法正常拉取 Docker 镜像的解决方案。作者所在的阿里云 Kubernetes 集群使用的是较旧版本的 containerd(1.2x),且无法直接通过 SSH 修改节点配置,因此采用了一种无需更改 Kubernetes 配置文件的方法。通过为 `docker.io` 添加 containerd 的镜像源,并使用脚本自动修改 containerd 配置文件中的路径错误(将错误的 `cert.d` 改为 `certs.d`),最终实现了通过多个镜像站点拉取镜像。作者还提供了一个可重复运行的脚本,用于动态配置镜像源。虽然该方案能缓解镜像拉取问题,
522 2

相关产品

  • 容器服务Kubernetes版