为什么有些docker使用docker网络而不是link参数?

为什么有些docker使用docker网络而不是link参数?

我正在学习使用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选项执行相同的操作?像奥多容器的作用是:

启动 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. 一些码头工人没有有关集线器/商店的信息,那么我如何确定如何链接容器?

答案1

非常简单的答案:docker --link这是一个已弃用的功能,不应使用。对于任何新部署,请改用docker network

https://docs.docker.com/engine/userguide/networking/default_network/dockerlinks/了解更多信息。

我猜odoo文档很旧并且尚未更新以使用docker network样式。

另一方面,是的,您仍然可以--link使用 mysql 容器,etherpad但请记住,这是一种已弃用的处理方式。

相关内容