Accessing host's api from inside a container

I’m trying to make a build env with docker and i want to make this automatic. i’ve written a custom go binary to handle build stuff and i’ve built an image which has the go binary, maven and java8 sdk installed.

The steps that binary does are:

  • get label value from docker inspect [duplicate]
  • Access host IP inside docker container using docker-compose
  • Using a any part in external_url causes the server to be unreachable on docker and docker-machine
  • How to access JMX (Java Beans) from a process running in docker container
  • monitoring docker container performance using cadvisor / cgroup, best approach
  • Unable to deploy my application to remote docker
    • Clone a git repo
    • Run build command
    • Extract build artifacts to host. (which hasnt done yet.)

    I’m passing repo url as parameter to binary while running container and it does build.

    But the problem is i need those artifacts in order to run builted app.

    I know i can use volumes, but i dont want to use them because when build has done volumes are becoming dangle and it needs a job for deleting those dangling volumes.

    I thought i can create an api for saving files into host (that means i have to run that api inside host machine) and my custom go binary can send files to the api and api will do the saving.

    But when it comes to calling host from inside a container i’ve got a problem. i’m getting connection refused to port xx error.

    Is there a better way to do it , or should i change my approach?

  • Can a docker image break for different versions of Docker engine?
  • Kafka in Docker not working
  • Docker container date/time totally different to host PC
  • --cap-add in Google Container Engine
  • How to change the default docker registry from docker.io to my private registry
  • can't access apache on docker from my localhost
  • 2 Solutions collect form web for “Accessing host's api from inside a container”

    found an answer on accessing-host-machine-as-localhost-from-a-docker-container-thats-also-inside

    Running container with --add-host option is the answer.

    While you could use

    docker cp CONTAINER:SRC_PATH DEST_PATH
    

    to get the files out of your container, I still believe using a volume is the better idea. Instead of using an anonymous volume use a named one:

    docker run -v /local/host/dir:/build/output YOURIMAGE
    

    This allows you to pick up the artefacts on your host from the /local/host/dir

    https://docs.docker.com/engine/tutorials/dockervolumes/#locate-a-volume

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.