前言
1.官方Docker Hub地址:https://hub.docker.com/,中国大陆访问太慢了且准备被阿里云取代的趋势,不太主流。
2.Dockerhub、阿里云这样的公共镜像仓库可能不太方便,涉及机密的公司不可能提供镜像给公网,所以需要创建一个本地私人仓库供给团队使用,基于公司内部项目构建镜像。
3.Docker Registry是官方提供的工具,可以用于构建私有镜像仓库
部署阿里云仓库
基本流程
流程解析
1.创建images
docker build Dockerfile # 构建一个镜像(创建一个新镜像 比较推荐) docker save -o xxx.tar imageId/imageName # 将镜像保存为tar包 docker load -i x x x.tar # 镜像加载 进来(操作原来的镜像) docker export containerId/containerName > xxx.tar # 创建一个镜像快照的tar包文 cat xxx.tar | docker import - imageName:version # 导入一个镜像快照 docker commit -a "作者信息" -m "描述信息" containerId/containerName NewContainerName:版本 # 从当前运行的旧容器创建一个新容器
- docker commit 命令用于创建一个新的镜像(image)从一个正在运行的容器(container)的当前状态。
- 这意味着你可以基于一个正在运行的容器创建一个新的镜像,这个新镜像包含了容器运 行时的所有更改(例如,添加的文件、修改的配置等)。
- docker export 命令用于将容器的文件系统导出为一个 tar 归档文件。这与 docker commit 不同,
- 因为它不包含任何元数据或历史记录,只是简单地导出容器那一刻的文件系统快照。
2.运行docker tag 命令
将镜像打成镜像.tar 镜像仓库接收镜像.tar
3.运行docker push命令(命令不固定,具体见下)
将镜像.tar 推送至远端镜像仓库
搭建阿里云镜像仓库
1.公有仓库
- 阿里云开发平台 开放云原生应用-云原生(Cloud Native)-云原生介绍 - 阿里云
登录自己的账号,选择控制台,搜索容器镜像服务 ACR
选择个人版,创建命名空间,再到镜像仓库页面创建仓库地址并选择刚才创建的命名空间
第一次可能要领取,免费使用,可以领取!
4. 进入自己刚才创建的仓库,阿里的推拉镜像指令都在这里面
5. 到此为止 镜像仓库已经创建完毕,根据阿里生成的指令 可以将自己的镜像推上来,也可以让别人到这个地址拉取镜像
2.搭建私有仓库
Docker Registry是官方提供的工具,可以用于构建私有镜像仓库
1.拉取仓库镜像
docker pull register
2.启动仓库镜像
docker run -d -p 5000:5000 -v /personregistry/myregistry/:/tmp/registry --privileged=true registry # 默认情况,仓库被创建在容器的/var/lib/registry目录下,建议自行用容器卷映射,方便和宿主机联调
3.查看私有仓库镜像
curl -XGET http://xxxx:5000/v2/_catalog
4.将本地镜像生成镜像:Tag
docker tag mycentosjava8:1.0 xxxx:5000/mycentosjava8:1.0
注意:如果连接失败 执行如下命令
vim /etc/docker/daemon.json { "registry-mirrors": ["https://aa25jngu.mirror.aliyuncs.com"], "insecure-registries": ["192.168.111.162:5000"] } # docker默认不允许http方式推送镜像,通过配置选项来取消这个限制。====> 修改完后如果不生效,建议重启docker
5.将镜像推送到私有库
docker push xxxxx:5000/mycentosjava8:1.0
6.验证是否有镜像
curl -XGET http://xxxx:5000/v2/_catalog
7. 到此私有镜像也搭建完毕,拉取镜像
docker pull xxxx:5000/mycentosjava8:1.2
结束
如果写的不好 可以留言哈!!!