搭建私有镜像仓库
当使用docker pull
下载一个镜像的时候,实际是从docker hub网站下载镜像。Docker Hub作为Docker默认官方公共镜像;如果想自己搭建私有镜像仓库,官方也提供registry镜像,使得搭建私有仓库非常简单。
下载registry镜像并启动
docker pull registry
docker run -d -v /opt/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry
这里遇到一个报错:
iptables: No chain/target/match by that name
,解决办法是重启docker然后执行iptables-save
即可。
测试,查看镜像仓库中所有镜像
curl http://10.10.99.241:5000/v2/_catalog
现在仓库中没有镜像,所以是空的。
上传和下载镜像的过程
配置镜像仓库信任
vim /etc/docker/daemon.json
{
"registry-mirrors": [ "https://registry.docker-cn.com" ],
"insecure-registries": ["10.10.99.241:5000"]
}
systemctl restart docker
给待上传的镜像打标签
查看现有的镜像:
现在想上传busybox:latest
这个镜像,首先给这个镜像打个标签:
docker tag busybox:latest 10.10.99.241:5000/busybox:v1.0
上传镜像
docker push 10.10.99.241:5000/busybox:v1.0
创建仓库的时候指定了数据持久化的目录,所以可以在目录下查看到上传的镜像数据:
现在在通过仓库提供的接口可以查看到上传的镜像了:
下载镜像
单纯下载镜像可以使用下面的指令:
docker pull 10.10.99.241:5000/buxybox:v1.0
或者可以直接运行docker容器:
docker run -tid --name busybox 10.10.99.241:5000/busybox:v1.0 ping 8.8.8.8
列出镜像标签
curl http://10.10.99.241:5000/v2/busybox/tags/list
公共镜像仓库使用
可以将自己的镜像上传到docker hub中,然后可以方便的从docker hub中下载镜像。
注册docker hub
登录docker hub官方网站然后注册,这里不多赘述。
登录docker hub
docker login
或
docker login --username=<username> --password=<password>
镜像打标签
查看一下现在有的镜像:
现在要上传mysql这个镜像,所以先对他打标签:
docker tag mysql:5.7 lyzkks/mysql:v5
上传镜像
docker push lyzkks/mysql:v5
查看上传的镜像
一种方法是在页面中看,上传成功后将会在页面中显示上传的镜像:
可以在
DETAILS
中编辑详细信息
另一种是命令行执行命令,搜索上传的镜像:
docker search lyzkks
开始的时候不一定能搜到,可能是缓存的原因,需要等一段时间。
下载镜像
docker pull lyzkks/mysql:v5