Maison > Questions et réponses > le corps du texte
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
伊谢尔伦2017-04-22 08:57:40
Il y a un fichier
dans le répertoire de fichiers config.example.js
ghost 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
迷茫2017-04-22 08:57:40
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