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

系统环境

  • 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

天蓬老师
天蓬老师

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

membalas semua(2)
伊谢尔伦

Terdapat

fail dalam config.example.jsdirektori fail hantu untuk mengkonfigurasi parameter yang berkaitan:

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'
        }
    },

Inti masalah terletak pada konfigurasi item pelayan. Lalai ialah localhost Nampaknya localhost lalai hos umum sepadan dengan 127.0.0.1 (anda juga boleh mengubah suainya dalam /etc/hosts). localhost ialah IP palsu yang hanya boleh diakses secara tempatan. 0.0.0.0 adalah serupa dengan aksara kad bebas * dan boleh memadankan mana-mana IP. Lihat jawapan ini untuk butiran.

Jadi anda harus mengubah suai item konfigurasi config.example.js dan menukar alamat yang terikat pada pelayan kepada 0.0.0.0.

Akhir sekali, saya juga membuat imej docker hantu, dan juga menggunakan proksi yang dikonfigurasikan oleh nginx. Let's Encrypt digunakan untuk menyulitkan https, anda boleh merujuk perkara berikut:

  • Imej Docker:qBlog

  • blog saya

迷茫

Tiada siapa yang menjawab. Saya juga mengalami masalah yang sama. Imej nginx yang saya buat sendiri juga mempunyai port EXPOSE dalam fail Docker Semasa menjalankan imej, walaupun parameter -p tidak digunakan, imej itu masih boleh diakses melalui IP perkhidmatan hos, dan tiada satu pun daripada mereka berkuat kuasa apabila parameter -p ditentukan untuk membuka pemetaan port. Tandakan, saya akan cari jawapannya dahulu

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan