Docker registry官方地址: Docker Registry | Docker Documentation
1. 获取repository镜像:repository
# 获取registry镜像
docker pull registry
# 运行registry
docker run -d -p 5000:5000 --name registry registry
2.获取可视化页面镜像:joxit/docker-registry-ui:static
Docker官方没有提供Docker registry的ui界面,只能通过命令行访问仓库,可以使用以下命令安装ui插件:
# 获取ui镜像
docker pull hyper/docker-registry-web
# 运行ui容器
docker run -d -p 8080:8080 --name registry-web --link registry -e REGISTRY_URL=http://registry:5000/v2 -e REGISTRY_NAME=myDockerRegistry hyper/docker-registry-web
通过浏览器访问:localhost:8080,你就会发现我们的Docker私有化仓库ui也启动成功啦!
3.配置自己的Docker仓库
由于本地镜像仓库不是https访问的,因此默认是不可信的,需要修改配置文件daemon.json 添加信任地址,并重启Docker后就可以正常使用啦~
{
"builder": {
"gc": {
"defaultKeepStorage": "20GB",
"enabled": true
}
},
"experimental": false,
# 添加信任的registry地址
"insecure-registries":["http://127.0.0.1:8080"],
"registry-mirrors": [
"http://hub-mirror.c.163.com"
]
}
4.推送镜像到自己的Docker仓库
# 将redis镜像重新添加tag,制作成自己的镜像
docker image tag redis localhost:5000/my-redis
通过docker images命令,查看已经成功生成新的镜像
运行以下命令,将镜像推送到本地仓库:
docker push localhost:5000/my-redis
如下图所示,我们的镜像已经成功推送到仓库了:
如下图所示,ui页面中里也出现我们推送上去的镜像了 :
5.从自己的Docker仓库获取镜像
与正常获取镜像一样,只用pull命令就可以获取镜像:
docker pull local:5000/my-redis:latest
6. 停止Docker仓库并清空镜像
docker container stop registry && docker container rm -v registry
7. 使用docker-compose
让我们使用前面学习的docker compose来一键部署registry和web应用吧:
version: '3.0'
services:
registry:
image: registry
volumes:
- ./docker-registry:/var/lib/registry
ui:
image: hyper/docker-registry-web
ports:
- 8080:880
environment:
- REGISTRY_NAME=Docker私有仓库
- REGISTRY_URL=http://registry:5000/v2
depends_on:
- registry
通过本篇的学习,我们基本学会了如何部署自己的Docker镜像,已经将镜像上传和下载到自己的镜像仓库。以后我们就可以将自己的程序打包成镜像交给镜像仓库管理啦~