<p>For company rules, our VMs can not access internet (can not use http proxy too). I installed a kubernetes cluster by downloading rpm packages and docker images as below:</p>

<pre><code> k8s.gcr.io/kube-apiserver-amd64:v1.11.0
 k8s.gcr.io/kube-controller-manager-amd64:v1.11.0
 k8s.gcr.io/kube-scheduler-amd64:v1.11.0
 k8s.gcr.io/kube-proxy-amd64:v1.11.0 k8s.gcr.io/pause-amd64:3.1
 k8s.gcr.io/etcd-amd64:3.2.18 k8s.gcr.io/coredns:1.1.3
 quay.io/coreos/flannel:v0.10.0-amd64
</code></pre>

<p>Then i install the rpm packages and load these docker images into all VMs. This can successfully install kubernetes although it's hard working.</p>

<p>My question is that Can i use a private docker registry to store these k8s.gcr.io, quay.io and other public registries' images and each VM's docker.service can pull these images like my private images?</p>

<p>There are several solutions:</p>

<ol>
<li>Since your machines don't have internet connection and you want use the same images names - you need to provide internet to them. It could be done with any PROXY server, like <code>squid</code> or something else. In this case, you'll need to reconfigure <code>docker</code> to make it work behind the proxy</li>
<li>Deploy any local registry solution (e.g <code>Artifactory</code>) and then use it as a mirror for <code>docker</code></li>
</ol>

<p>P.S: I am not insisting on using <code>Artifactory</code>, but it could be very convenient. Look, <code>Artifactory</code> provides the ability to create virtual registry. You can agregate another registries (k8s.gcr.io, quay.io, whatever) "under" this virtual one and use it for <code>docker</code> mirror after.</p>
