ghost的docker镜像映射端口无效
天蓬老师
天蓬老师 2017-04-22 08:55:40
0
2
788

系统环境

  • ubuntu 14.04 64bit
  • docker 1.6.0
  • ghost镜像

操作

  1. 下载镜像ghost&&自己制作ghost镜像
  2. docker run -it -p 127.0.0.1::2368 ghost bash
  3. npm start启动ghost成功
  4. 另起一个shelldocker 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后无法连接到资源

想知道到底是哪里除了问题?

ghost的Dockerfile

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

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全員に返信(2)
伊谢尔伦

ゴースト ファイル ディレクトリには、関連パラメータを設定するための config.example.js ファイルがあります。 リーリー config.example.js文件用来配置相关参数:

config = {
    // ### Production
    // When running Ghost in the wild, use the production environment.
    // Configure your URL and mail settings here
    production: {
        ......
        },

        server: {
            host: '0.0.0.0',
            port: '2368'
        }
    },

问题的核心在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
  • 私のブログ
🎜 🎜
いいねを押す +0
迷茫

私も同じ問題に遭遇しました。イメージを実行するときに、-p パラメーターが使用されていなくても、イメージ サービスにアクセスできます。ホストの IP であり、ポート マッピングを開くために -p パラメーターが指定されている場合は、どれも無効になります。マークしてください、まず答えを探します

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!