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 <nalan3015@126.com> 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
ファイルがあります。 リーリーconfig.example.js
文件用来配置相关参数:问题的核心在server项的配置。默认是
localhost
好像,一般主机默认的localhost是和127.0.0.1对应的(你也可以在/etc/hosts
修改)。localhost是一个伪造的ip,只能本机访问。0.0.0.0
类似通配符*
的作用,能匹配任意ip。详情见这个回答。所以你应该修改config.example.js的配置项,把server绑定的地址改为
0.0.0.0
問題の核心はサーバー項目の設定にあります。デフォルトはlocalhost
となっており、一般的なホストのデフォルトの localhost は 127.0.0.1 に相当するようです(/etc/hosts
で変更することもできます)。 localhost は、ローカルでのみアクセスできる偽の IP です。0.0.0.0
はワイルドカード文字*
に似ており、任意の IP に一致します。詳細については、この回答を参照してください。そのため、config.example.js の設定項目を変更し、サーバーにバインドされているアドレスを
0.0.0.0
に変更する必要があります。最後に、ゴースト Docker イメージも作成し、nginx で設定されたプロキシも使用しました。 https の暗号化には Let's Encrypt が使用されます。以下を参照してください:-
Docker イメージ:qBlog
私のブログ
🎜 🎜私も同じ問題に遭遇しました。イメージを実行するときに、-p パラメーターが使用されていなくても、イメージ サービスにアクセスできます。ホストの IP であり、ポート マッピングを開くために -p パラメーターが指定されている場合は、どれも無効になります。マークしてください、まず答えを探します