translate container into traditional chinese

This commit is contained in:
a504082002
2014-11-18 21:06:39 +08:00
parent 54ad70f9fd
commit b16ff0610b
7 changed files with 63 additions and 63 deletions

View File

@@ -1,6 +1,6 @@
# Docker 容器 # Docker 容器
容器是 Docker 又一核心概念。 容器是 Docker 又一核心概念。
简单的说,容器是独立运行的一或一组应用,以及它们的运行态环境。对应的,虚拟机可以理解为模拟运行的一整套操作系(提供了运行态环境和其他系统环境)和跑在上面的用。 簡單的說,容器是獨立運行的一或一組應用,以及它們的運行態環境。對應的,虛擬機可以理解為模擬運行的一整套操作系(提供了運行態環境和其他系統環境)和跑在上面的用。
本章将具体介绍如何管理一容器,包括建、启动和停止等。 本章將具體介紹如何管理一容器,包括建、啟動和停止等。

View File

@@ -1,20 +1,20 @@
##守护态运 ##守護態運
更多的候,需要 Docker 容器在后台以守护态Daemonized形式行。此,可以通添加 `-d` 参数来实现 更多的候,需要 Docker 容器在後臺以守護態Daemonized形式行。此,可以通添加 `-d` 參數來實現
例如下面的命令会在后台运行容器。 例如下面的命令會在後臺運行容器。
``` ```
$ sudo docker run -d ubuntu:14.04 /bin/sh -c "while true; do echo hello world; sleep 1; done" $ sudo docker run -d ubuntu:14.04 /bin/sh -c "while true; do echo hello world; sleep 1; done"
1e5535038e285177d5214659a068137486f96ee5c2e85a4ac52dc83f2ebe4147 1e5535038e285177d5214659a068137486f96ee5c2e85a4ac52dc83f2ebe4147
``` ```
容器启动后会返回一唯一的 id也可以通 `docker ps` 命令查看容器信息。 容器啟動後會返回一唯一的 id也可以通 `docker ps` 命令查看容器信息。
``` ```
$ sudo docker ps $ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1e5535038e28 ubuntu:14.04 /bin/sh -c 'while tr 2 minutes ago Up 1 minute insane_babbage 1e5535038e28 ubuntu:14.04 /bin/sh -c 'while tr 2 minutes ago Up 1 minute insane_babbage
``` ```
取容器的出信息,可以通 `docker logs` 命令。 取容器的出信息,可以通 `docker logs` 命令。
``` ```
$ sudo docker logs insane_babbage $ sudo docker logs insane_babbage
hello world hello world

View File

