一. 背景
正常情况下,如果需要拉取镜像的话,可以去docker的官网拉取(https://hub.docker.com/),也可以使用国内的镜像网站(国内的相对速度比较快), 例如网易蜂巢(https://c.163yun.com)。但是作为一个公司或者团队,当然不会把自己的镜像上传到互联网上,因此我们要搭建自己的docker私有镜像服务器,用于存储镜像。就像maven一样,可以搭建伺服,用于存放jar包。
二. 环境搭建
1.搭建docker环境
请参考:Docker之环境搭建(一)
2.下载registry镜像
3.查看registry镜像
4.运行registry容器
docker run -itd -v /data/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:latest
参数说明:
-itd:在容器中打开一个伪终端进行交互操作,并在后台运行;
-v:把宿主机的/data/registry目录绑定到容器/var/lib/registry目录,存放镜像,用于镜像的持久化;
-p:端口映射,镜像上传下载都需要用到此端口;
–restart=always:这是重启的策略,假如这个容器异常退出会自动重启容器;
–name registry:创建容器命名为registry,你可以随便命名;
registry:latest:这个是刚才pull下来的镜像;
5. 上传镜像到伺服
a. 给镜像打tag
docker tag hello_world:lasted 192.168.214.128:5000/hello_world:lasted
b. 查看打成的tag镜像
c. 上传镜像报错:
docker push 192.168.214.128:5000/hello_world:v1
d. 配置允许通过http方式上传(手动创建)
vim /etc/docker/daemon.json
{
“registry-mirrors”: [ “https://registry.docker-cn.com”],
“insecure-registries”: [ “192.168.214.128:5000”]
}
e. 重新装载配置文件
systemctl daemon-reload
f. 重启docker
systemctl restart docker
g.重新上传镜像
6.启动管理界面
docker run -d -e ENV_DOCKER_REGISTRY_HOST=192.168.214.128 -e ENV_DOCKER_REGISTRY_PORT=5000 -p 8081:80 konradkleine/docker-registry-frontend:v2
7. 访问管理界面:
http://192.168.214.128:8081/repositories/
8. 使用镜像:
docker pull 192.168.214.128:5000/centos:v1