在国内使用docker pull总是不能正常拉取文件下来,现在可以自己制作镜像服务器了
希望你已经有了无需密码就能登陆的CentOS-newssh镜像,如果还没有,请看Docker使用系列四:
制作Docker镜像私服步骤如下:
本文假设本机IP是192.168.56.101,Registry服务的域名是registry.linuxidc.com
第一步执行下面的命令会创建一个名为centos-registry镜像:
docker build -t centos-registry https://git.oschina.net/linuxidc/Docker_shell/raw/start/Dockerfile-registry
第二步,创建registry容器,这里要监听22和5000端口
docker run -d -p 127.0.0.1:33307:22 -p 127.0.0.1:5000:5000 centos-registry
测试:
[root@docker-base docker-temp]# curl 127.0.0.1:5000
出现:"docker-registry server (dev)" 代表registry进程自动了
第三步,配置nginx:
yum -y install nginx
service nginx start
echo -e "server {\n listen 80;\n server_name registry.linuxidc.com;\n location / {\n proxy_set_header Host \$host;\n proxy_pass :5000/;\n }\n}" >>/etc/nginx/conf.d/virtual.conf
service nginx reload
echo "127.0.0.1 registry.linuxidc.com" >> /etc/hosts
测试:
[root@docker-base docker-temp]# curl registry.linuxidc.com
出现 "docker-registry server (dev)" 代表成功
第四步,使用自己的registry服务器
把本机镜像tag一下:
docker tag centos-newssh registry.linuxidc.com/centos-newssh
把刚才tag的镜像Push到registry服务器上:
docker push registry.linuxidc.com/centos-newssh
第五步,换台服务器配置hosts文件,比如我的registry服务器IP是192.168.56.101,
在另外一台服务器上192.168.56.102上配置hosts
echo "192.168.56.101 registry.linuxidc.com" >> /etc/hosts
然后执行:
docker pull registry.linuxidc.com/centos-newssh
创建容器:docker run -d -p 127.0.0.1:33306:22 -m 256M registry.linuxidc.com/centos-newssh
登陆:ssh root@127.0.0.1 -p 33306
密码是:123456
这样我们的私服就利用起来了。