Andy Zhou
Andy Zhou

Reputation: 182

I can't get access to an exposed port in docker

I'm using Ubuntu 20.04 and running Python 3.8. Here is my dockerfile:

FROM python:3.8

WORKDIR /usr/src/flog/

COPY requirements/ requirements/
RUN pip install -r requirements/dev.txt
RUN pip install gunicorn

COPY flog/ flog/
COPY migrations/ migrations/
COPY wsgi.py ./
COPY docker_boot.sh ./
RUN chmod +x docker_boot.sh

ENV FLASK_APP wsgi.py

EXPOSE 5000
ENTRYPOINT ["./docker_boot.sh"]

and my docker_boot.sh

#! /bin/sh
flask deploy
flask create-admin
flask forge
exec gunicorn -b 0.0.0.0:5000 --access-logfile - --error-logfile - wsgi:app

I ran docker run flog -d -p 5000:5000 in my terminal. And I couldn't get my app working by typing localhost:5000 but it worked quite well when I typed 172.17.0.2:5000 (the docker machine's ip address). But I want the app to run on localhost:5000.

I'm sure there is nothing wrong with the requirements/dev.txt and the code because it works well when I run flask run directly in my terminal.

Edit on 2021.3.16:

Add docker ps information when docker run flog -d -p 5000:5000 is running:

CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS      NAMES
ff048e904183   flog      "./docker_boot.sh -d…"   8 seconds ago   Up 6 seconds   5000/tcp   inspiring_kalam

It is strange that there's no mapping of the hosts. I'm sure the firewall is off.

Can anyone help me? Thanks.

Upvotes: 0

Views: 365

Answers (1)

jordanvrtanoski
jordanvrtanoski

Reputation: 5517

Use docker run -d -p 0.0.0.0:5000:5000 flog.

The arguments and the flags that are after the image name are passed as arguments to the entrypoint of the container created from that image.

Run docker ps and you need to see something like

CONTAINER ID   IMAGE              COMMAND                  CREATED          STATUS          PORTS                                              NAMES
565a97468fc7   flog               "docker_boot.sh"         1 minute ago     Up 1 minutes    0.0.0.0:5000->5000/tcp                             xxxxxxxx_xxxxxxx

Upvotes: 1

Related Questions