I'm trying to proxy websocket requests from one docker container to the other. I was able to setup HTTP/HTTPS proxy on docker config.json through "httpProxy" and "httpsProxy" but couldn't find a way to do this for websocket. How should I do that for this protocol?
Related
At my job, we have internal services that can only be reached over a HTTP proxy. One such service is our internal Docker registry. I'm unable to communicate with this registry because my Docker daemon isn't configured to use a HTTP proxy.
If I do configure my Docker daemon to use the company HTTP proxy, I can push/pull images from the internal registry, but I'm now unable to communicate with any other registries. Changing the HTTP proxy environment variables and restarting my entire Docker daemon several times per day is a massive hassle and waste of time.
Basically what I need to do is configure Docker to use a HTTP proxy to communicate with one registry, but not all the other ones.
Is it possible to configure Docker this way, or is it all or nothing?
I have several external socks5 proxies, and I want to setup transparent proxy for different containers in docker. But I only found documents about setting HTTP(S) proxies for docker. What should I do if I want to forward all the traffic from docker through the external socks5 proxies?
I have set up a private registry and secured it according to the recipe with an nginx reverse proxy. nginx listens on port 5000 using SSL.
docker pull myregistry:5000/foo:latest from a remote machine to that registry works fine.
However, that same command on myregistry itself results in docker trying to access the registry (through nginx) via HTTP, not HTTPS.
Since nginx listens using SSL, it returns an error ("The plain HTTP request was sent to HTTPS port").
According to the Docker documentation, local registries are automatically considered as insecure.
In my case, I want the local registry also to be considered as secure, so that docker pull myregistry:5000/foo:latest works on the same machine. How to achieve that?
There is only an option to mark remote registries as insecure, but not to mark a specific registry as secure.
Obviously, I cannot use a different port to listen for plain HTTP, since that would change the image name. I also did not find a way to make nginx accept HTTP traffic on the same port based on IP address.
I have a django app. In front of that I want to setup 3 nginx proxies (docker containers) in local (MacOS) like:
browser-->proxy1-->proxy2-->proxy3-->(gunicorn):django-app
I have to check some IP related thing in my django app. So when I am logging the x_forwarded_for header in my django app I am getting it as: 'X-Forwarded-For': '172.17.0.1, 172.17.0.1, 172.17.0.1'
I want to give each of my nginx proxy container a different static IP. How to do that. What docker command I need to use ?
I'm creating a Docker service using Docker Cloud. I created the service using the Docker Cloud website but, my container is exposed as a TCP endpoint and not a HTTP endpoint
Container endpoint: tcp://hadoop-cff9a38e-1.67ae8643.cont.dockerapp.io:32773
According to the Docker cloud tutorial, it is possible to have a HTTP endpoint: this is seen in the example for the dockercloud/hello-world Docker Cloud service (See Link here...)
Anyone know why Docker cloud services are exposed as TCP instead of HTTP or how I can access my service using a browser?
It's because the port is in the range of 3000.
If you expose your container on 80 or 8000 you will have HTTP instead of TCP.