Docker

為什麼有些碼頭工人使用碼頭網路而不是連結參數?

  • April 18, 2019

我正在學習使用 docker,有些東西我沒有得到。docker的Etherpad Lite 映像連結 mysql 數據庫,如下所示:

$ docker network create ep_network
$ docker run -d --network ep_network \
             -e MYSQL_ROOT_PASSWORD=password --name ep_mysql mysql

最後你可以啟動一個 Etherpad Lite 實例:

$ docker run -d \
    --network ep_network \
    -e ETHERPAD_DB_HOST=ep_mysql \
    -e ETHERPAD_DB_PASSWORD=password \
    -p 9001:9001 \
    tvelocity/etherpad-lite

是否可以對--link選項做同樣的事情?就像odoo容器一樣:

啟動 PostgreSQL 伺服器

$ docker run -d -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo \
             --name db postgres:9.4

啟動一個 Odoo 實例

$ docker run -p 8069:8069 --name odoo --link db:db -t odoo
  1. 為什麼使用 Etherpaddocker network以及為什麼使用 odoo --link
  2. 在哪種情況下,我應該使用第一種方式而不是第二種方式?
  3. 一些碼頭工人沒有關於集線器/商店的資訊,所以我怎麼知道我必須如何連結容器?

非常簡單的答案:docker --link是一個已棄用的功能,不應使用。對於任何新部署,請docker network改用。

有關更多資訊,請參閱https://docs.docker.com/engine/userguide/networking/default_network/dockerlinks/

我猜odoo文件很舊,還沒有更新為使用docker network樣式。

另一方面,是的,您仍然可以--link使用 mysql 容器,etherpad但請記住,這是一種已棄用的做事方式。

引用自:https://unix.stackexchange.com/questions/370300