<p>I have started a Kubernetes cluster with Minikube. I used a simple deployment file to create a deployment that runs the Registry container:</p>

<pre><code>apiVersion: apps/v1
kind: Deployment
metadata:
  name: registry
  labels:
    app: registry
spec:
  replicas: 3
  selector:
    matchLabels:
      app: registry
  template:
    metadata:
      labels:
        app: registry
    spec:
      containers:
      - name: registry
        image: registry:latest
        ports:
        - containerPort: 80
</code></pre>

<p>After this, I expose the deployment using a service:</p>

<pre><code>$ kubectl expose deployment/registry --type="LoadBalancer" --port 5000  
$ minikube service registry 
</code></pre>

<p>This exposes my registry to the host machine. I can navigate to <code>http://172.17.174.88:31826/v2/_catalog</code> in my browser and see there's no repositories yet. I have an image running an ASP.Net WebApi project called <code>WeatherApp</code> on my host machine's docker. I run these commands: </p>

<pre><code>$ docker tag 0a259f7ce186 172.17.174.88:31412/weatherapp
$ docker push 172.17.174.88:31412/weatherapp
</code></pre>

<p>This causes the following error: </p>

<blockquote>
  <p>The push refers to repository [172.17.174.88:31412/weatherapp] Get
  <a href="https://172.17.174.88:31412/v2/" rel="nofollow noreferrer">https://172.17.174.88:31412/v2/</a>: dial tcp 172.17.174.88:31412:
  connect: no route to host</p>
</blockquote>

<p>I think the problem is that my docker client is trying to connect to the registry over HTTPS, which will not work. How can I force my docker client to use HTTP to push the image to my registry?</p>

<p>I‘m afraid that you will have no chance to fall back to just http. You are forced to use https. You need to configure insecure registries in your docker client. 
This might help: <a href="https://docs.docker.com/registry/insecure/" rel="nofollow noreferrer">https://docs.docker.com/registry/insecure/</a></p>
