Recently I have been working a lot with docker, especially docker-compose.
Oftentimes I have some container running along with a database and sometimes I want to inspect the data of the database with some external tool on my machine.
The database itself is only available to the other containers so it isn't directly exposed and I cannot connect to it from my machine.
In order for this to work I would have to shut it down, expose the port and start it again.
As this is not an ideal solution for me I would like to know if there is a way to temporarily expose a container's port or spin up some kind of proxy without the need to do a lot of manual configuration?
Ideal solution would be something like this:

docker run -p 1234:80 -e PROXY_TO= proxyimage

This sample command would then expose the created container on port 1234 and proxy all incoming traffic to port 8080 of the container running on ip
Then I could just open up my database application, connect to port 1234 and would get the data of that would normally be hidden for me.

Is there anything like this or another solution for this problem?
I know that depending on the database used I could just spin up some web based tool (like phpmyadmin) or create my own admin UI but this would take quite some time.


Look up the container's IP with docker inspect and use ssh -L to establish a tunnel. This allows you to connect to admin interfaces securely without having to put it on the internet.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.