@@ -1,8 +1,8 @@
## 入容器 ## 入容器
在使用 `-d` 参数时,容器启动后会进入后台 在使用 `-d` 參數時,容器啟動後會進入後臺
某些候需要入容器行操作,有很多方法,包括使用 `docker attach` 命令或 `nsenter` 工具等。 某些候需要入容器行操作,有很多方法,包括使用 `docker attach` 命令或 `nsenter` 工具等。
### attach 命令 ### attach 命令
`docker attach` 是Docker自的命令。下面示例如何使用命令。 `docker attach` 是Docker自的命令。下面示例如何使用命令。
``` ```
$ sudo docker run -idt ubuntu $ sudo docker run -idt ubuntu
243c32535da7d142fb0e6df616a3c3ada0b8ab417937c853a9e1c251f499f550 243c32535da7d142fb0e6df616a3c3ada0b8ab417937c853a9e1c251f499f550
@@ -12,12 +12,12 @@ CONTAINER ID IMAGE COMMAND CREATED
$sudo docker attach nostalgic_hypatia $sudo docker attach nostalgic_hypatia
root@243c32535da7:/# root@243c32535da7:/#
``` ```
但是使用 `attach` 命令有时候并不方便。当多个窗口同 attach 到同一容器的候,所有窗口都同步示。当某个窗口因命令阻塞,其他窗口也无法执行操作了。 但是使用 `attach` 命令有時候並不方便。當多個窗口同 attach 到同一容器的候,所有窗口都同步示。當某個窗口因命令阻塞,其他窗口也無法執行操作了。
### nsenter 命令 ### nsenter 命令
#### 安 #### 安
`nsenter` 工具在 util-linux 包2.23版本包含。 `nsenter` 工具在 util-linux 包2.23版本包含。
如果系中 util-linux 包没有该命令,可以按照下面的方法从源码安装 如果系中 util-linux 包沒有該命令,可以按照下面的方法從源碼安裝
``` ```
$ cd /tmp; curl https://www.kernel.org/pub/linux/utils/util-linux/v2.24/util-linux-2.24.tar.gz | tar -zxf-; cd util-linux-2.24; $ cd /tmp; curl https://www.kernel.org/pub/linux/utils/util-linux/v2.24/util-linux-2.24.tar.gz | tar -zxf-; cd util-linux-2.24;
$ ./configure --without-ncurses $ ./configure --without-ncurses
@@ -25,23 +25,23 @@ $ make nsenter && sudo cp nsenter /usr/local/bin
``` ```
#### 使用 #### 使用
`nsenter` 可以访问另一个进程的名字空。nsenter 要正常工作需要有 root 限。 `nsenter` 可以訪問另一個進程的名字空。nsenter 要正常工作需要有 root 限。
很不幸Ubuntu 14.4 仍然使用的是 util-linux 2.20。安最新版本的 util-linux2.24)版,按照以下步 很不幸Ubuntu 14.4 仍然使用的是 util-linux 2.20。安最新版本的 util-linux2.24)版,按照以下步
``` ```
$ wget https://www.kernel.org/pub/linux/utils/util-linux/v2.24/util-linux-2.24.tar.gz; tar xzvf util-linux-2.24.tar.gz $ wget https://www.kernel.org/pub/linux/utils/util-linux/v2.24/util-linux-2.24.tar.gz; tar xzvf util-linux-2.24.tar.gz
$ cd util-linux-2.24 $ cd util-linux-2.24
$ ./configure --without-ncurses && make nsenter $ ./configure --without-ncurses && make nsenter
$ sudo cp nsenter /usr/local/bin $ sudo cp nsenter /usr/local/bin
``` ```
为了连接到容器,你需要找到容器的第一个进程的 PID可以通下面的命令取。 為了連接到容器,你需要找到容器的第一個進程的 PID可以通下面的命令取。
``` ```
PID=$(docker inspect --format "{{ .State.Pid }}" <container>) PID=$(docker inspect --format "{{ .State.Pid }}" <container>)
``` ```
过这个 PID就可以接到这个容器: 過這個 PID就可以接到這個容器:
``` ```
$ nsenter --target $PID --mount --uts --ipc --net --pid $ nsenter --target $PID --mount --uts --ipc --net --pid
``` ```
下面出一完整的例子。 下面出一完整的例子。
``` ```
$ sudo docker run -idt ubuntu $ sudo docker run -idt ubuntu
243c32535da7d142fb0e6df616a3c3ada0b8ab417937c853a9e1c251f499f550 243c32535da7d142fb0e6df616a3c3ada0b8ab417937c853a9e1c251f499f550
@@ -53,13 +53,13 @@ $ PID=$(docker-pid 243c32535da7)
$ sudo nsenter --target 10981 --mount --uts --ipc --net --pid $ sudo nsenter --target 10981 --mount --uts --ipc --net --pid
root@243c32535da7:/# root@243c32535da7:/#
``` ```
简单的,建大家下 簡單的,建大家下
[.bashrc_docker](https://github.com/yeasy/docker_practice/raw/master/_local/.bashrc_docker)并将内容放到 .bashrc 中。 [.bashrc_docker](https://github.com/yeasy/docker_practice/raw/master/_local/.bashrc_docker)並將內容放到 .bashrc 中。
``` ```
$ wget -P ~ https://github.com/yeasy/docker_practice/raw/master/_local/.bashrc_docker; $ wget -P ~ https://github.com/yeasy/docker_practice/raw/master/_local/.bashrc_docker;
$ echo "[ -f ~/.bashrc_docker ] && . ~/.bashrc_docker" >> ~/.bashrc; source ~/.bashrc $ echo "[ -f ~/.bashrc_docker ] && . ~/.bashrc_docker" >> ~/.bashrc; source ~/.bashrc
``` ```
这个文件中定了很多方便使用 Docker 的命令,例如 `docker-pid` 可以取某容器的 PID`docker-enter` 可以入容器或直接在容器内执行命令。 這個文件中定了很多方便使用 Docker 的命令,例如 `docker-pid` 可以取某容器的 PID`docker-enter` 可以入容器或直接在容器內執行命令。
``` ```
$ echo $(docker-pid <container>) $ echo $(docker-pid <container>)
$ docker-enter <container> ls $ docker-enter <container> ls

View File

@@ -1,28 +1,28 @@
##出和入容器 ##出和入容器
###出容器 ###出容器
如果要出本地某容器,可以使用 `docker export` 命令。 如果要出本地某容器,可以使用 `docker export` 命令。
``` ```
$ sudo docker ps -a $ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7691a814370e ubuntu:14.04 "/bin/bash" 36 hours ago Exited (0) 21 hours ago test 7691a814370e ubuntu:14.04 "/bin/bash" 36 hours ago Exited (0) 21 hours ago test
$ sudo docker export 7691a814370e > ubuntu.tar $ sudo docker export 7691a814370e > ubuntu.tar
``` ```
这样将导出容器快照到本地文件。 這樣將導出容器快照到本地文件。
###入容器快照 ###入容器快照
可以使用 `docker import` 容器快照文件中再导入为镜像,例如 可以使用 `docker import` 容器快照文件中再導入為鏡像,例如
``` ```
$ cat ubuntu.tar | sudo docker import - test/buntu:v1.0 $ cat ubuntu.tar | sudo docker import - test/buntu:v1.0
$ sudo docker images $ sudo docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
test/ubuntu v1.0 9d37a6082e97 About a minute ago 171.3 MB test/ubuntu v1.0 9d37a6082e97 About a minute ago 171.3 MB
``` ```
此外,也可以通指定 URL 或者某个目录来导入,例如 此外,也可以通指定 URL 或者某個目錄來導入,例如
``` ```
$sudo docker import http://example.com/exampleimage.tgz example/imagerepo $sudo docker import http://example.com/exampleimage.tgz example/imagerepo
``` ```
*:用既可以使用 `docker load` 来导入镜像存文件到本地镜像库,也可以使用 `docker import` 来导入一容器快照到本地镜像库。这两者的区别在于容器快照文件将丢弃所有的历史记录和元数据信息(即保存容器当时的快照状态),而像存文件保存完整记录,体积也要大。此外,容器快照文件导入时可以重新指定标签等元数据信息。 *:用既可以使用 `docker load` 來導入鏡像存文件到本地鏡像庫,也可以使用 `docker import` 來導入一容器快照到本地鏡像庫。這兩者的區別在於容器快照文件將丟棄所有的歷史記錄和元數據信息(即保存容器當時的快照狀態),而像存文件保存完整記錄,體積也要大。此外,容器快照文件導入時可以重新指定標簽等元數據信息。

View File

@@ -1,9 +1,9 @@
##除容器 ##除容器
可以使用 `docker rm` 来删除一个处于终止状态的容器。 可以使用 `docker rm` 來刪除一個處於終止狀態的容器。
例如 例如
``` ```
$sudo docker rm trusting_newton $sudo docker rm trusting_newton
trusting_newton trusting_newton
``` ```
如果要除一个运行中的容器,可以添加 `-f` 参数。Docker 会发`SIGKILL`号给容器。 如果要除一個運行中的容器,可以添加 `-f` 參數。Docker 會發`SIGKILL`號給容器。

View File

@@ -1,26 +1,26 @@
##启动容器 ##啟動容器
启动容器有两种方式,一是基于镜像新建一容器并启动,另外一个是将在终止状态stopped的容器重新启动 啟動容器有兩種方式,一是基於鏡像新建一容器並啟動,另外一個是將在終止狀態stopped的容器重新啟動
Docker 的容器在太轻量级了,很多候用都是随时删除和新建容器。 Docker 的容器在太輕量級了,很多候用都是隨時刪除和新建容器。
###新建并启动 ###新建並啟動
所需要的命令主要 `docker run` 所需要的命令主要 `docker run`
例如,下面的命令出一 “Hello World”后终止容器。 例如,下面的命令出一 “Hello World”後終止容器。
``` ```
$ sudo docker run ubuntu:14.04 /bin/echo 'Hello world' $ sudo docker run ubuntu:14.04 /bin/echo 'Hello world'
Hello world Hello world
``` ```
跟在本地直接`/bin/echo 'hello world'` 乎感不出任何区别 跟在本地直接`/bin/echo 'hello world'` 乎感不出任何區別
下面的命令则启动一个 bash 端,允许用户进行交互。 下面的命令則啟動一個 bash 端,允許用戶進行交互。
``` ```
$ sudo docker run -t -i ubuntu:14.04 /bin/bash $ sudo docker run -t -i ubuntu:14.04 /bin/bash
root@af8bae53bdd3:/# root@af8bae53bdd3:/#
``` ```
其中,`-t` 选项让Docker分配一个伪终pseudo-tty并绑定到容器的标准输入上, `-i` 则让容器的标准输入保持打 其中,`-t` 選項讓Docker分配一個偽終pseudo-tty並綁定到容器的標準輸入上, `-i` 則讓容器的標準輸入保持打
在交互模式下,用可以通过所创建的终端来输入命令,例如 在交互模式下,用可以通過所創建的終端來輸入命令,例如
``` ```
root@af8bae53bdd3:/# pwd root@af8bae53bdd3:/# pwd
/ /
@@ -28,24 +28,24 @@ root@af8bae53bdd3:/# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
``` ```
利用 `docker run` 来创建容器Docker 在后台运行的标准操作包括: 利用 `docker run` 來創建容器Docker 在後臺運行的標準操作包括:
* 查本地是否存在指定的像,不存在就公有仓库下载 * 查本地是否存在指定的像,不存在就公有倉庫下載
* 利用镜像创建并启动一个容器 * 利用鏡像創建並啟動一個容器
* 分配一文件系统,并在只读的镜像层外面挂载一层可读写层 * 分配一文件系統,並在只讀的鏡像層外面掛載一層可讀寫層
* 宿主主配置的网桥接口中接一个虚拟接口到容器中去 * 宿主主配置的網橋接口中接一個虛擬接口到容器中去
* 地址池配置一 ip 地址容器 * 地址池配置一 ip 地址容器
* 行用指定的用程序 * 行用指定的用程序
* 行完毕后容器被 * 行完畢後容器被
###启动已终止容器 ###啟動已終止容器
可以利用 `docker start` 命令,直接将一个已经终止的容器启动运行。 可以利用 `docker start` 命令,直接將一個已經終止的容器啟動運行。
容器的核心为所执行的用程序,所需要的源都是用程序行所必需的。除此之外,并没有其它的源。可以在伪终端中利用 `ps``top` 查看程信息。 容器的核心為所執行的用程序,所需要的源都是用程序行所必需的。除此之外,並沒有其它的源。可以在偽終端中利用 `ps``top` 查看程信息。
``` ```
root@ba267838cc1b:/# ps root@ba267838cc1b:/# ps
PID TTY TIME CMD PID TTY TIME CMD
1 ? 00:00:00 bash 1 ? 00:00:00 bash
11 ? 00:00:00 ps 11 ? 00:00:00 ps
``` ```
,容器中仅运行了指定的 bash 用。这种特点使得 Docker 对资源的利用率高,是货真价实的轻量级虚拟化。 ,容器中僅運行了指定的 bash 用。這種特點使得 Docker 對資源的利用率高,是貨真價實的輕量級虛擬化。

View File

@@ -1,10 +1,10 @@
##止容器 ##止容器
可以使用 `docker stop` 来终止一个运行中的容器。 可以使用 `docker stop` 來終止一個運行中的容器。
此外,Docker容器中指定的应用终结时,容器也自动终止。 此外,Docker容器中指定的應用終結時,容器也自動終止。
例如对于上一章中只启动了一个终端的容器,用户通过 `exit` 命令或 `Ctrl+d` 退出终端时,所建的容器立刻止。 例如對於上一章中只啟動了一個終端的容器,用戶通過 `exit` 命令或 `Ctrl+d` 退出終端時,所建的容器立刻止。
终止状态的容器可以用 `docker ps -a` 命令看到。例如 終止狀態的容器可以用 `docker ps -a` 命令看到。例如
``` ```
sudo docker ps -a sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
@@ -12,6 +12,6 @@ ba267838cc1b ubuntu:14.04 "/bin/bash" 30 minutes a
98e5efa7d997 training/webapp:latest "python app.py" About an hour ago Exited (0) 34 minutes ago backstabbing_pike 98e5efa7d997 training/webapp:latest "python app.py" About an hour ago Exited (0) 34 minutes ago backstabbing_pike
``` ```
处于终止状态的容器,可以通 `docker start` 命令重新启动 處於終止狀態的容器,可以通 `docker start` 命令重新啟動
此外,`docker restart` 命令会将一个运行态的容器止,然再重新启动它。 此外,`docker restart` 命令會將一個運行態的容器止,然再重新啟動它。