【问题标题】:Run different webapp images on single Tomcat instance through docker通过 docker 在单个 Tomcat 实例上运行不同的 webapp 镜像
【发布时间】:2020-05-16 08:26:42
【问题描述】:
目前我有 2 个 Web 应用程序 (WAR) app1 和 app2 在 Tomcat 7 上运行:
http://localhost:8080/app1上的app1
http://localhost:8080/app2上的app2
我在 docker 中为 webapp app1 和 app2 创建了两个不同的图像。
现在我想在 docker 中运行这两个图像,以便我可以使用相同的主机和端口访问应用程序:即:localhost:8080/app1 和 localhost:8080/app2
有可能吗?
提前致谢。
【问题讨论】:
标签:
docker
docker-compose
dockerfile
【解决方案1】:
您可以为此目的使用docker-compose。 docker-compose 可以在同一个“主机”上为您构建多个容器。您可以根据需要在 docker-compose 中包含其他服务,例如数据库或 redis 服务。然后运行 docker-compose up 命令。
$ docker-compose -f 'myapps-docker-compose.yml' up -d
其中-f 是“来自文件”并且-d 是分离的。
您的示例 docker-compose 文件名为 myapps-docker-compose.yml
version: '2.1'
#
services:
redis:
image: 'redis:5.0.5'
# command: redis-server --requirepass redispass
app1:
image: app1
build:
context: .
dockerfile: Dockerfile_app1
app2:
image: app2
build:
context: .
dockerfile: Dockerfile_app2