This commit is contained in:
Kang Huaishuai 2020-10-16 12:13:14 +08:00
parent f9182e5d19
commit 8e8126756a
No known key found for this signature in database
GPG Key ID: 5E515022F565DA09
19 changed files with 32 additions and 32 deletions

View File

@ -10,6 +10,6 @@
当创建一个 Docker 容器的时候同时会创建了一对 `veth pair` 接口当数据包发送到一个接口时另外一个接口也可以收到相同的数据包这对接口一端在容器内 `eth0`另一端在本地并被挂载到 `docker0` 网桥名称以 `veth` 开头例如 `vethAQI2QT`通过这种方式主机可以跟容器通信容器之间也可以相互通信Docker 就创建了在主机和所有容器之间一个虚拟共享网络
![Docker 网络](_images/network.png)
![Docker 网络](./_images/network.png)
接下来的部分将介绍在一些场景中Docker 所有的网络定制配置以及通过 Linux 命令来调整补充甚至替换 Docker 默认的网络配置

View File

@ -86,7 +86,7 @@ $ git push origin master
打开我们部署好的 `Drone` 网站或者 Drone Cloud即可看到构建结果
![](_images/drone-build.png)
![](./_images/drone-build.png)
当然我们也可以把构建结果上传到 GitHubDocker Registry云服务商提供的对象存储或者生产环境中

View File

@ -2,7 +2,7 @@
## 简介
![Alpine Linux 操作系统](_images/alpinelinux-logo.png)
![Alpine Linux 操作系统](./_images/alpinelinux-logo.png)
`Alpine` 操作系统是一个面向安全的轻型 `Linux` 发行版它不同于通常 `Linux` 发行版`Alpine` 采用了 `musl libc` `busybox` 以减小系统的体积和运行时资源消耗但功能上比 `busybox` 又完善的多因此得到开源社区越来越多的青睐在保持瘦身的同时`Alpine` 还提供了自己的包管理工具 `apk`可以通过 `https://pkgs.alpinelinux.org/packages` 网站上查询包信息也可以直接通过 `apk` 命令直接查询和安装各种软件

View File

@ -2,7 +2,7 @@
## 简介
![Busybox - Linux 瑞士军刀](_images/busybox-logo.png)
![Busybox - Linux 瑞士军刀](./_images/busybox-logo.png)
`BusyBox` 是一个集成了一百多个最常用 Linux 命令和工具 `cat``echo``grep``mount``telnet` 的精简工具箱它只需要几 MB 的大小很方便进行各种快速验证被誉为Linux 系统的瑞士军刀

View File

@ -4,7 +4,7 @@
`CentOS` `Fedora` 都是基于 `Redhat` 的常见 Linux 分支`CentOS` 是目前企业级服务器的常用操作系统`Fedora` 则主要面向个人桌面用户
![CentOS 操作系统](_images/centos-logo.png)
![CentOS 操作系统](./_images/centos-logo.png)
CentOSCommunity Enterprise Operating System中文意思是社区企业操作系统它是基于 `Red Hat Enterprise Linux` 源代码编译而成由于 `CentOS` `Redhat Linux` 源于相同的代码基础所以很多成本敏感且需要高稳定性的公司就使用 `CentOS` 来替代商业版 `Red Hat Enterprise Linux``CentOS` 自身不包含闭源软件
@ -34,7 +34,7 @@ CentOS Linux release 7.2.1511 (Core)
## Fedora 系统简介
![Fedora 操作系统](_images/fedora-logo.png)
![Fedora 操作系统](./_images/fedora-logo.png)
`Fedora` `Fedora Project` 社区开发红帽公司赞助的 `Linux` 发行版它的目标是创建一套新颖多功能并且自由和开源的操作系统`Fedora` 的功能对于用户而言它是一套功能完备的可以更新的免费操作系统而对赞助商 `Red Hat` 而言它是许多新技术的测试平台被认为可用的技术最终会加入到 `Red Hat Enterprise Linux`

View File

@ -3,7 +3,7 @@
## Debian 系统简介
![Debian 操作系统](_images/debian-logo.png)
![Debian 操作系统](./_images/debian-logo.png)
`Debian` 是由 `GPL` 和其他自由软件许可协议授权的自由软件组成的操作系统 **Debian 计划Debian Project** 组织维护**Debian 计划** 是一个独立的分散的组织 `3000` 人志愿者组成接受世界多个非盈利组织的资金支持`Software in the Public Interest` 提供支持并持有商标作为保护机构`Debian` 以其坚守 `Unix` 和自由软件的精神以及其给予用户的众多选择而闻名现时 `Debian` 包括了超过 `25,000` 个软件包并支持 `12` 个计算机系统结构
@ -38,7 +38,7 @@ Debian GNU/Linux 8
## Ubuntu 系统简介
![Ubuntu 操作系统](_images/ubuntu-logo.jpg)
![Ubuntu 操作系统](./_images/ubuntu-logo.jpg)
`Ubuntu` 是一个以桌面应用为主的 `GNU/Linux` 操作系统其名称来自非洲南部祖鲁语或豪萨语的ubuntu一词官方译名友帮拓另有吾帮托乌班图有奔头乌斑兔等译名`Ubuntu` 意思是人性以及我的存在是因为大家的存在是非洲传统的一种价值观类似华人社会的仁爱思想 `Ubuntu` 基于 `Debian` 发行版和 `GNOME/Unity` 桌面环境 `Debian` 的不同在于它每 6 个月会发布一个新版本 2 年推出一个长期支持 **Long Term SupportLTS** 版本一般支持 3 年时间

