Unable to run Golang application on Docker

2019-09-24 03:59发布

问题:

I am trying to run this project - https://github.com/JumboInteractiveLimited/codetest

I've downloaded the Docker tool box, and I've executed the build and run commands as mentioned on the GitHub page, but when I try to access http:localhost:8080, the page is still unavailable.

When I try to execute run again, Docker says

"$ ./run.sh
Listening on http://localhost:8080
C:\Program Files\Docker Toolbox\docker.exe: Error response from daemon:    driver failed programming external connectivity on endpoint quirky_mcnulty (32af4359629669ee515cbc07d8bbe14cca3237979f37262882fb0288f5d6b6b8): Bind for 0.0.0.0:8080 failed: port is already allocated."

Edit: To clarify, I get that error only when I run the 2nd time. When I ran the run command first, it didn't complain. I ran it another time just to confirm that it's running.

When I initially ran, I got the following:

$ ./run.sh
Listening on http://localhost:8080
2017/10/24 13:51:53 Waiting...

回答1:

Change run.sh to replace port 8080 to 8082

#!/bin/bash
echo "Listening on http://localhost:8082"
docker run -p 8082:80 codetest

I have changes port to 8082 if the port is already in use change that port again to some other port based on your available port.

If you are on Windows

netsh interface portproxy add v4tov4 listenport=8082 listenaddress=localhost connectport=8082 connectaddress=192.168.99.100(IP of the Docker)

Here is the helping discussion on port farwarding in windows with docker Solution for Windows hosts



回答2:

The issue seems quite clear

port is already allocated

which means that some other program is listening on port 8080. If you are on a Linux system you can try to run

sudo lsof -i :8080

to find out what is.

Otherwise, simply use another port.



标签: docker go