How to access host port from docker container

前端 未结 14 1743
南旧
南旧 2020-11-22 03:41

I have a docker container running jenkins. As part of the build process, I need to access a web server that is run locally on the host machine. Is there a way the host web s

14条回答
  •  萌比男神i
    2020-11-22 04:01

    When you have two docker images "already" created and you want to put two containers to communicate with one-another.

    For that, you can conveniently run each container with its own --name and use the --link flag to enable communication between them. You do not get this during docker build though.

    When you are in a scenario like myself, and it is your

    docker build -t "centos7/someApp" someApp/ 
    

    That breaks when you try to

    curl http://172.17.0.1:localPort/fileIWouldLikeToDownload.tar.gz > dump.tar.gz
    

    and you get stuck on "curl/wget" returning no "route to host".

    The reason is security that is set in place by docker that by default is banning communication from a container towards the host or other containers running on your host. This was quite surprising to me, I must say, you would expect the echosystem of docker machines running on a local machine just flawlessly can access each other without too much hurdle.

    The explanation for this is described in detail in the following documentation.

    http://www.dedoimedo.com/computers/docker-networking.html

    Two quick workarounds are given that help you get moving by lowering down the network security.

    The simplest alternative is just to turn the firewall off - or allow all. This means running the necessary command, which could be systemctl stop firewalld, iptables -F or equivalent.

    Hope this information helps you.

提交回复
热议问题