mirror of
https://github.com/yeasy/docker_practice.git
synced 2024-11-28 09:18:54 +00:00
Fix format and update outdate content
This commit is contained in:
parent
6a97772e79
commit
c446640591
@ -26,4 +26,4 @@ Docker Registry 公开服务是开放给用户使用、允许用户管理镜像
|
|||||||
|
|
||||||
开源的 Docker Registry 镜像只提供了 [Docker Registry API](https://docs.docker.com/registry/spec/api/) 的服务端实现,足以支持 `docker` 命令,不影响使用。但不包含图形界面,以及镜像维护、用户管理、访问控制等高级功能。在官方的商业化版本 [Docker Trusted Registry](https://docs.docker.com/datacenter/dtr/2.0/) 中,提供了这些高级功能。
|
开源的 Docker Registry 镜像只提供了 [Docker Registry API](https://docs.docker.com/registry/spec/api/) 的服务端实现,足以支持 `docker` 命令,不影响使用。但不包含图形界面,以及镜像维护、用户管理、访问控制等高级功能。在官方的商业化版本 [Docker Trusted Registry](https://docs.docker.com/datacenter/dtr/2.0/) 中,提供了这些高级功能。
|
||||||
|
|
||||||
除了官方的 Docker Registry 外,还有第三方软件实现了 Docker Registry API,甚至提供了用户界面以及一些高级功能。比如,[VMWare Harbor](https://github.com/goharbor/harbor) 和 [Sonatype Nexus](../repository/nexus3_registry.md)。
|
除了官方的 Docker Registry 外,还有第三方软件实现了 Docker Registry API,甚至提供了用户界面以及一些高级功能。比如,[Harbor](https://github.com/goharbor/harbor) 和 [Sonatype Nexus](../repository/nexus3_registry.md)。
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
## 使用 Django
|
## 使用 Django
|
||||||
|
|
||||||
本小节内容适合 `Python` 开发人员阅读。
|
> 本小节内容适合 `Python` 开发人员阅读。
|
||||||
|
|
||||||
我们现在将使用 `Docker Compose` 配置并运行一个 `Django/PostgreSQL` 应用。
|
我们现在将使用 `Docker Compose` 配置并运行一个 `Django/PostgreSQL` 应用。
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
## 使用 Rails
|
## 使用 Rails
|
||||||
|
|
||||||
本小节内容适合 `Ruby` 开发人员阅读。
|
> 本小节内容适合 `Ruby` 开发人员阅读。
|
||||||
|
|
||||||
我们现在将使用 `Compose` 配置并运行一个 `Rails/PostgreSQL` 应用。
|
我们现在将使用 `Compose` 配置并运行一个 `Rails/PostgreSQL` 应用。
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
## 使用 WordPress
|
## 使用 WordPress
|
||||||
|
|
||||||
本小节内容适合 `PHP` 开发人员阅读。
|
> 本小节内容适合 `PHP` 开发人员阅读。
|
||||||
|
|
||||||
`Compose` 可以很便捷的让 `Wordpress` 运行在一个独立的环境中。
|
`Compose` 可以很便捷的让 `Wordpress` 运行在一个独立的环境中。
|
||||||
|
|
||||||
|
13
image/buildkit/README.md
Normal file
13
image/buildkit/README.md
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
## BuildKit
|
||||||
|
|
||||||
|
BuildKit 是下一代的镜像构建组件,在 https://github.com/moby/buildkit 开源。
|
||||||
|
|
||||||
|
下面介绍如何在 Docker CE 18.09+ 版本中使用 BuildKit 构建 Docker 镜像。
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ export DOCKER_BUILDKIT=1
|
||||||
|
|
||||||
|
# Windows
|
||||||
|
|
||||||
|
$ set $env:DOCKER_BUILDKIT=1
|
||||||
|
```
|
@ -28,7 +28,7 @@ CMD [ "sh", "-c", "echo $HOME" ]
|
|||||||
|
|
||||||
提到 `CMD` 就不得不提容器中应用在前台执行和后台执行的问题。这是初学者常出现的一个混淆。
|
提到 `CMD` 就不得不提容器中应用在前台执行和后台执行的问题。这是初学者常出现的一个混淆。
|
||||||
|
|
||||||
Docker 不是虚拟机,容器中的应用都应该以前台执行,而不是像虚拟机、物理机里面那样,用 upstart/systemd 去启动后台服务,容器内没有后台服务的概念。
|
Docker 不是虚拟机,容器中的应用都应该以前台执行,而不是像虚拟机、物理机里面那样,用 `systemd` 去启动后台服务,容器内没有后台服务的概念。
|
||||||
|
|
||||||
一些初学者将 `CMD` 写为:
|
一些初学者将 `CMD` 写为:
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
Docker 最初是 dotCloud 公司创始人 Solomon Hykes 在法国期间发起的一个公司内部项目,它是基于 dotCloud 公司多年云服务技术的一次革新,并于 [2013 年 3 月以 Apache 2.0 授权协议开源][docker-soft],主要项目代码在 [GitHub](https://github.com/moby/moby) 上进行维护。Docker 项目后来还加入了 Linux 基金会,并成立推动 [开放容器联盟(OCI)](https://www.opencontainers.org/)。
|
Docker 最初是 dotCloud 公司创始人 Solomon Hykes 在法国期间发起的一个公司内部项目,它是基于 dotCloud 公司多年云服务技术的一次革新,并于 [2013 年 3 月以 Apache 2.0 授权协议开源][docker-soft],主要项目代码在 [GitHub](https://github.com/moby/moby) 上进行维护。Docker 项目后来还加入了 Linux 基金会,并成立推动 [开放容器联盟(OCI)](https://www.opencontainers.org/)。
|
||||||
|
|
||||||
Docker 自开源后受到广泛的关注和讨论,至今其 GitHub 项目已经超过 4 万 6 千个星标和一万多个 fork。甚至由于 Docker 项目的火爆,在 2013 年底,[dotCloud 公司决定改名为 Docker](https://blog.docker.com/2013/10/dotcloud-is-becoming-docker-inc/)。Docker 最初是在 Ubuntu 12.04 上开发实现的;Red Hat 则从 RHEL 6.5 开始对 Docker 进行支持;Google 也在其 PaaS 产品中广泛应用 Docker。
|
Docker 自开源后受到广泛的关注和讨论,至今其 [GitHub 项目](https://github.com/moby/moby) 已经超过 5 万 2 千个星标和一万多个 fork。甚至由于 Docker 项目的火爆,在 2013 年底,[dotCloud 公司决定改名为 Docker](https://blog.docker.com/2013/10/dotcloud-is-becoming-docker-inc/)。Docker 最初是在 Ubuntu 12.04 上开发实现的;Red Hat 则从 RHEL 6.5 开始对 Docker 进行支持;Google 也在其 PaaS 产品中广泛应用 Docker。
|
||||||
|
|
||||||
Docker 使用 Google 公司推出的 [Go 语言](https://golang.org/) 进行开发实现,基于 Linux 内核的 [cgroup](https://zh.wikipedia.org/wiki/Cgroups),[namespace](https://en.wikipedia.org/wiki/Linux_namespaces),以及 [AUFS](https://en.wikipedia.org/wiki/Aufs) 类的 [Union FS](https://en.wikipedia.org/wiki/Union_mount) 等技术,对进程进行封装隔离,属于 [操作系统层面的虚拟化技术](https://en.wikipedia.org/wiki/Operating-system-level_virtualization)。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。最初实现是基于 [LXC](https://linuxcontainers.org/lxc/introduction/),从 0.7 版本以后开始去除 LXC,转而使用自行开发的 [libcontainer](https://github.com/docker/libcontainer),从 1.11 开始,则进一步演进为使用 [runC](https://github.com/opencontainers/runc) 和 [containerd](https://github.com/containerd/containerd)。
|
Docker 使用 Google 公司推出的 [Go 语言](https://golang.org/) 进行开发实现,基于 Linux 内核的 [cgroup](https://zh.wikipedia.org/wiki/Cgroups),[namespace](https://en.wikipedia.org/wiki/Linux_namespaces),以及 [AUFS](https://en.wikipedia.org/wiki/Aufs) 类的 [Union FS](https://en.wikipedia.org/wiki/Union_mount) 等技术,对进程进行封装隔离,属于 [操作系统层面的虚拟化技术](https://en.wikipedia.org/wiki/Operating-system-level_virtualization)。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。最初实现是基于 [LXC](https://linuxcontainers.org/lxc/introduction/),从 0.7 版本以后开始去除 LXC,转而使用自行开发的 [libcontainer](https://github.com/docker/libcontainer),从 1.11 开始,则进一步演进为使用 [runC](https://github.com/opencontainers/runc) 和 [containerd](https://github.com/containerd/containerd)。
|
||||||
|
|
||||||
|
@ -28,15 +28,13 @@ saltstack/centos-6-minimal
|
|||||||
tutum/centos-6.4 DEPRECATED. Use tutum/centos:6.4 instead. ... 5 [OK]
|
tutum/centos-6.4 DEPRECATED. Use tutum/centos:6.4 instead. ... 5 [OK]
|
||||||
```
|
```
|
||||||
|
|
||||||
可以看到返回了很多包含关键字的镜像,其中包括镜像名字、描述、收藏数(表示该镜像的受关注程度)、是否官方创建、是否自动创建。
|
可以看到返回了很多包含关键字的镜像,其中包括镜像名字、描述、收藏数(表示该镜像的受关注程度)、是否官方创建(OFFICIAL)、是否自动构建 (AUTOMATED)。
|
||||||
|
|
||||||
官方的镜像说明是官方项目组创建和维护的,automated 资源允许用户验证镜像的来源和内容。
|
根据是否是官方提供,可将镜像分为两类。
|
||||||
|
|
||||||
根据是否是官方提供,可将镜像资源分为两类。
|
|
||||||
|
|
||||||
一种是类似 `centos` 这样的镜像,被称为基础镜像或根镜像。这些基础镜像由 Docker 公司创建、验证、支持、提供。这样的镜像往往使用单个单词作为名字。
|
一种是类似 `centos` 这样的镜像,被称为基础镜像或根镜像。这些基础镜像由 Docker 公司创建、验证、支持、提供。这样的镜像往往使用单个单词作为名字。
|
||||||
|
|
||||||
还有一种类型,比如 `tianon/centos` 镜像,它是由 Docker 的用户创建并维护的,往往带有用户名称前缀。可以通过前缀 `username/` 来指定使用某个用户提供的镜像,比如 tianon 用户。
|
还有一种类型,比如 `tianon/centos` 镜像,它是由 Docker Hub 的注册用户创建并维护的,往往带有用户名称前缀。可以通过前缀 `username/` 来指定使用某个用户提供的镜像,比如 tianon 用户。
|
||||||
|
|
||||||
另外,在查找的时候通过 `--filter=stars=N` 参数可以指定仅显示收藏数量为 `N` 以上的镜像。
|
另外,在查找的时候通过 `--filter=stars=N` 参数可以指定仅显示收藏数量为 `N` 以上的镜像。
|
||||||
|
|
||||||
@ -74,24 +72,24 @@ NAME DESCRIPTION STARS
|
|||||||
username/ubuntu
|
username/ubuntu
|
||||||
```
|
```
|
||||||
|
|
||||||
### 自动创建
|
### 自动构建
|
||||||
|
|
||||||
自动创建(Automated Builds)功能对于需要经常升级镜像内程序来说,十分方便。
|
自动构建(Automated Builds)功能对于需要经常升级镜像内程序来说,十分方便。
|
||||||
|
|
||||||
有时候,用户创建了镜像,安装了某个软件,如果软件发布新版本则需要手动更新镜像。
|
有时候,用户构建了镜像,安装了某个软件,当软件发布新版本则需要手动更新镜像。
|
||||||
|
|
||||||
而自动创建允许用户通过 Docker Hub 指定跟踪一个目标网站(目前支持 [GitHub](https://github.com) 或 [BitBucket](https://bitbucket.org))上的项目,一旦项目发生新的提交或者创建新的标签(tag),Docker Hub 会自动构建镜像并推送到 Docker Hub 中。
|
而自动构建允许用户通过 Docker Hub 指定跟踪一个目标网站(支持 [GitHub](https://github.com) 或 [BitBucket](https://bitbucket.org))上的项目,一旦项目发生新的提交 (commit)或者创建了新的标签(tag),Docker Hub 会自动构建镜像并推送到 Docker Hub 中。
|
||||||
|
|
||||||
要配置自动创建,包括如下的步骤:
|
要配置自动构建,包括如下的步骤:
|
||||||
|
|
||||||
* 创建并登录 Docker Hub,以及目标网站;
|
* 登录 Docker Hub;
|
||||||
|
|
||||||
* 在目标网站中连接帐户到 Docker Hub;
|
* 在 Docker Hub 点击右上角头像,在账号设置(Account Settings)中关联(Linked Accounts)目标网站;
|
||||||
|
|
||||||
* 在 Docker Hub 中 [配置一个自动创建](https://registry.hub.docker.com/builds/add/);
|
* 在 Docker Hub 中新建或选择已有的仓库,在 `Builds` 选项卡中选择 `Configure Automated Builds`;
|
||||||
|
|
||||||
* 选取一个目标网站中的项目(需要含 `Dockerfile`)和分支;
|
* 选取一个目标网站中的项目(需要含 `Dockerfile`)和分支;
|
||||||
|
|
||||||
* 指定 `Dockerfile` 的位置,并提交创建。
|
* 指定 `Dockerfile` 的位置,并保存。
|
||||||
|
|
||||||
之后,可以在 Docker Hub 的 [自动创建页面](https://registry.hub.docker.com/builds/) 中跟踪每次创建的状态。
|
之后,可以在 Docker Hub 的仓库页面的 `Timeline` 选项卡中查看每次构建的状态。
|
||||||
|
Loading…
Reference in New Issue
Block a user