Wicia
Wicia

Reputation: 565

Docker - Connecting to localhost - connection refused

This is my Dockerfile:

FROM sonatype/nexus3:latest
COPY ./scripts/ /bin/scripts/
RUN curl -u admin:admin123 -X GET 'http://localhost:8081/service/rest/v1/repositories'

After running build:

docker build -t test./

The input is:

(7) Failed connect to localhost:8081; Connection refused

Why? Sending requests to localhost (container which is building) is possible only after run it? Or maybe I should add something to Dockerfile?

Thanks for help :)

Upvotes: 0

Views: 1460

Answers (2)

vivekyad4v
vivekyad4v

Reputation: 14903

Dockerfile is a way to create images, then you create containers from images. Ports are up to serve once the container is up & running. Hence, you can't do a curl while building an image.

Change Dockerfile to -

FROM sonatype/nexus3:latest
COPY ./scripts/ /bin/scripts/

Build image -

 docker build -t test .

Create container from the image -

docker run -d  --name nexus -p 8081:8081 test 

Now see if your container is running & do a curl -

docker ps 
curl -u admin:admin123 -X GET 'http://localhost:8081/service/rest/v1/repositories'

Upvotes: 1

Stefan Masztalerz
Stefan Masztalerz

Reputation: 66

Why do you want to connect to the service while it is build?

By default the service is not running yet, you'll need to start the container first.

Remove the curl and start the container first

docker run test 

Upvotes: 1

Related Questions