translate dockerfile into traditional chinese

This commit is contained in:
a504082002
2014-11-19 00:53:01 +08:00
parent e3085090b4
commit 1d0a49ca31
3 changed files with 46 additions and 46 deletions

View File

@@ -1,5 +1,5 @@
## 基本結構
Dockerfile 由一行行命令語句組成,並且支援以 `#` 開頭的釋行。
Dockerfile 由一行行命令語句組成,並且支援以 `#` 開頭的釋行。
一般而言Dockerfile 分為四部分:基礎鏡像資訊、維護者資訊、鏡像操作指令和容器啟動時執行指令。

View File

@@ -1,9 +1,9 @@
## 创建镜
编写完成 Dockerfile 之,可以通 `docker build` 命令来创建镜像。
## 創建鏡
編寫完成 Dockerfile 之,可以通 `docker build` 命令來創建鏡像。
基本的格式 `docker build [选项] 路`命令将读取指定路下(包括子目)的 Dockerfile并将该路径下所有内容发送给 Docker 服端,由服务端来创建镜像。因此一般建放置 Dockerfile 的目录为空目。也可以通 `.dockerignore` 文件(每一行添加一匹配模式)来让 Docker 忽略路下的目和文件。
基本的格式 `docker build [選項] 路`命令將讀取指定路下(包括子目)的 Dockerfile並將該路徑下所有內容發送給 Docker 服端,由服務端來創建鏡像。因此一般建放置 Dockerfile 的目錄為空目。也可以通 `.dockerignore` 文件(每一行添加一匹配模式)來讓 Docker 忽略路下的目和文件。
要指定像的标签信息,可以通 `-t` 选项,例如
要指定像的標簽信息,可以通 `-t` 選項,例如
```
$ sudo docker build -t myrepo/myapp /tmp/test1/
```

View File

