8
votes

I am trying to run a gitlab docker image, and everything is running fine except that when I navigate to the website, Port 80 results in "Connection refused", but port 8080 successfully reaches Gitlab.

However, it shows that it's forwarding from 8080 to 80 on the container:

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

Here's how I'm running the container.

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
2
Are you using localhost or the container's IP to access the service? http://<container-ip>:80 should always work in your example, and as you're mapping the container port 80 to host port 8080, http://localhost:8080 should work, too.helmbert
It's deployed remotely, and I'm using the machine's ip address. So like I'm typing 10.96.2.17:8080 in order to reach the site right now; I would like to do just 10.96.2.17 instead. (I do have also a hostname setup for it through Route 53 [AWS]).Fadi

2 Answers

12
votes

Use --publish 80:80 if you want to access the service via port 80 on the host. Otherwise there's nothing on the host listening on port 80 and you get connection refused. Same goes for 443.

The format is

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

My solution looks like this:

docker network create --subnet=172.18.0.0/16 selnet docker run --net selnet --ip 172.18.0.2 -p 0.0.0.0:80:8080 --expose=80 hub

I am able to connect to my container with localhost:Port or 172.18.0.2:Port