translate repository into traditional chinese

pull/25/head
a504082002 2014-11-19 01:00:04 +08:00
parent 2c7762fecc
commit 47d4f30697
4 changed files with 74 additions and 74 deletions

View File

@ -1,10 +1,10 @@
# 仓库
# 倉庫
仓库Repository是集中存放镜像的地方。
倉庫Repository是集中存放鏡像的地方。
个容易混淆的概念是注册服务器Registry。实际上注册服务器是管理仓库的具体服务器每个服务器上可以有多个仓库而每个仓库下面有多个镜像。从这方面来说仓库可以被认为是一个具体的项目或目录。例如对于仓库地址 `dl.dockerpool.com/ubuntu` 来说,`dl.dockerpool.com` 是注册服务器地址,`ubuntu` 是仓库名。
個容易混淆的概念是註冊服務器Registry。實際上註冊服務器是管理倉庫的具體服務器每個服務器上可以有多個倉庫而每個倉庫下面有多個鏡像。從這方面來說倉庫可以被認為是一個具體的項目或目錄。例如對於倉庫地址 `dl.dockerpool.com/ubuntu` 來說,`dl.dockerpool.com` 是註冊服務器地址,`ubuntu` 是倉庫名。
大部分时候,并不需要严格区分这两者的概念。
大部分時候,並不需要嚴格區分這兩者的概念。

View File

@ -1,28 +1,28 @@
## 仓库配置文件
Docker 的 Registry 利用配置文件提供了一些仓库的模板flavor用户可以直接使用它们来进行开发或生产部署。
## 倉庫配置文件
Docker 的 Registry 利用配置文件提供了一些倉庫的模板flavor用戶可以直接使用它們來進行開發或生產部署。
### 模板
`config_sample.yml` 文件中,可以看到一些成的模板段:
* `common`:基配置
* `local`:存储数据到本地文件系统
* `s3`:存储数据到 AWS S3 中
`config_sample.yml` 文件中,可以看到一些成的模板段:
* `common`:基配置
* `local`:存儲數據到本地文件系統
* `s3`:存儲數據到 AWS S3 中
* `dev`:使用 `local` 模板的基本配置
* `test`单元测试使用
* `prod`:生产环境配置基本上跟s3配置类似)
* `gcs`:存储数据到 Google 的云存储
* `swift`:存储数据到 OpenStack Swift 服务
* `glance`:存储数据到 OpenStack Glance 服务,本地文件系统为后备
* `glance-swift`:存储数据到 OpenStack Glance 服务Swift 为后备
* `elliptics`:存储数据到 Elliptics key/value 存储
* `test`單元測試使用
* `prod`:生產環境配置基本上跟s3配置類似)
* `gcs`:存儲數據到 Google 的雲存儲
* `swift`:存儲數據到 OpenStack Swift 服務
* `glance`:存儲數據到 OpenStack Glance 服務,本地文件系統為後備
* `glance-swift`:存儲數據到 OpenStack Glance 服務Swift 為後備
* `elliptics`:存儲數據到 Elliptics key/value 存儲
户也可以添加自定义的模版段。
戶也可以添加自定義的模版段。
认情况下使用的模板是 `dev`,要使用某个模板作为默认值,可以添加 `SETTINGS_FLAVOR` 到环境变量中,例如
認情況下使用的模板是 `dev`,要使用某個模板作為默認值,可以添加 `SETTINGS_FLAVOR` 到環境變量中,例如
```
export SETTINGS_FLAVOR=dev
```
另外,配置文件中支持从环境变量中加载值,语法格式为 `_env:VARIABLENAME[:DEFAULT]`
另外,配置文件中支持從環境變量中加載值,語法格式為 `_env:VARIABLENAME[:DEFAULT]`
### 示例配置
```
@ -54,4 +54,4 @@ test:
storage_path: /tmp/tmpdockertmp
```
### 选项
### 選項

View File

