我有一个连接到同一服务器上的区块链的nodejs应用程序。通常我使用127.0.0.1 +端口号(每个链接都得到不同的端口)。如何连接到Docker容器的本地主机(从容器内部)
我决定将链和应用程序放在同一个容器中,这样前端开发人员就不必费心设置链。
但是,当我建立图像链应该开始。当我运行图像时,它不是。此外,当我在容器中进行尝试手动运行时,它会显示“[email protected]:PORT”。所以我认为我不需要127.0.0.1连接到127.0.0.2上的端口,但这似乎不起作用。
我确定像这样连接并不新鲜,应该和数据库一样工作。谁能帮忙?第一条建议是如何调试这些图像,因为我不知道它出错的地方。
这里是我的dockerfile
FROM ubuntu:16.04
RUN apt-get update
RUN apt-get install -y curl
RUN apt-get install -y apt-utils
RUN apt-get install -y build-essential
RUN curl -sL https://deb.nodesource.com/setup_6.x | bash -
RUN apt-get install -y nodejs
ADD workfolder/app /root/applications/app
ADD .multichain /root/.multichain
RUN npm install \
&& apt-get upgrade -q -y \
&& apt-get dist-upgrade -q -y \
&& apt-get install -q -y wget curl \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* \
&& cd /tmp \
&& wget http://www.multichain.com/download/multichain-1.0-beta-1.tar.gz \
&& tar -xvzf multichain-1.0-beta-1.tar.gz \
&& cd multichain-1.0-beta-1 \
&& mv multichaind multichain-cli multichain-util /usr/local/bin \
&& cd /tmp \
&& rm -Rf multichain*
RUN multichaind Chain -daemon
RUN cd /root/applications/app && npm install
CMD cd /root/applications/app && npm start
EXPOSE 8080
顺便说一句,由于政策,我只能连接到服务器的80端口,以检查是否正常工作。当我运行Docker镜像时,我可以访问我的/ api-docs文件,但不能访问我开始与区块链进行交互的任何端点。
你在做CMD或'docker run'开始区块链? – Robert
sudo docker run -d -p 80:8080 –
Rachelle
您需要告诉docker您要启动的程序。你可以在Dockerfile中用'CMD'或'ENTRYPOINT'来完成。你有什么东西吗? – Robert