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

系统环境

  • 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

天蓬老师
天蓬老师

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

répondre à tous(2)
伊谢尔伦

Il y a un fichier

dans le répertoire de fichiers config.example.jsghost pour configurer les paramètres associés :

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

Le cœur du problème réside dans la configuration de l'élément serveur. La valeur par défaut est localhost. Il semble que l'hôte local par défaut d'un hôte général corresponde à 127.0.0.1 (vous pouvez également le modifier dans /etc/hosts). localhost est une fausse adresse IP accessible uniquement localement. 0.0.0.0 est similaire au caractère générique * et peut correspondre à n'importe quelle adresse IP. Voir cette réponse pour plus de détails.

Vous devez donc modifier les éléments de configuration de config.example.js et changer l'adresse liée au serveur en 0.0.0.0.

Enfin, j'ai également créé une image docker de ghost, et j'ai également utilisé le proxy configuré par nginx. Let's Encrypt est utilisé pour chiffrer https, vous pouvez vous référer à ce qui suit :

  • Image Docker :qBlog

  • mon blog

迷茫

Personne n'a répondu. J'ai également rencontré le même problème. L'image nginx que j'ai créée moi-même a également un port EXPOSE dans le Dockerfile, même si le paramètre -p n'est pas utilisé, l'image est toujours accessible. via l'adresse IP des services hôtes, et aucun d'entre eux ne prend effet lorsque le paramètre -p est spécifié pour ouvrir le mappage de port. Marquez-le, je vais d'abord chercher la réponse

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal