mirror of
https://github.com/yeasy/docker_practice.git
synced 2026-03-11 04:14:38 +00:00
修正多個用詞
"s/程序/程式/g" "s/性能/效能/g" "s/如下/以下/g" "s/加載/載入/g" "s/獲取/取得/g" "s/服務器/伺服器/g" "s/信息/訊息/g" "s/註釋/註解/g" "s/裏/裡/g" "s/構建/建立/g" "s/配置/設定/g"
This commit is contained in:
@@ -2,19 +2,19 @@
|
||||
|
||||
更多的時候,需要讓 Docker 容器在後臺以守護態(Daemonized)形式執行。此時,可以透過新增 `-d` 參數來實做。
|
||||
|
||||
例如下面的命令會在後臺執行容器。
|
||||
例以下面的命令會在後臺執行容器。
|
||||
```
|
||||
$ sudo docker run -d ubuntu:14.04 /bin/sh -c "while true; do echo hello world; sleep 1; done"
|
||||
1e5535038e285177d5214659a068137486f96ee5c2e85a4ac52dc83f2ebe4147
|
||||
```
|
||||
|
||||
容器啟動後會返回一個唯一的 id,也可以透過 `docker ps` 命令來查看容器信息。
|
||||
容器啟動後會返回一個唯一的 id,也可以透過 `docker ps` 命令來查看容器訊息。
|
||||
```
|
||||
$ sudo docker ps
|
||||
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
|
||||
```
|
||||
要獲取容器的輸出信息,可以透過 `docker logs` 命令。
|
||||
要取得容器的輸出訊息,可以透過 `docker logs` 命令。
|
||||
```
|
||||
$ sudo docker logs insane_babbage
|
||||
hello world
|
||||
|
||||
@@ -25,7 +25,7 @@ $ make nsenter && sudo cp nsenter /usr/local/bin
|
||||
```
|
||||
|
||||
#### 使用
|
||||
`nsenter` 可以訪問另一個程序的名字空間。nsenter 要正常工作需要有 root 權限。
|
||||
`nsenter` 可以訪問另一個程式的名字空間。nsenter 要正常工作需要有 root 權限。
|
||||
很不幸,Ubuntu 14.4 仍然使用的是 util-linux 2.20。安裝最新版本的 util-linux(2.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
|
||||
@@ -33,7 +33,7 @@ $ cd util-linux-2.24
|
||||
$ ./configure --without-ncurses && make nsenter
|
||||
$ sudo cp nsenter /usr/local/bin
|
||||
```
|
||||
為了連接到容器,你還需要找到容器的第一個程序的 PID,可以透過下面的命令獲取。
|
||||
為了連接到容器,你還需要找到容器的第一個程式的 PID,可以透過下面的命令取得。
|
||||
```
|
||||
PID=$(docker inspect --format "{{ .State.Pid }}" <container>)
|
||||
```
|
||||
@@ -59,7 +59,7 @@ root@243c32535da7:/#
|
||||
$ wget -P ~ https://github.com/yeasy/docker_practice/raw/master/_local/.bashrc_docker;
|
||||
$ 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>)
|
||||
$ docker-enter <container> ls
|
||||
|
||||
@@ -23,6 +23,6 @@ test/ubuntu v1.0 9d37a6082e97 About a minute ago
|
||||
$sudo docker import http://example.com/exampleimage.tgz example/imagerepo
|
||||
```
|
||||
|
||||
*註:使用者既可以使用 `docker load` 來導入映像檔儲存文件到本地映像檔庫,也可以使用 `docker import` 來導入一個容器快照到本地映像檔庫。這兩者的區別在於容器快照文件將丟棄所有的歷史記錄和原始數據信息(即僅保存容器當時的快照狀態),而映像檔儲存文件將保存完整記錄,檔案體積也跟著變大。此外,從容器快照文件導入時可以重新指定標簽等原始數據信息。
|
||||
*註:使用者既可以使用 `docker load` 來導入映像檔儲存文件到本地映像檔庫,也可以使用 `docker import` 來導入一個容器快照到本地映像檔庫。這兩者的區別在於容器快照文件將丟棄所有的歷史記錄和原始數據訊息(即僅保存容器當時的快照狀態),而映像檔儲存文件將保存完整記錄,檔案體積也跟著變大。此外,從容器快照文件導入時可以重新指定標簽等原始數據訊息。
|
||||
|
||||
|
||||
|
||||
@@ -33,15 +33,15 @@ bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr
|
||||
* 檢查本地是否存在指定的映像檔,不存在就從公有倉庫下載
|
||||
* 利用映像檔建立並啟動一個容器
|
||||
* 分配一個文件系統,並在唯讀的映像檔層外面掛載一層可讀寫層
|
||||
* 從宿主主機配置的網路橋接口中橋接一個虛擬埠到容器中去
|
||||
* 從地址堆中配置一個 ip 地址給容器
|
||||
* 執行使用者指定的應用程序
|
||||
* 從宿主主機設定的網路橋接口中橋接一個虛擬埠到容器中去
|
||||
* 從地址堆中設定一個 ip 地址給容器
|
||||
* 執行使用者指定的應用程式
|
||||
* 執行完畢後容器被終止
|
||||
|
||||
###啟動已終止容器
|
||||
可以利用 `docker start` 命令,直接將一個已經終止的容器啟動執行。
|
||||
|
||||
容器的核心為所執行的應用程序,所需要的資源都是應用程序執行所必需的。除此之外,並沒有其它的資源。可以在偽終端中利用 `ps` 或 `top` 來查看程序信息。
|
||||
容器的核心為所執行的應用程式,所需要的資源都是應用程式執行所必需的。除此之外,並沒有其它的資源。可以在偽終端中利用 `ps` 或 `top` 來查看程式訊息。
|
||||
```
|
||||
root@ba267838cc1b:/# ps
|
||||
PID TTY TIME CMD
|
||||
|
||||
Reference in New Issue
Block a user