@ -1,14 +1,14 @@
## Docker Hub
目前 Docker 官方维护了一个公共仓库 [Docker Hub](https://hub.docker.com/),其中已经包括了超过 15,000 的镜像。大部分需求,都可以通过在 Docker Hub 中直接下载镜像来实现
目前 Docker 官方維護了一個公共倉庫 [Docker Hub](https://hub.docker.com/),其中已經包括了超過 15,000 的鏡像。大部分需求,都可以通過在 Docker Hub 中直接下載鏡像來實現
### 登
可以通过执行 `docker login` 命令来输入用户名、密码和邮箱来完成注册和登录
注册成功后,本地用户目录的 `.dockercfg` 中将保存用户的认证信息。
### 登
可以通過執行 `docker login` 命令來輸入用戶名、密碼和郵箱來完成註冊和登錄
註冊成功後,本地用戶目錄的 `.dockercfg` 中將保存用戶的認證信息。
### 基本操作
户无需登录即可通过 `docker search` 命令来查找官方仓库中的镜像,并利用 `docker pull` 命令来将它下载到本地。
戶無需登錄即可通過 `docker search` 命令來查找官方倉庫中的鏡像,並利用 `docker pull` 命令來將它下載到本地。
例如以 centos 为关键词进行搜索:
例如以 centos 為關鍵詞進行搜索:
```
$ sudo docker search centos
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
@ -19,16 +19,16 @@ saltstack/centos-6-minimal
tutum/centos-6.4 DEPRECATED. Use tutum/centos:6.4 instead. ... 5 [OK]
...
```
可以看到返回了很多包含关键字的镜像,其中包括镜像名字、描述、星级(表示该镜像的受欢迎程度)、是否官方创建、是否自动创建。
官方的镜像说明是官方项目组创建和维护的automated 资源允许用户验证镜像的来源和内容。
可以看到返回了很多包含關鍵字的鏡像,其中包括鏡像名字、描述、星級(表示該鏡像的受歡迎程度)、是否官方創建、是否自動創建。
官方的鏡像說明是官方項目組創建和維護的automated 資源允許用戶驗證鏡像的來源和內容。
据是否是官方提供,可将镜像资源分为两类
种是类似 centos 这样的基础镜像,被称为基础或根镜像。这些基础镜像是由 Docker 公司创建、验证、支持、提供。这样的镜像往往使用单个单词作为名字。
还有一种类型,比如 `tianon/centos` 镜像,它是由 Docker 的用户创建并维护的,往往带有用户名称前缀。可以通过前缀 `user_name/` 来指定使用某个用户提供的镜像,比如 tianon 用户
據是否是官方提供,可將鏡像資源分為兩類
種是類似 centos 這樣的基礎鏡像,被稱為基礎或根鏡像。這些基礎鏡像是由 Docker 公司創建、驗證、支持、提供。這樣的鏡像往往使用單個單詞作為名字。
還有一種類型,比如 `tianon/centos` 鏡像,它是由 Docker 的用戶創建並維護的,往往帶有用戶名稱前綴。可以通過前綴 `user_name/` 來指定使用某個用戶提供的鏡像,比如 tianon 用戶
另外,在查找的时候通过 `-s N` 参数可以指定仅显示评价为 `N` 星以上的镜像。
另外,在查找的時候通過 `-s N` 參數可以指定僅顯示評價為 `N` 星以上的鏡像。
载官方 centos 镜像到本地。
載官方 centos 鏡像到本地。
```
$ sudo docker pull centos
Pulling repository centos
@ -37,19 +37,19 @@ Pulling repository centos
511136ea3c5a: Download complete
7064731afe90: Download complete
```
户也可以在登录后通过 `docker push` 命令来将镜像推送到 Docker Hub。
戶也可以在登錄後通過 `docker push` 命令來將鏡像推送到 Docker Hub。
### 自动创
动创建Automated Builds功能对于需要经常升级镜像内程序来说,十分方便。
时候,用户创建了镜像,安装了某个软件,如果软件发布新版本则需要手动更新镜像。。
### 自動創
動創建Automated Builds功能對於需要經常升級鏡像內程序來說,十分方便。
時候,用戶創建了鏡像,安裝了某個軟件,如果軟件發布新版本則需要手動更新鏡像。。
而自动创建允许用户通过 Docker Hub 指定跟踪一个目标网站(目前支持 [GitHub](github.org) 或 [BitBucket](bitbucket.org))上的项目,一旦项目发生新的提交,则自动执行创建。
而自動創建允許用戶通過 Docker Hub 指定跟蹤一個目標網站(目前支持 [GitHub](github.org) 或 [BitBucket](bitbucket.org))上的項目,一旦項目發生新的提交,則自動執行創建。
要配置自动创建,包括如下的步骤
* 创建并登陆 Docker Hub以及目标网站;
* 在目标网站中连接帐户到 Docker Hub
* 在 Docker Hub 中 [配置一个自动创建](https://registry.hub.docker.com/builds/add/)
* 选取一个目标网站中的项目(需要含 Dockerfile和分支
* 指定 Dockerfile 的位置,并提交创建。
要配置自動創建,包括如下的步驟
* 創建並登陸 Docker Hub以及目標網站;
* 在目標網站中連接帳戶到 Docker Hub
* 在 Docker Hub 中 [配置一個自動創建](https://registry.hub.docker.com/builds/add/)
* 選取一個目標網站中的項目(需要含 Dockerfile和分支
* 指定 Dockerfile 的位置,並提交創建。
后,可以 在Docker Hub 的 [自动创建页面](https://registry.hub.docker.com/builds/) 中跟踪每次创建的状态
後,可以 在Docker Hub 的 [自動創建頁面](https://registry.hub.docker.com/builds/) 中跟蹤每次創建的狀態

View File

@ -1,18 +1,18 @@
## 私有仓库
## 私有倉庫
时候使用 Docker Hub 这样的公共仓库可能不方便,用户可以创建一个本地仓库供私人使用。
時候使用 Docker Hub 這樣的公共倉庫可能不方便,用戶可以創建一個本地倉庫供私人使用。
节介绍如何使用本地仓库
節介紹如何使用本地倉庫
`docker-registry` 是官方提供的工具,可以用于构建私有的镜像仓库
### 安装运行 docker-registry
#### 容器
在安装了 Docker 后,可以通过获取官方 registry 镜像来运行。
`docker-registry` 是官方提供的工具,可以用於構建私有的鏡像倉庫
### 安裝運行 docker-registry
#### 容器
在安裝了 Docker 後,可以通過獲取官方 registry 鏡像來運行。
```
$ sudo docker run -d -p 5000:5000 registry
```
这将使用官方的 registry 镜像来启动本地的私有仓库
户可以通过指定参数来配置私有仓库位置,例如配置镜像存储到 Amazon S3 服务
這將使用官方的 registry 鏡像來啟動本地的私有倉庫
戶可以通過指定參數來配置私有倉庫位置,例如配置鏡像存儲到 Amazon S3 服務
```
$ sudo docker run \
-e SETTINGS_FLAVOR=s3 \
@ -24,18 +24,18 @@ $ sudo docker run \
-p 5000:5000 \
registry
````
此外,还可以指定本地路径(如 `/home/user/registry-conf` )下的配置文件。
此外,還可以指定本地路徑(如 `/home/user/registry-conf` )下的配置文件。
```
$ sudo docker run -d -p 5000:5000 -v /home/user/registry-conf:/registry-conf -e DOCKER_REGISTRY_CONFIG=/registry-conf/config.yml registry
```
认情况下,仓库会被创建在容器的 `/tmp/registry` 下。可以通过 `-v` 参数来将镜像文件存放在本地的指定路径
例如下面的例子将上传的镜像放到 `/opt/data/registry` 目录
認情況下,倉庫會被創建在容器的 `/tmp/registry` 下。可以通過 `-v` 參數來將鏡像文件存放在本地的指定路徑
例如下面的例子將上傳的鏡像放到 `/opt/data/registry` 目錄
```
$ sudo docker run -d -p 5000:5000 -v /opt/data/registry:/tmp/registry registry
```
#### 本地安
对于 Ubuntu 或 CentOS 等发行版,可以直接通过源安装
#### 本地安
對於 Ubuntu 或 CentOS 等發行版,可以直接通過源安裝
* Ubuntu
```
$ sudo apt-get install -y build-essential python-dev libevent-dev python-pip liblzma-dev
@ -47,18 +47,18 @@ $ sudo yum install -y python-devel libevent-devel python-pip gcc xz-devel
$ sudo python-pip install docker-registry
```
也可以从 [docker-registry](https://github.com/docker/docker-registry) 项目下载源码进行安装
也可以從 [docker-registry](https://github.com/docker/docker-registry) 項目下載源碼進行安裝
```
$ sudo apt-get install build-essential python-dev libevent-dev python-pip libssl-dev liblzma-dev libffi-dev
$ git clone https://github.com/docker/docker-registry.git
$ cd docker-registry
$ sudo python setup.py install
```
后修改配置文件,主要修改 dev 模板段的 `storage_path` 到本地的存储仓库的路径
後修改配置文件,主要修改 dev 模板段的 `storage_path` 到本地的存儲倉庫的路徑
```
$ cp config/config_sample.yml config/config.yml
```
后启动 Web 服务
後啟動 Web 服務
```
$ sudo gunicorn -c contrib/gunicorn.py docker_registry.wsgi:application
```
@ -66,14 +66,14 @@ $ sudo gunicorn -c contrib/gunicorn.py docker_registry.wsgi:application
```
$ sudo gunicorn --access-logfile - --error-logfile - -k gevent -b 0.0.0.0:5000 -w 4 --max-requests 100 docker_registry.wsgi:application
```
时使用访问本地的 5000 端口,看到输出 docker-registry 的版本信息说明运行成功。
時使用訪問本地的 5000 端口,看到輸出 docker-registry 的版本信息說明運行成功。
*`config/config_sample.yml` 文件是示例配置文件。
*`config/config_sample.yml` 文件是示例配置文件。
###在私有仓库上传、下载、搜索镜
创建好私有仓库之后,就可以使用 `docker tag` 来标记一个镜像,然后推送它到仓库,别的机器上就可以下载下来了。例如私有仓库地址为 `192.168.7.26:5000`
###在私有倉庫上傳、下載、搜索鏡
創建好私有倉庫之後,就可以使用 `docker tag` 來標記一個鏡像,然後推送它到倉庫,別的機器上就可以下載下來了。例如私有倉庫地址為 `192.168.7.26:5000`
先在本机查看已有的镜像。
先在本機查看已有的鏡像。
```
$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
@ -81,7 +81,7 @@ ubuntu latest ba5877dc9bec 6 week
ubuntu 14.04 ba5877dc9bec 6 weeks ago 192.7 MB
```
使用`docker tag` `ba58` 这个镜像标记为 `192.168.7.26:5000/test`(格式为 `docker tag IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]`)。
使用`docker tag` `ba58` 這個鏡像標記為 `192.168.7.26:5000/test`(格式為 `docker tag IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]`)。
```
$ sudo docker tag ba58 192.168.7.26:5000/test
root ~ # docker images
@ -90,7 +90,7 @@ ubuntu 14.04 ba5877dc9bec 6 week
ubuntu latest ba5877dc9bec 6 weeks ago 192.7 MB
192.168.7.26:5000/test latest ba5877dc9bec 6 weeks ago 192.7 MB
```
使用 `docker push`传标记的镜像。
使用 `docker push`傳標記的鏡像。
```
$ sudo docker push 192.168.7.26:5000/test
The push refers to a repository [192.168.7.26:5000/test] (len: 1)
@ -104,14 +104,14 @@ Image 2318d26665ef already pushed, skipping
Image ba5877dc9bec already pushed, skipping
Pushing tag for rev [ba5877dc9bec] on {http://192.168.7.26:5000/v1/repositories/test/tags/latest}
```
用 curl 查看仓库中的镜像。
用 curl 查看倉庫中的鏡像。
```
$ curl http://192.168.7.26:5000/v1/search
{"num_results": 7, "query": "", "results": [{"description": "", "name": "library/miaxis_j2ee"}, {"description": "", "name": "library/tomcat"}, {"description": "", "name": "library/ubuntu"}, {"description": "", "name": "library/ubuntu_office"}, {"description": "", "name": "library/desktop_ubu"}, {"description": "", "name": "dockerfile/ubuntu"}, {"description": "", "name": "library/test"}]}
```
这里可以看到 `{"description": "", "name": "library/test"}`,表明镜像已经被成功上传了。
這裏可以看到 `{"description": "", "name": "library/test"}`,表明鏡像已經被成功上傳了。
现在可以到另外一台机器去下载这个镜像。
現在可以到另外一臺機器去下載這個鏡像。
```
$ sudo docker pull 192.168.7.26:5000/test
Pulling repository 192.168.7.26:5000/test
@ -126,7 +126,7 @@ REPOSITORY TAG IMAGE ID CREAT
192.168.7.26:5000/test latest ba5877dc9bec 6 weeks ago 192.7 MB
```
可以使用 [这个脚本](https://github.com/yeasy/docker_practice/raw/master/_local/push_images.sh) 批量上传本地的镜像到注册服务器中,默认是本地注册服务`127.0.0.1:5000`。例如:
可以使用 [這個腳本](https://github.com/yeasy/docker_practice/raw/master/_local/push_images.sh) 批量上傳本地的鏡像到註冊服務器中,默認是本地註冊服務`127.0.0.1:5000`。例如:
```
$ wget https://github.com/yeasy/docker_practice/raw/master/_local/push_images.sh; sudo chmod a+x push_images.sh
$ ./push_images.sh ubuntu:latest centos:centos7