Docker image to forward TCP and UDP traffic to the docker host
host.docker.internal if availableYou can manually override the destination IP address by setting the environment variable DOCKER_HOST.
This allows you to use this image to forward traffic to arbitrary destinations, not only the docker host.
⚠️ On Linux systems you have to bind your host applications to bridge network gateway in addition to localhost(127.0.0.1), if you want to reach them through docker-host container. Use following docker command to get the bridge network gateway IP address
docker network inspect bridge --format='{{( index .IPAM.Config 0).Gateway}}'
Also be sure to configure your firewall of the host system to allow the dockerhost container to communicate with the host on your relevant port. Example
These examples will send messages from docker container to docker host with netcat
Start netcat server TCP on port 2323 to receive and display messages
nc 127.0.0.1 2323 -lk
Start netcat server UDP on port 5353 to receive and display messages
nc 127.0.0.1 5353 -lk -u -w0
Run the dockerhost container.
docker run --name 'dockerhost' \
--cap-add=NET_ADMIN --cap-add=NET_RAW \
--restart on-failure \
-d qoomon/docker-host
Run your application container and link the dockerhost container.
The dockerhost will be reachable through the domain/link dockerhost of the dockerhost container
netcat server on docker host.docker run --rm \
--link 'dockerhost' \
-it alpine nc 'dockerhost' 2323 -v
netcat server on docker host.docker run --rm \
--link 'dockerhost' \
-it alpine nc 'dockerhost' 5353 -u -v
Create the dockerhost network.
network_name="Network-$RANDOM"
docker network create "$network_name"
Run the dockerhost container within the dockerhost network.
docker run --name "${network_name}-dockerhost" \
--cap-add=NET_ADMIN --cap-add=NET_RAW \
--restart on-failure \
--net=${network_name} --network-alias 'dockerhost' \
qoomon/docker-host
Run your application container within the dockerhost network.
The dockerhost will be reachable through the domain/link dockerhost of the dockerhost container
netcat server on docker host.docker run --rm \
--link 'dockerhost' \
-it alpine nc 'dockerhost' 2323 -v
netcat server on docker host.docker run --rm \
--link 'dockerhost' \
-it alpine nc 'dockerhost' 5353 -u -v
version: '2'
services:
dockerhost:
image: qoomon/docker-host
cap_add: [ 'NET_ADMIN', 'NET_RAW' ]
mem_limit: 8M
restart: on-failure
tcp_message_emitter:
depends_on: [ dockerhost ]
image: alpine
command: [ "sh", "-c", "while :; do date; sleep 1; done | nc 'dockerhost' 2323 -v"]
udp_message_emitter:
depends_on: [ dockerhost ]
image: alpine
command: [ "sh", "-c", "while :; do date; sleep 1; done | nc 'dockerhost' 5353 -u -v"]
Content type
Image
Digest
Size
3.1 MB
Last updated
about 7 years ago
docker pull leonowski/docker-host