@@ -1,40 +1,40 @@
## 指令
指令的一般格式 `INSTRUCTION arguments`,指令包括 `FROM``MAINTAINER``RUN` 等。
指令的一般格式 `INSTRUCTION arguments`,指令包括 `FROM``MAINTAINER``RUN` 等。
### FROM
格式 `FROM <image>``FROM <image>:<tag>`
格式 `FROM <image>``FROM <image>:<tag>`
第一指令必须为 `FROM` 指令。且,如果在同一Dockerfile中建多个镜像时,可以使用多 `FROM` 指令(每个镜像一次)。
第一指令必須為 `FROM` 指令。且,如果在同一Dockerfile中建多個鏡像時,可以使用多 `FROM` 指令(每個鏡像一次)。
### MAINTAINER
格式 `MAINTAINER <name>`,指定维护者信息。
格式 `MAINTAINER <name>`,指定維護者信息。
### RUN
格式 `RUN <command>``RUN ["executable", "param1", "param2"]`
格式 `RUN <command>``RUN ["executable", "param1", "param2"]`
前者在 shell 端中行命令,即 `/bin/sh -c`后者则使用 `exec` 行。指定使用其它端可以通第二方式实现,例如 `RUN ["/bin/bash", "-c", "echo hello"]`
前者在 shell 端中行命令,即 `/bin/sh -c`後者則使用 `exec` 行。指定使用其它端可以通第二方式實現,例如 `RUN ["/bin/bash", "-c", "echo hello"]`
`RUN` 指令将在当前镜像基础上执行指定命令,提交新的像。命令较长时可以使用 `\` 来换行。
`RUN` 指令將在當前鏡像基礎上執行指定命令,提交新的像。命令較長時可以使用 `\` 來換行。
### CMD
支持三格式
* `CMD ["executable","param1","param2"]` 使用 `exec` 行,推方式;
* `CMD command param1 param2``/bin/sh`行,提供需要交互的用;
* `CMD ["param1","param2"]` 提供 `ENTRYPOINT` 的默认参数
支持三格式
* `CMD ["executable","param1","param2"]` 使用 `exec` 行,推方式;
* `CMD command param1 param2``/bin/sh`行,提供需要交互的用;
* `CMD ["param1","param2"]` 提供 `ENTRYPOINT` 的默認參數
指定启动容器时执行的命令,每 Dockerfile 只能有一 `CMD` 命令。如果指定了多命令,只有最后一条会被执行。
指定啟動容器時執行的命令,每 Dockerfile 只能有一 `CMD` 命令。如果指定了多命令,只有最後一條會被執行。
如果用户启动容器候指定了行的命令,则会覆盖`CMD` 指定的命令。
如果用戶啟動容器候指定了行的命令,則會覆蓋`CMD` 指定的命令。
### EXPOSE
格式 `EXPOSE <port> [<port>...]`
格式 `EXPOSE <port> [<port>...]`
Docker 服端容器暴露的端口,供互联系统使用。在启动容器需要通 -PDocker 主机会自动分配一端口转发到指定的端口。
Docker 服端容器暴露的端口,供互聯系統使用。在啟動容器需要通 -PDocker 主機會自動分配一端口轉發到指定的端口。
### ENV
格式 `ENV <key> <value>`
指定一个环境变量,会被后续 `RUN` 指令使用,在容器运行时保持。
格式 `ENV <key> <value>`
指定一個環境變量,會被後續 `RUN` 指令使用,在容器運行時保持。
例如
```
@@ -45,59 +45,59 @@ ENV PATH /usr/local/postgres-$PG_MAJOR/bin:$PATH
```
### ADD
格式 `ADD <src> <dest>`
格式 `ADD <src> <dest>`
命令将复制指定的 `<src>` 到容器中的 `<dest>`
其中 `<src>` 可以是Dockerfile所在目的一个相对路径;也可以是一 URL可以是一 tar 文件(自动解压为目录)。
命令將復制指定的 `<src>` 到容器中的 `<dest>`
其中 `<src>` 可以是Dockerfile所在目的一個相對路徑;也可以是一 URL可以是一 tar 文件(自動解壓為目錄)。
### COPY
格式 `COPY <src> <dest>`
格式 `COPY <src> <dest>`
制本地主`<src>` Dockerfile 所在目的相对路径)到容器中的 `<dest>`
制本地主`<src>` Dockerfile 所在目的相對路徑)到容器中的 `<dest>`
使用本地目录为源目录时,推使用 `COPY`
使用本地目錄為源目錄時,推使用 `COPY`
### ENTRYPOINT
两种格式:
兩種格式:
* `ENTRYPOINT ["executable", "param1", "param2"]`
* `ENTRYPOINT command param1 param2`shell中行)。
* `ENTRYPOINT command param1 param2`shell中行)。
配置容器启动后执行的命令,且不可被 `docker run` 提供的参数覆盖
配置容器啟動後執行的命令,且不可被 `docker run` 提供的參數覆蓋
Dockerfile 中只能有一 `ENTRYPOINT`指定多个时,只有最后一个起效。
Dockerfile 中只能有一 `ENTRYPOINT`指定多個時,只有最後一個起效。
### VOLUME
格式 `VOLUME ["/data"]`
格式 `VOLUME ["/data"]`
建一可以本地主或其他容器挂载的挂载点,一般用存放数据库和需要保持的数据等。
建一可以本地主或其他容器掛載的掛載點,一般用存放數據庫和需要保持的數據等。
### USER
格式 `USER daemon`
格式 `USER daemon`
指定行容器的用名或 UID后续`RUN`使用指定用
指定行容器的用名或 UID後續`RUN`使用指定用
当服务不需要管理员权限时,可以通过该命令指定行用户。并且可以在之前建所需要的用,例如:`RUN groupadd -r postgres && useradd -r -g postgres postgres`。要临时获取管理员权限可以使用 `gosu`,而不推 `sudo`
當服務不需要管理員權限時,可以通過該命令指定行用戶。並且可以在之前建所需要的用,例如:`RUN groupadd -r postgres && useradd -r -g postgres postgres`。要臨時獲取管理員權限可以使用 `gosu`,而不推 `sudo`
### WORKDIR
格式 `WORKDIR /path/to/workdir`
格式 `WORKDIR /path/to/workdir`
为后续`RUN``CMD``ENTRYPOINT` 指令配置工作目
為後續`RUN``CMD``ENTRYPOINT` 指令配置工作目
可以使用多 `WORKDIR` 指令,后续命令如果参数是相对路径,则会基于之前命令指定的路。例如
可以使用多 `WORKDIR` 指令,後續命令如果參數是相對路徑,則會基於之前命令指定的路。例如
```
WORKDIR /a
WORKDIR b
WORKDIR c
RUN pwd
```
则最终路径为 `/a/b/c`
則最終路徑為 `/a/b/c`
### ONBUILD
格式 `ONBUILD [INSTRUCTION]`
格式 `ONBUILD [INSTRUCTION]`
配置当所创建的像作其它新创建镜像的基础镜像时,所行的操作指令。
配置當所創建的像作其它新創建鏡像的基礎鏡像時,所行的操作指令。
例如Dockerfile 使用如下的内容创建了`image-A`
例如Dockerfile 使用如下的內容創建了`image-A`
```
[...]
ONBUILD ADD . /app/src
@@ -105,7 +105,7 @@ ONBUILD RUN /usr/local/bin/python-build --dir /app/src
[...]
```
如果基 image-A 建新的镜像时新的Dockerfile中使用 `FROM image-A`指定基础镜像时,会自动执`ONBUILD` 指令容,等价于在后面添加了两条指令。
如果基 image-A 建新的鏡像時新的Dockerfile中使用 `FROM image-A`指定基礎鏡像時,會自動執`ONBUILD` 指令容,等價於在後面添加了兩條指令。
```
FROM image-A
@@ -114,5 +114,5 @@ ADD . /app/src
RUN /usr/local/bin/python-build --dir /app/src
```
使用 `ONBUILD` 指令的像,推荐在标签中注明,例如 `ruby:1.9-onbuild`
使用 `ONBUILD` 指令的像,推薦在標簽中註明,例如 `ruby:1.9-onbuild`