文章目录
搭建私有镜像仓库
前言
如果想让我们构建的本地镜像到其他机器上也能够同样运行,那么该如何操作呢?有以下两种方式可以操作:
- 通过docker image save进行导出,下载下来然后拷贝到另外一台机器
- 通过搭建私有仓库的形式,把镜像存放在仓库里,方便下次在另外一台机器上使用的时候,直接从仓库里拉取就行了
第一种显得不够自动化,使用起来不方便,采用第二种。
私有镜像仓库管理
前言
Docker Hub作为Docker默认官方公共镜像,如果想自己搭建私有镜像仓库,官方也提供registry镜像,使得搭建私有仓库非常简单。我们在机器上使用docker pull xxx默认拉取的镜像都是docker hub里的,这里放着许多官方的一些镜像,docker hub地址。下面是搭建私有镜像仓库的一些步骤。
下载registry镜像并启动
- docker pull registry
- docker run -d -v /opt/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry
我们指定了一个数据卷-v /opt/registry,这个数据卷将私有仓库产生的所有镜像的工作目录持久化到宿主机上,保证后期你对容器的删除,它的镜像不会丢失。-p 5000:暴露一个端口,访问宿主机的5000就能访问我们的私有镜像了。–restart=always:设置一个重启的策略,也就是说如果它要异常退出了,然后你再给我重启!–name registry registry:容器名,镜像
测试,查看镜像仓库中所有镜像
http://192.168.6.130:5000/v2/_catalog
可以看见"repositories"是一个空的数组,我们可以先上传一个镜像:
上传到镜像仓库
- 配置私有仓库可信任
vim /etc/docker/daemon.json
{"insecure-registries":[""insecure-registries": ["192.168.6.130:5000"]"]}
systemctl restart docker
- 打标签
docker tag nginx:1.12 192.168.6.130:5000/nginx:1.12
- 上传
docker push 192.168.6.130:5000/nginx:1.12
- 查看
curl http://192.168.6.130:5000/v2/_catalog
可以看见:
{"repositories":["nginx"]}
- 下载
先去本地拉镜像,如果没有的话会从镜像仓库里拉取
docker run -itd --name nginx -p 88:80 192.168.6.130:5000/nginx:1.12
访问端口查看:
8. 列出镜像标签
查看nginx所有的tag:
curl http://192.168.6.130:5000/v2/nginx/tags/list
{"name":"nginx","tags":["1.12"]}
Docker Hub公共镜像仓库使用
注册账号
https://hub.docker.com
登陆自己的账号
docker login
或者:docker login --username = keweizhou --password=123456
镜像打标签
docker tag nginx:v2.1 keweizhou211/kwz:v2.1
上传
docker push keweizhou211/kwz:v2.1
docker hub相对比较慢,也可以用国内的一些镜像仓库,例如:阿里云镜像仓库
搜索测试:
docker search keweizhou
下载
docker pull keweizhou211/kwz:v2.1