我试着在我的环境中测试和使用码头。这里是我的Dockerfile,当我访问tomcat (http://localhost:8080)时,我得到了问题This site can’t be reached。
注意,=>用于窗口,我使用http://192.168.99.100:8080/。
构建
docker build -f Dockerfile -t docker-spring-rest .跑
docker run -p 8080:8080 -p 3306:3306 docker-spring-rest Dockerfile
#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 tomcat的mysql,我就可以访问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吗?
发布于 2018-12-07 08:30:10
关键问题是:“我是否可以在一个Dockerfile中使用多个FROM”。
如果这样做,您将使用一个名为多级建造的新的坞功能。这个特性允许您在多个阶段构建一个映像,其中每个FROM从一个新的基本层开始,放弃以前所做的一切。
这并不是您想要做的,因为当您执行FROM mysql:5.5时,您会从该行上方释放整个tomcat部分。
您可以构建一个包含tomcat和mysql (仅使用一个FROM)指令的坞映像,但我建议您不要这样做。码头工人的形象应该只处理一个问题。
因此,最好的解决方案是创建两个Docker映像(2个Dockerfiles),一个用于tomcat,一个用于mysql,然后使用docker-组合作为一个组合运行这两个映像。
https://stackoverflow.com/questions/53665576
复制相似问题