首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >码头运行多个图像单Dockerfile?

码头运行多个图像单Dockerfile?
EN

Stack Overflow用户
提问于 2018-12-07 08:10:37
回答 1查看 5.6K关注 0票数 0

我试着在我的环境中测试和使用码头。这里是我的Dockerfile,当我访问tomcat (http://localhost:8080)时,我得到了问题This site can’t be reached

注意,=>用于窗口,我使用http://192.168.99.100:8080/

构建

代码语言:javascript
复制
docker build -f Dockerfile -t docker-spring-rest .

代码语言:javascript
复制
docker run -p 8080:8080 -p 3306:3306 docker-spring-rest   

Dockerfile

代码语言:javascript
复制
#Prat-1 tomcat
FROM tomcat:8.5.35
COPY ./target/spring-rest.war /usr/local/tomcat/webapps/
EXPOSE 8080

#Prat-1 tomcat
FROM mysql:5.5
ENV MYSQL_ROOT_PASSWORD root
ENV MYSQL_DATABASE spring-rest
COPY ./DB.SQL /docker-entrypoint-initdb.d/

奇怪的是,如果我只设置没有Part-1 tomcatmysql,我就可以访问http://192.168.99.100:8080/或者我的应用程序http://192.168.99.100:8080/spring-rest,我的文件中缺少什么吗?

在搜索=>时,我查看了这个tomcat-mysql引用。为什么他们使用apt-get安装,因为码头已经有多个映像?可以在单个FROM中使用像FROM tomcat, FROM mysql, FROM xxx这样的多个Dockerfile吗?

EN

回答 1

Stack Overflow用户

发布于 2018-12-07 08:30:10

关键问题是:“我是否可以在一个Dockerfile中使用多个FROM”。

如果这样做,您将使用一个名为多级建造的新的坞功能。这个特性允许您在多个阶段构建一个映像,其中每个FROM从一个新的基本层开始,放弃以前所做的一切。

这并不是您想要做的,因为当您执行FROM mysql:5.5时,您会从该行上方释放整个tomcat部分。

您可以构建一个包含tomcat和mysql (仅使用一个FROM)指令的坞映像,但我建议您不要这样做。码头工人的形象应该只处理一个问题

因此,最好的解决方案是创建两个Docker映像(2个Dockerfiles),一个用于tomcat,一个用于mysql,然后使用docker-组合作为一个组合运行这两个映像。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53665576

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档