第3种 Docker方法 : 两个容器在相同的主机使用链接
前一种方法能够让你快速上手,但是很快出现了瓶颈-数据库只能在内存中。这就意味着你更改任何数据和 schema 在应用服务关闭后都将要失效。在这种情况下,你需要使用应用服务器以外的数据库服务器。例如,MySQL 数据库服务器和 WildFly 应用服务器。
简单起见,数据库服务器和应用程序服务器可以在同一个主机上运行。
Docker Container Links 被用来链接两个容器。在资源容器和目标容器间创建管道链接并且能够保证数据在两个容器间安全传输。 在我们的案例中,目标容器(WildFly)可以看到资源信息(MySQL)。重点需要理解是在资源容器中不需要公开任何信息,仅仅是在目标容器中可见。
启动 MySQL 和 WildFly 容器并且添加链接:
docker run --name mysqldb -e MYSQL_USER=mysql -e MYSQL_PASSWORD=mysql -e MYSQL_DATABASE=sample -e
MYSQL_ROOT_PASSWORD=supersecret -d mysql
docker run --name mywildfly --link mysqldb:db -p 8080:8080 -d arungupta/wildfly-mysql-javaee7
第 4 种 Docker 方法:在同一宿主上的两个容器使用 Fig 进行通信
上一种方法要求你以特定的次序运行容器。如果应用程序的每一层都位于一个容器里,那么运行多容器应用程序就很快变得富有挑战性。Fig(已被 Docker Compose 取代)是一款具有以下特征的 Docker 编排工具:
·只用一个配置文件就能定义多个容器
·通过在两个容器间创建 link 来建立它们之间的依赖关系
·以合理的顺序启动各个容器
下面的配置文件就是 Fig 的入口:
mysqldb:
image: mysql:latest
environment:
MYSQL_DATABASE: sample
MYSQL_USER: mysql
MYSQL_PASSWORD: mysql
MYSQL_ROOT_PASSWORD: supersecret
mywildfly:
image: arungupta/wildfly-mysql-javaee7
links:
- mysqldb:db
ports:
- 8080:8080
所有的容器可以这样来启动:
fig up -d
使用 Fig 编排 Docker 详细阐述了这种方法。
现在 Fig 只接受更新,它的代码是 Docker Compose 的基础。相关讲解参见下一种方法。