questo ultimo giorno ho problemi con la finestra mobile e posso ottenerlo. Seguendo il documento docker è possibile esporre le porte su cui un contenitore ascolterà le connessioni con EXPOSE
. Fin qui tutto bene!Docker ESPOSIZIONE. Non riesco a ottenerlo
Se l'app in ascolto sulla porta 8080, è necessario esporre il contenitore docker con EXPOSE 8080
e collegarlo alla porta 80 dell'host principale con docker run -p 80:8080
.
Ecco il mio Dockerfile:
# DOCKER-VERSION 0.0.1
FROM ubuntu:14.10
# make sure apt is up to date
RUN apt-get update
# install nodejs and npm
RUN apt-get install -y nodejs-legacy npm git git-core
ADD package.json /root/
ADD server.js /root/
# start script
ADD start.sh /root/
RUN chmod +x /root/start.sh
EXPOSE 8080
CMD ./root/start.sh
E il mio start.sh
solo Runan cd /root/
& npm install
& node server.js
.
ho avuto un semplice espresso nodejs app:
var express = require('express');
// Constants
var PORT = 8080;
// App
var app = express();
app.get('/', function (req, res) {
res.send('Hello world\n');
});
app.listen(PORT);
console.log('Running on http://localhost:' + PORT);
ecco come lo costruisco la mia immagine finestra mobile: docker build -t app1 .
E come lancio il mio finestra mobile: docker run -it -p 80:8080 --name app1 app1
Ciò che è veramente cablata, questo non è lavoro. Per farlo funzionare devo cambiare EXPOSE 8080
a EXPOSE 80
. Non capisco
Ogni spiegazione?
Grazie per la lettura, Tom
Questo è un problema di configurazione, io uso quel tipo di mappatura delle porte tutto il tempo. "Non funziona" non è un'informazione sufficiente. Le porte sono aperte sull'host? Cosa succede se lo si mappa direttamente? -p 8080: 8080? ecc. ecc. – user2105103
Quando dico "Non funziona", ciò significa che non sono in grado di connettermi al mio contenitore usando curl o qualsiasi browser sulla porta 80, anche se richiedo il mio contenitore sull'host principale. L'uso di "-p 8080: 8080" non cambia nulla. –