mirror of
https://github.com/yeasy/docker_practice.git
synced 2025-10-23 06:51:42 +00:00
修正多個用詞
This commit is contained in:
@@ -3,4 +3,4 @@
|
||||
|
||||
簡單的說,容器是獨立執行的一個或一組應用,以及它們的執行態環境。換句話說,虛擬機可以理解為模擬執行的一整套作業系統(提供了執行態環境和其他系統環境)和跑在上面的應用。
|
||||
|
||||
本章將具體介紹如何來管理一個容器,包括創建、啟動和停止等。
|
||||
本章將具體介紹如何來管理一個容器,包括建立、啟動和停止等。
|
||||
|
@@ -1,6 +1,6 @@
|
||||
##守護態執行
|
||||
|
||||
更多的時候,需要讓 Docker 容器在後臺以守護態(Daemonized)形式執行。此時,可以通過添加 `-d` 參數來實現。
|
||||
更多的時候,需要讓 Docker 容器在後臺以守護態(Daemonized)形式執行。此時,可以透過新增 `-d` 參數來實做。
|
||||
|
||||
例如下面的命令會在後臺執行容器。
|
||||
```
|
||||
@@ -8,13 +8,13 @@ $ sudo docker run -d ubuntu:14.04 /bin/sh -c "while true; do echo hello world; s
|
||||
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
|
||||
|
@@ -33,11 +33,11 @@ $ 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>)
|
||||
```
|
||||
通過這個 PID,就可以連接到這個容器:
|
||||
透過這個 PID,就可以連接到這個容器:
|
||||
```
|
||||
$ nsenter --target $PID --mount --uts --ipc --net --pid
|
||||
```
|
||||
|
@@ -18,11 +18,11 @@ $ sudo docker images
|
||||
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
|
||||
test/ubuntu v1.0 9d37a6082e97 About a minute ago 171.3 MB
|
||||
```
|
||||
此外,也可以通過指定 URL 或者某個目錄來導入,例如
|
||||
此外,也可以透過指定 URL 或者某個目錄來導入,例如
|
||||
```
|
||||
$sudo docker import http://example.com/exampleimage.tgz example/imagerepo
|
||||
```
|
||||
|
||||
*註:用戶既可以使用 `docker load` 來導入映像檔儲存文件到本地映像檔庫,也可以使用 `docker import` 來導入一個容器快照到本地映像檔庫。這兩者的區別在於容器快照文件將丟棄所有的歷史記錄和原始數據信息(即僅保存容器當時的快照狀態),而映像檔儲存文件將保存完整記錄,檔案體積也跟著變大。此外,從容器快照文件導入時可以重新指定標簽等原始數據信息。
|
||||
*註:使用者既可以使用 `docker load` 來導入映像檔儲存文件到本地映像檔庫,也可以使用 `docker import` 來導入一個容器快照到本地映像檔庫。這兩者的區別在於容器快照文件將丟棄所有的歷史記錄和原始數據信息(即僅保存容器當時的快照狀態),而映像檔儲存文件將保存完整記錄,檔案體積也跟著變大。此外,從容器快照文件導入時可以重新指定標簽等原始數據信息。
|
||||
|
||||
|
||||
|
@@ -5,5 +5,5 @@
|
||||
$sudo docker rm trusting_newton
|
||||
trusting_newton
|
||||
```
|
||||
如果要刪除一個執行中的容器,可以添加 `-f` 參數。Docker 會發送 `SIGKILL` 信號給容器。
|
||||
如果要刪除一個執行中的容器,可以新增 `-f` 參數。Docker 會發送 `SIGKILL` 信號給容器。
|
||||
|
||||
|
@@ -1,7 +1,7 @@
|
||||
##啟動容器
|
||||
啟動容器有兩種方式,一種是將映像檔新建一個容器並啟動,另外一個是將終止狀態(stopped)的容器重新啟動。
|
||||
|
||||
因為 Docker 的容器實在太輕量級了,用戶可以隨時刪除和新創建容器。
|
||||
因為 Docker 的容器實在太輕量級了,使用者可以隨時刪除和新建立容器。
|
||||
|
||||
###新建並啟動
|
||||
所需要的命令主要為 `docker run`。
|
||||
@@ -13,14 +13,14 @@ Hello world
|
||||
```
|
||||
這跟在本地直接執行 `/bin/echo 'hello world'` 相同, 幾乎感覺不出任何區別。
|
||||
|
||||
下面的命令則啟動一個 bash 終端,允許用戶進行交互。
|
||||
下面的命令則啟動一個 bash 終端,允許使用者進行交互。
|
||||
```
|
||||
$ sudo docker run -t -i ubuntu:14.04 /bin/bash
|
||||
root@af8bae53bdd3:/#
|
||||
```
|
||||
其中,`-t` 選項讓Docker分配一個虛擬終端(pseudo-tty)並綁定到容器的標準輸入上, `-i` 則讓容器的標準輸入保持打開。
|
||||
|
||||
在交互模式下,用戶可以通過所創建的終端來輸入命令,例如
|
||||
在交互模式下,使用者可以透過所建立的終端來輸入命令,例如
|
||||
```
|
||||
root@af8bae53bdd3:/# pwd
|
||||
/
|
||||
@@ -28,14 +28,14 @@ root@af8bae53bdd3:/# ls
|
||||
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 地址給容器
|
||||
* 執行用戶指定的應用程序
|
||||
* 執行使用者指定的應用程序
|
||||
* 執行完畢後容器被終止
|
||||
|
||||
###啟動已終止容器
|
||||
@@ -48,4 +48,4 @@ root@ba267838cc1b:/# ps
|
||||
1 ? 00:00:00 bash
|
||||
11 ? 00:00:00 ps
|
||||
```
|
||||
可見,容器中僅執行了指定的 bash 應用。這種特點使得 Docker 對資源的利用率極高,是貨真價實的輕量級虛擬化。
|
||||
可見,容器中僅執行了指定的 bash 應用。這種特點使得 Docker 對資源的使用率極高,是貨真價實的輕量級虛擬化。
|
||||
|
@@ -2,7 +2,7 @@
|
||||
可以使用 `docker stop` 來終止一個執行中的容器。
|
||||
|
||||
此外,當Docker容器中指定的應用終結時,容器也自動終止。
|
||||
例如對於上一章節中只啟動了一個終端機的容器,用戶通過 `exit` 命令或 `Ctrl+d` 來退出終端時,所創建的容器立刻終止。
|
||||
例如對於上一章節中只啟動了一個終端機的容器,使用者透過 `exit` 命令或 `Ctrl+d` 來退出終端時,所建立的容器立刻終止。
|
||||
|
||||
終止狀態的容器可以用 `docker ps -a` 命令看到。例如
|
||||
```
|
||||
@@ -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
|
||||
```
|
||||
|
||||
處於終止狀態的容器,可以通過 `docker start` 命令來重新啟動。
|
||||
處於終止狀態的容器,可以透過 `docker start` 命令來重新啟動。
|
||||
|
||||
此外,`docker restart` 命令會將一個執行中的容器終止,然後再重新啟動它。
|
||||
|
Reference in New Issue
Block a user