View File

@ -1,6 +1,6 @@
# 阿里云
![阿里云](_images/aliyun-logo.png)
![阿里云](./_images/aliyun-logo.png)
[阿里云](https://www.aliyun.com?source=5176.11533457&userCode=8lx5zmtu&type=copy) 创立于 2009 年,是中国较早的云计算平台。阿里云致力于提供安全、可靠的计算和数据处理能力。

View File

@ -1,6 +1,6 @@
# 亚马逊云
![AWS](_images/aws-logo.jpg)
![AWS](./_images/aws-logo.jpg)
[AWS](https://www.amazonaws.cn),即 Amazon Web Services是亚马逊Amazon公司的 IaaS 和 PaaS 平台服务。AWS 提供了一整套基础设施和应用程序服务使用户几乎能够在云中运行一切应用程序从企业应用程序和大数据项目到社交游戏和移动应用程序。AWS 面向用户提供包括弹性计算、存储、数据库、应用程序在内的一整套云计算服务,能够帮助企业降低 IT 投入成本和维护成本。
@ -8,4 +8,4 @@
2015 AWS 正式发布了 EC2 容器服务(ECS)ECS 的目的是让 Docker 容器变的更加简单它提供了一个集群和编排的层用来控制主机上的容器部署以及部署之后的集群内的容器的生命周期管理ECS 是诸如 Docker SwarmKubernetesMesos 等工具的替代它们工作在同一个层除了作为一个服务来提供这些工具和 ECS 不同的地方在于前者需要用户自己来部署和管理 ECS 作为服务来提供的
![AWS 容器服务](_images/ECS.jpg)
![AWS 容器服务](./_images/ECS.jpg)

View File

@ -1,6 +1,6 @@
# 腾讯云
![腾讯云](_images/qcloud-logo.jpg)
![腾讯云](./_images/qcloud-logo.jpg)
[腾讯云](https://cloud.tencent.com/act/cps/redirect?redirect=1040&cps_key=3a5255852d5db99dcd5da4c72f05df61&from=console) 在架构方面经过多年积累,并且有着多年对海量互联网服务的经验。不管是社交、游戏还是其他领域,都有多年的成熟产品来提供产品服务。腾讯在云端完成重要部署,为开发者及企业提供云服务、云数据、云运营等整体一站式服务方案。

View File

@ -1,6 +1,6 @@
# Docker 数据管理
![](_images/types-of-mounts.png)
![](./_images/types-of-mounts.png)
这一章介绍如何在 Docker 内部以及容器之间管理数据在容器中管理数据主要有两种方式

View File

@ -1,6 +1,6 @@
# 什么是 etcd
![](_images/etcd_logo.png)
![](./_images/etcd_logo.png)
`etcd` `CoreOS` 团队于 2013 6 月发起的开源项目它的目标是构建一个高可用的分布式键值`key-value`数据库基于 `Go` 语言实现我们知道在分布式系统中各种服务的配置信息的管理分享服务的发现是一个很基本同时也是很重要的问题`CoreOS` 项目就希望基于 `etcd` 来解决这一问题

View File

@ -20,7 +20,7 @@ $ docker run --name webserver -d -p 80:80 nginx
直接用浏览器访问的话我们会看到默认的 Nginx 欢迎页面
![](_images/images-mac-example-nginx.png)
![](./_images/images-mac-example-nginx.png)
现在假设我们非常不喜欢这个欢迎页面我们希望改成欢迎 Docker 的文字我们可以使用 `docker exec` 命令进入容器修改其内容
@ -37,7 +37,7 @@ exit
现在我们再刷新浏览器的话会发现内容被改变了
![](_images/images-create-nginx-docker.png)
![](./_images/images-create-nginx-docker.png)
我们修改了容器的文件也就是改动了容器的存储层我们可以通过 `docker diff` 命令看到具体的改动

View File

@ -20,25 +20,25 @@ $ brew cask install docker
如同 macOS 其它软件一样安装也非常简单双击下载的 `.dmg` 文件然后将那只叫 [Moby](https://www.docker.com/blog/call-me-moby-dock/) 的鲸鱼图标拖拽到 `Application` 文件夹即可(其间需要输入用户密码)。
![](_images/install-mac-dmg.png)
![](./_images/install-mac-dmg.png)
## 运行
从应用中找到 Docker 图标并点击运行
![](_images/install-mac-apps.png)
![](./_images/install-mac-apps.png)
运行之后会在右上角菜单栏看到多了一个鲸鱼图标这个图标表明了 Docker 的运行状态
![](_images/install-mac-menubar.png)
![](./_images/install-mac-menubar.png)
第一次点击图标可能会看到这个安装成功的界面点击 "Got it!" 可以关闭这个窗口
![](_images/install-mac-success.png)
![](./_images/install-mac-success.png)
以后每次点击鲸鱼图标会弹出操作菜单
![](_images/install-mac-menu.png)
![](./_images/install-mac-menu.png)
启动终端后通过命令可以检查安装后的 Docker 版本
@ -59,7 +59,7 @@ $ docker run -d -p 80:80 --name webserver nginx
服务运行后可以访问 <http://localhost>,如果看到了 "Welcome to nginx!",就说明 Docker Desktop for Mac 安装成功了。
![](_images/install-mac-example-nginx.png)
![](./_images/install-mac-example-nginx.png)
要停止 Nginx 服务器并删除执行下面的命令

View File

@ -26,15 +26,15 @@ $ winget install Docker.DockerDesktopEdge
Windows 搜索栏输入 **Docker** 点击 **Docker Desktop** 开始运行
![](_images/install-win-docker-app-search.png)
![](./_images/install-win-docker-app-search.png)
Docker 启动之后会在 Windows 任务栏出现鲸鱼图标
![](_images/install-win-taskbar-circle.png)
![](./_images/install-win-taskbar-circle.png)
等待片刻点击 Got it 开始使用 Docker
![](_images/install-win-success-popup-cloud.png)
![](./_images/install-win-success-popup-cloud.png)
## 镜像加速

View File

@ -16,8 +16,8 @@
下面的图片比较了 **Docker** 和传统虚拟化方式的不同之处传统虚拟机技术是虚拟出一套硬件后在其上运行一个完整操作系统在该系统上再运行所需应用进程而容器内的应用进程直接运行于宿主的内核容器内没有自己的内核而且也没有进行硬件虚拟因此容器要比传统虚拟机更为轻便
![传统虚拟化](_images/virtualization.png)
![传统虚拟化](./_images/virtualization.png)
![Docker](_images/docker.png)
![Docker](./_images/docker.png)
[docker-soft]:https://en.wikipedia.org/wiki/Docker_(software)

View File

@ -1,6 +1,6 @@
# 基本概念
![](_images/kubernetes_design.jpg)
![](./_images/kubernetes_design.jpg)
* 节点`Node`一个节点是一个运行 Kubernetes 中的主机
* 容器组`Pod`一个 Pod 对应于由若干容器组成的一个容器组同个组内的容器共享一个存储卷(volume)

View File

@ -13,7 +13,7 @@
下面这张图完整展示了 Kubernetes 的运行原理
![Kubernetes 架构](_images/k8s_architecture.png)
![Kubernetes 架构](./_images/k8s_architecture.png)
可见Kubernetes 首先是一套分布式系统由多个节点组成节点分为两类一类是属于管理平面的主节点/控制节点Master Node一类是属于运行平面的工作节点Worker Node
@ -41,4 +41,4 @@
* kubelet 是工作节点执行操作的 agent负责具体的容器生命周期管理根据从数据库中获取的信息来管理容器并上报 pod 运行状态等
* kube-proxy 是一个简单的网络访问代理同时也是一个 Load Balancer它负责将访问到某个服务的请求具体分配给工作节点上的 Pod同一类标签
![Proxy 代理对服务的请求](_images/kube-proxy.png)
![Proxy 代理对服务的请求](./_images/kube-proxy.png)

View File

@ -1,6 +1,6 @@
# 项目简介
![](_images/kubernetes_logo.png)
![](./_images/kubernetes_logo.png)
Kubernetes Google 团队发起的开源项目它的目标是管理跨多个主机的容器提供基本的部署维护以及应用伸缩主要实现语言为 Go 语言Kubernetes

View File

@ -4,7 +4,7 @@ Docker 采用了 `C/S` 架构包括客户端和服务端。Docker 守护进
客户端和服务端既可以运行在一个机器上也可通过 `socket` 或者 `RESTful API` 来进行通信
![Docker 基本架构](_images/docker_arch.png)
![Docker 基本架构](./_images/docker_arch.png)
Docker 守护进程一般在宿主主机后台运行等待接收来自客户端的消息