mirror of
https://github.com/yeasy/docker_practice.git
synced 2025-08-12 01:41:47 +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:
@@ -1,7 +1,7 @@
|
||||
## 容器互聯
|
||||
容器的連接(linking)系統是除了端口映射外,另一種跟容器中應用交互的方式。
|
||||
|
||||
該系統會在源和接收容器之間建立一個隧道,接收容器可以看到源容器指定的信息。
|
||||
該系統會在源和接收容器之間建立一個隧道,接收容器可以看到源容器指定的訊息。
|
||||
|
||||
### 自定義容器命名
|
||||
連接系統依據容器的名稱來執行。因此,首先需要自定義一個好記的容器命名。
|
||||
@@ -56,11 +56,11 @@ CONTAINER ID IMAGE COMMAND CREATED
|
||||
349169744e49 training/postgres:latest su postgres -c '/usr About a minute ago Up About a minute 5432/tcp db, web/db
|
||||
aed84ee21bde training/webapp:latest python app.py 16 hours ago Up 2 minutes 0.0.0.0:49154->5000/tcp web
|
||||
```
|
||||
可以看到自定義命名的容器,db 和 web,db 容器的 names 列有 db 也有 web/db。這表示 web 容器鏈接到 db 容器,web 容器將被允許訪問 db 容器的信息。
|
||||
可以看到自定義命名的容器,db 和 web,db 容器的 names 列有 db 也有 web/db。這表示 web 容器鏈接到 db 容器,web 容器將被允許訪問 db 容器的訊息。
|
||||
|
||||
Docker 在兩個互聯的容器之間建立了一個安全隧道,而且不用映射它們的端口到宿主主機上。在啟動 db 容器的時候並沒有使用 `-p` 和 `-P` 標記,從而避免了暴露數據庫端口到外部網路上。
|
||||
|
||||
Docker 透過 2 種方式為容器公開連接信息:
|
||||
Docker 透過 2 種方式為容器公開連接訊息:
|
||||
* 環境變量
|
||||
* 更新 `/etc/hosts` 文件
|
||||
|
||||
@@ -78,7 +78,7 @@ DB_PORT_5000_TCP_ADDR=172.17.0.5
|
||||
```
|
||||
其中 DB_ 開頭的環境變量是供 web 容器連接 db 容器使用,前綴采用大寫的連接別名。
|
||||
|
||||
除了環境變量,Docker 還新增 host 信息到父容器的 `/etc/hosts` 的文件。下面是父容器 web 的 hosts 文件
|
||||
除了環境變量,Docker 還新增 host 訊息到父容器的 `/etc/hosts` 的文件。下面是父容器 web 的 hosts 文件
|
||||
```
|
||||
$ sudo docker run -t -i --rm --link db:db training/webapp /bin/bash
|
||||
root@aed84ee21bde:/opt/webapp# cat /etc/hosts
|
||||
@@ -86,7 +86,7 @@ root@aed84ee21bde:/opt/webapp# cat /etc/hosts
|
||||
. . .
|
||||
172.17.0.5 db
|
||||
```
|
||||
這裏有 2 個 hosts,第一個是 web 容器,web 容器用 id 作為他的主機名,第二個是 db 容器的 ip 和主機名。
|
||||
這裡有 2 個 hosts,第一個是 web 容器,web 容器用 id 作為他的主機名,第二個是 db 容器的 ip 和主機名。
|
||||
可以在 web 容器中安裝 ping 命令來測試跟db容器的連通。
|
||||
```
|
||||
root@aed84ee21bde:/opt/webapp# apt-get install -yqq inetutils-ping
|
||||
|
@@ -10,7 +10,7 @@ $ sudo docker ps -l
|
||||
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
|
||||
bc533791f3f5 training/webapp:latest python app.py 5 seconds ago Up 2 seconds 0.0.0.0:49155->5000/tcp nostalgic_morse
|
||||
```
|
||||
同樣的,可以透過 `docker logs` 命令來查看應用的信息。
|
||||
同樣的,可以透過 `docker logs` 命令來查看應用的訊息。
|
||||
```
|
||||
$ sudo docker logs -f nostalgic_morse
|
||||
* Running on http://0.0.0.0:5000/
|
||||
@@ -41,14 +41,14 @@ $ sudo docker run -d -p 127.0.0.1::5000 training/webapp python app.py
|
||||
```
|
||||
$ sudo docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py
|
||||
```
|
||||
### 查看映射端口配置
|
||||
使用 `docker port` 來查看當前映射的端口配置,也可以查看到綁定的地址
|
||||
### 查看映射端口設定
|
||||
使用 `docker port` 來查看當前映射的端口設定,也可以查看到綁定的地址
|
||||
```
|
||||
$ docker port nostalgic_morse 5000
|
||||
127.0.0.1:49155.
|
||||
```
|
||||
註意:
|
||||
* 容器有自己的內部網路和 ip 地址(使用 `docker inspect` 可以獲取所有的變量,Docker 還可以有一個可變的網路配置。)
|
||||
* 容器有自己的內部網路和 ip 地址(使用 `docker inspect` 可以取得所有的變量,Docker 還可以有一個可變的網路設定。)
|
||||
* -p 標記可以多次使用來綁定多個端口
|
||||
|
||||
例如
|
||||
|
Reference in New Issue
Block a user