簡體   English   中英

無法訪問Apache Docker服務器

[英]No access to apache docker server

在我的docker鏡像中,我需要運行一個Apache服務器來部署我的網站,一個玻璃魚服務器來部署相應的后端以及與后端連接的MongoDB。

我的dockerfile看起來像這樣:

FROM httpd:2.4
FROM glassfish:latest
FROM mongo:3.6


COPY /backend_war_exploded /usr/local/glassfish4/glassfish/domains/domain1/autodeploy/backend_war_exploded
COPY /backend_war_exploded /usr/local/glassfish4/bin/backend_war_exploded
COPY /dist /usr/local/apache2/htdocs/

構建圖像后,我運行並開始於:

docker run -dit --name application -p 80:80 -p 8080:8080 -p 27017:27017 applicationimg
docker start application 

當我嘗試通過http://localhost:80訪問時,它將提供代碼: ERR_EMPTY_RESPONSE 后端也一樣,但是我可以在端口27017上訪問mongodb 當我在dockerfile注釋掉FROM標記並單獨運行所有內容時,它運行良好。 有人看到錯誤了嗎? 提前致謝。

更新我遵循了您的建議並創建了重寫Dockerfile:

FROM ubuntu:16.04

COPY /dist /var/www/html/
COPY /backend_war_exploded /glassfish4/glassfish/domains/domain1/autodeploy/backend_war_exploded

RUN apt-get update && apt-get install -y apache2

RUN apt-get install -y openjdk-8-jdk
RUN apt-get install -y wget && apt-get install -y unzip
RUN wget http://download.java.net/glassfish/4.1.2/release/glassfish-4.1.2.zip

RUN unzip glassfish-4.1.2.zip

RUN cd /glassfish4/bin/ && ./asadmin start-domain domain1




EXPOSE 80
EXPOSE 8080

Web服務器啟動,並且可以通過localhost:80但是glassfish服務器在構建映像時啟動,但是在運行docker映像時不再啟動。 當我通過docker exec訪問容器時,我可以導航到glassfish並手動啟動它。 有什么問題

您只需要依賴FROM然后通過RUN步驟添加其他工具。 或為每個應用程序使用單個映像,然后通過docker-compose.yml 網絡或通過創建docker-compose.yml將它們連接在一起,這將變得更加容易,您可以在此處進行檢查。 使用多個FROM並不意味着您將擁有三合一。

有關如何創建Dockerfile以及如何使用多個容器部署應用程序的更多信息,請查看Docker 入門教程。

為了在一個容器中運行多個服務,您需要使用服務管理器,例如Supervisor。 檢查以下鏈接以獲取更多詳細信息: 多服務容器

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM