docker run -it -p 127.0.0.1::2368 ghost bash
docker ps -a
adolph@geek:~$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 84802ccaa8f7 ghost:latest "/entrypoint.sh bash 32 seconds ago Up 31 seconds 127.0.0.1:32769->2368/tcp kickass_bell adolph@geek:~$
在浏览器输入localhost:32769
后无法连接到资源
想知道到底是哪里除了问题?
shell
#build ghost image FROM adolphlwq/ubuntu:14.04_64_base_image MAINTAINER adolphlwq
ENV REFRESHED_AT 2015-6-9 RUN apt-get update && apt-get -yqq upgrade #install node RUN apt-get install -yqq nodejs npm wget unzip RUN ln -s /usr/bin/nodejs /usr/bin/node #install ghost-zh RUN cd /opt/ && wget http://dl.ghostchina.com/Ghost-0.6.3-zh-full.zip && unzip -uo Ghost-0.6.3-zh-full.zip -d ghost && rm Ghost-0.6.3-zh-full.zip #initial ghost RUN cd /opt/ghost && npm install --production #workdir WORKDIR /opt/ghost/ #expose port 2368 EXPOSE 2368 CMD npm start
然后我又看了Daocloud上ghost的镜像Dockerfile,核心的地方是类似的,不知道我的问题出在哪,端口映射一直失败
daocloud上ghost的Dockerfile
유령 파일 디렉터리에 관련 매개변수를 구성하는
으아아아config.example.js
파일이 있습니다:문제의 핵심은서버항목 구성에 있습니다. 기본값은
localhost
입니다. 일반 호스트의 기본 localhost는 127.0.0.1에 해당하는 것 같습니다(/etc/hosts
에서도 수정 가능합니다). localhost는 로컬에서만 접속할 수 있는 가짜 IP입니다.0.0.0.0
은 와일드카드 문자*
와 유사하며 모든 IP와 일치할 수 있습니다. 자세한 내용은 이 답변을 참조하세요.그래서 config.example.js의 구성 항목을 수정하고 서버에 바인딩된 주소를
0.0.0.0
으로 변경해야 합니다.마지막으로 고스트의 도커 이미지도 만들고, nginx에서 구성한 프록시도 사용했습니다. Let's Encrypt는 https를 암호화하는 데 사용되며, 다음을 참고할 수 있습니다.
Docker 이미지:qBlog
내 블로그
저도 같은 문제가 발생했습니다. 제가 직접 만든 nginx 이미지에도 Dockerfile에 EXPOSE 포트가 있습니다. 호스트 서비스의 IP를 통해 전송되며, 포트 매핑을 열기 위해 -p 매개변수가 지정된 경우에는 아무 것도 적용되지 않습니다. 표시해 주세요. 먼저 답을 찾아보겠습니다