我有一个docker镜像,它是从以下文件构建的。
FROM java:7
MAINTAINER Tushar Gandhi
ARG version
ENV version=$version
ARG port
ENV port=$port
RUN mkdir -p /cacheDir/services/live/prediction/p$port/$version/logs
RUN ls -tlr /cacheDir/services/live/prediction/p$port/
RUN mkdir -p /cacheDir/services/releases/prediction/p$port/$version/
RUN mkdir -p /cacheDir/services/predictionmodel
ADD target/predictionDependencies/* /cacheDir/services/predictionmodel/
ADD /target/prediction-0.0.13-SNAPSHOT.jar /cacheDir/services/releases/prediction/p$port/$version/prediction-0.0.13-SNAPSHOT.jar
ADD /target/instance.properties /cacheDir/services/releases/prediction/p$port/$version/instance.properties
ADD /target/logback.xml /cacheDir/services/releases/prediction/p$port/$version/logback.xml
RUN ls -ltr /cacheDir/services/live/prediction/p$port/$version/
RUN ls -ltr /cacheDir/services/releases/prediction/p$port/$version/
RUN ls -ltr /cacheDir/services/predictionmodel
ENTRYPOINT ["sh","-c","java -server -Xmx2g -Xloggc:/cacheDir/services/live/prediction/p${port}/${version}/logs/gc.log -verbose:gc -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/cacheDir/services/live/prediction/p${port}/${version}/oom.dump -Dlogback.configurationFile=/cacheDir/services/releases/prediction/p${port}/${version}/logback.xml -Dlog.home=/cacheDir/services/live/prediction/p${port}/${version}/logs -Dlogback.debug=true -Dbroker.l^Ct=sv-kafka6.pv.sv.nextag.com:9092,sv-kafka7.pv.sv.nextag.com:9092,sv-kafka8.pv.sv.nextag.com:9092,sv-kafka9.pv.sv.nextag.com:9092 -jar /cacheDir/services/releases/prediction/p${port}/${version}/prediction-0.0.13-SNAPSHOT.jar $port /cacheDir/services/releases/prediction/p${port}/${version}/instance.properties /com/abc/services/$ZK_PATH"]
我正在使用以下构建命令来构建图像。
docker build --build-arg version=test1 --build-arg port=3001 -f Dockerfile -t prediction:test1 .
图像创建成功,容器成功。运行命令
sudo docker run -p 7105:3001 -v ~/PredictionVolume/logs/:/cacheDir/services/live/prediction/p5030/Testing1/logs/ -e ZK_PATH=qa -t prediction:test
现在,问题在于我的应用程序在docker容器中运行时,它会尝试访问URL qa-zk1.com:2181。此URL可从我的系统访问,但不能从docker容器访问。任何人都可以建议一种方法来从容器中访问URL。
[编辑]我一直在尝试不同的方法,并且发现我能够ping google.com。这告诉我互联网正在发挥作用。如果互联网正在运行,那么该URL也应该是可访问的,但它不是,因此它似乎是DNS解析的问题。我尝试使用IP地址并且能够正确地访问服务,现在我需要了解如何使用URL而不是IP地址启用该搜索模式。
答案 0 :(得分:2)
如果您可以通过IP访问该站点,则意味着您在容器内指向DNS服务器,该服务器不知道" qa-zk1.com"名。
您可以选择2个选项:
的/ etc /主机
有关详细信息,请参阅Configure container DNS