2015-12-31 31 views
6

Próbuję uruchomić obraz dokowanego gitlab, a wszystko działa dobrze, z wyjątkiem tego, że po wejściu na stronę Port 80 kończy się wynikiem "Połączenie odrzucone", ale port 8080 pomyślnie osiąga Gitlab.Docker nie przesyła poprawnie portu?

jednak pokazuje, że to spedycja od 8080 do 80 na pojemniku:

CONTAINER ID IMAGE    COMMAND    CREATED    STATUS    PORTS           NAMES 
14b2ac3c0de6 gitlab/gitlab-ee "/assets/wrapper" About a minute ago Up About a minute 0.0.0.0:8080->80/tcp, 0.0.0.0:8443->443/tcp gitlab 

Oto jak biegnę pojemnik.

sudo docker run --detach \ 
    --publish 8443:443 --publish 8080:80 --publish 2222:22 \ 
    --name gitlab \ 
    --restart always \ 
    --volume /srv/gitlab/config:/etc/gitlab \ 
    --volume /srv/gitlab/logs:/var/log/gitlab \ 
    --volume /srv/gitlab/data:/var/opt/gitlab \ 
    gitlab/gitlab-ee:latest 
+0

Używasz 'localhost' lub IP kontenera dostęp do usługi? 'http: // : 80' powinien zawsze działać w twoim przykładzie, a ponieważ mapujesz port kontenera 80 na port hosta 8080,' http: // localhost: 8080' również powinien działać. – helmbert

+0

Jest wdrożony zdalnie, a ja używam adresu IP urządzenia. Tak jak piszę http://10.96.2.17:8080, aby dotrzeć do strony już teraz; Chciałbym zamiast tego zrobić tylko http://10.96.2.17. (Mam również konfigurację nazwy hosta dla trasy 53 [AWS]). – Fadi

Odpowiedz

9

Użyj --publish 80:80, jeśli chcesz uzyskać dostęp do usługi przez port 80 na hoście. W przeciwnym razie nie ma niczego na hoście, który nasłuchuje na porcie 80 i otrzymasz odmowę połączenia. To samo dotyczy 443.

Format jest

--publish <host port>:<container port> 
+0

Jeśli chcesz wysłać pakiety do kontenera. jakie kroki są potrzebne? – kit

+0

@kit Powyższe ustawienie portu będzie działać dla określonego portu. Możesz również podać kontener [rzeczywiste IP] (http://stackoverflow.com/a/42240738/1318694) lub dostęp do interfejsu hostów z '--net hostem' – Matt