mirror of
https://github.com/yeasy/docker_practice.git
synced 2024-12-25 14:38:54 +00:00
[vuepress] Fixed https://github.com/Mister-Hope/vuepress-theme-hope/issues/406
This commit is contained in:
parent
f9182e5d19
commit
8e8126756a
@ -10,6 +10,6 @@
|
||||
|
||||
当创建一个 Docker 容器的时候,同时会创建了一对 `veth pair` 接口(当数据包发送到一个接口时,另外一个接口也可以收到相同的数据包)。这对接口一端在容器内,即 `eth0`;另一端在本地并被挂载到 `docker0` 网桥,名称以 `veth` 开头(例如 `vethAQI2QT`)。通过这种方式,主机可以跟容器通信,容器之间也可以相互通信。Docker 就创建了在主机和所有容器之间一个虚拟共享网络。
|
||||
|
||||
![Docker 网络](_images/network.png)
|
||||
![Docker 网络](./_images/network.png)
|
||||
|
||||
接下来的部分将介绍在一些场景中,Docker 所有的网络定制配置。以及通过 Linux 命令来调整、补充、甚至替换 Docker 默认的网络配置。
|
||||
|
@ -86,7 +86,7 @@ $ git push origin master
|
||||
|
||||
打开我们部署好的 `Drone` 网站或者 Drone Cloud,即可看到构建结果。
|
||||
|
||||
![](_images/drone-build.png)
|
||||
![](./_images/drone-build.png)
|
||||
|
||||
当然我们也可以把构建结果上传到 GitHub,Docker Registry,云服务商提供的对象存储,或者生产环境中。
|
||||
|
||||
|
@ -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` 命令直接查询和安装各种软件。
|
||||
|
||||
|
@ -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 系统的瑞士军刀”。
|
||||
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
`CentOS` 和 `Fedora` 都是基于 `Redhat` 的常见 Linux 分支。`CentOS` 是目前企业级服务器的常用操作系统;`Fedora` 则主要面向个人桌面用户。
|
||||
|
||||
![CentOS 操作系统](_images/centos-logo.png)
|
||||
![CentOS 操作系统](./_images/centos-logo.png)
|
||||
|
||||
CentOS(Community 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` 中。
|
||||
|
||||
|
@ -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 Support,LTS)** 版本,一般支持 3 年时间。
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# 阿里云
|
||||
|
||||
![阿里云](_images/aliyun-logo.png)
|
||||
![阿里云](./_images/aliyun-logo.png)
|
||||
|
||||
[阿里云](https://www.aliyun.com?source=5176.11533457&userCode=8lx5zmtu&type=copy) 创立于 2009 年,是中国较早的云计算平台。阿里云致力于提供安全、可靠的计算和数据处理能力。
|
||||
|
||||
|
@ -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 Swarm、Kubernetes、Mesos 等工具的替代,它们工作在同一个层,除了作为一个服务来提供。这些工具和 ECS 不同的地方在于,前者需要用户自己来部署和管理,而 ECS 是“作为服务”来提供的。
|
||||
|
||||
![AWS 容器服务](_images/ECS.jpg)
|
||||
![AWS 容器服务](./_images/ECS.jpg)
|
||||
|
@ -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) 在架构方面经过多年积累,并且有着多年对海量互联网服务的经验。不管是社交、游戏还是其他领域,都有多年的成熟产品来提供产品服务。腾讯在云端完成重要部署,为开发者及企业提供云服务、云数据、云运营等整体一站式服务方案。
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Docker 数据管理
|
||||
|
||||
![](_images/types-of-mounts.png)
|
||||
![](./_images/types-of-mounts.png)
|
||||
|
||||
这一章介绍如何在 Docker 内部以及容器之间管理数据,在容器中管理数据主要有两种方式:
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# 什么是 etcd
|
||||
|
||||
![](_images/etcd_logo.png)
|
||||
![](./_images/etcd_logo.png)
|
||||
|
||||
`etcd` 是 `CoreOS` 团队于 2013 年 6 月发起的开源项目,它的目标是构建一个高可用的分布式键值(`key-value`)数据库,基于 `Go` 语言实现。我们知道,在分布式系统中,各种服务的配置信息的管理分享,服务的发现是一个很基本同时也是很重要的问题。`CoreOS` 项目就希望基于 `etcd` 来解决这一问题。
|
||||
|
||||
|
@ -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` 命令看到具体的改动。
|
||||
|
||||
|
@ -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 服务器并删除执行下面的命令:
|
||||
|
||||
|
@ -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)
|
||||
|
||||
## 镜像加速
|
||||
|
||||
|
@ -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)
|
||||
|
@ -1,6 +1,6 @@
|
||||
# 基本概念
|
||||
|
||||
![](_images/kubernetes_design.jpg)
|
||||
![](./_images/kubernetes_design.jpg)
|
||||
|
||||
* 节点(`Node`):一个节点是一个运行 Kubernetes 中的主机。
|
||||
* 容器组(`Pod`):一个 Pod 对应于由若干容器组成的一个容器组,同个组内的容器共享一个存储卷(volume)。
|
||||
|
@ -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)
|
||||
|
@ -1,6 +1,6 @@
|
||||
# 项目简介
|
||||
|
||||
![](_images/kubernetes_logo.png)
|
||||
![](./_images/kubernetes_logo.png)
|
||||
|
||||
Kubernetes 是 Google 团队发起的开源项目,它的目标是管理跨多个主机的容器,提供基本的部署,维护以及应用伸缩,主要实现语言为 Go 语言。Kubernetes 是:
|
||||
|
||||
|
@ -4,7 +4,7 @@ Docker 采用了 `C/S` 架构,包括客户端和服务端。Docker 守护进
|
||||
|
||||
客户端和服务端既可以运行在一个机器上,也可通过 `socket` 或者 `RESTful API` 来进行通信。
|
||||
|
||||
![Docker 基本架构](_images/docker_arch.png)
|
||||
![Docker 基本架构](./_images/docker_arch.png)
|
||||
|
||||
Docker 守护进程一般在宿主主机后台运行,等待接收来自客户端的消息。
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user