上传到docker公有仓库
注册登录
可以在https://hub.docker.com免费注册一个docker账号。
命令行界面执行docker login输入用户名密码来完成在命令行界面登录Docker Hub。
你可以通过docker logout退出登录。
拉取镜像
可以通过docker search命令来查找官方仓库中的镜像,并利用docker pull命令来将它下载到本地。
推送镜像
用户也可以在登录后通过docker push命令来将自己的镜像推送到Docker Hub。
1、首先把要推送的镜像改名为:用户名/镜像名
docker tag 镜像id 用户名/镜像名:TAG
2、docker push 镜像名:TAG
搭建docker私有仓库
有时候使用Docker Hub这样的公共仓库可能不方便,用户可以创建一个本地仓库供私人使用。比如,基于公司内部项目构建的镜像。
docker-registry是官方提供的工具,可以用于构建私有的镜像仓库。
1、安装运行docker-registry
可以通过获取官方registry镜像来运行。默认情况下,仓库会被创建在容器的/var/lib/registry目录下。
可以通过-v参数来将镜像文件存放在本地的指定路径。
docker run --name registry -d -p 5000:5000 --restart=always -v /opt/data/registry:/var/lib/registry registry
2、修改要推送的镜像名称
docker tag hello-world:latest 127.0.0.1:5000/hello-world:latest
3、推送到本地仓库
docker push 127.0.0.1:5000/hello-world:latest
4、查看是否推送成功
curl 127.0.0.1:5000/v2/_catalog
5、删除该镜像从本次仓库重新拉取
外网推送镜像到本地仓库
如果你不想使用127.0.0.1:5000作为仓库地址,比如想让本网段的其它主机也能把镜像推送到私有仓库。你就得把例如192.168.0.102:5000这样的内网地址作为私有仓库地址,这时你会发现无法成功推送镜像。
这是因为Docker默认不允许非https方式推送镜像。我们可以通过Docker的配置选项来取消这个限制。
在/etc/docker/daemon.json中写入如下内容(如果文件不存在则新建该文件)
{
“insecure-registries”:[
“192.168.0.102:5000”
]
}