Docker私有仓库搭建
现在微服务盛行,基本大一点,访问流量高的项目都采用微服务的架构方式进行设计,当我们采用像Spring Boot或者Spring Cloud的方式进行项目开发,然后再结合Docker容器的方式进行部署。虽然Docker提供dockerhub中央仓库,而且业界也有相应的网易蜂巢,阿里的Docker镜像仓库。 但是考虑到信息安全,公司内部自己特有的一些私有Docker容器,都想自己内部搭建一个私有的Docker容器仓库,这样可以方便自己内部镜像的管理。
同时公司自己内部搭建私有镜像仓库有一下优点:
- 可以节省网络带宽,一些自己的镜像部署快;
- 私有镜像可以保证公司自己私有信息,仅公司内部使用;
1. 搭建私有仓库
1.1 下载Dokcer镜像(Registry)
$ docker pull registry
1.2 启动Registry容器
$ docker run -d -p 25000:5000 --restart=always --name=registry-srv -v /data/dockerRegistry:/var/lib/registry registry
解释
1. -d 后台方式启动容器
2. -p 宿主机和容器内部端口映射
3. --restart=always 总是自动启动容器,当宿主机挂了再开机时,容器自动运行
4. --name 容器别名
5. -v 宿主机和容器内部目录映射
启动成功查看
[root@ecs-dev-001 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c68ccfee62ef hyper/docker-registry-web "start.sh" 4 days ago Up 7 hours 0.0.0.0:8080->8080/tcp registry-web
d5b158711a40 registry "/entrypoint.sh /e..." 4 days ago Up 7 hours 0.0.0.0:25000->5000/tcp registry-srv
2. 搭建容器仓库WEB服务
Docker容器私有仓库搭建完成后,为了方便管理课查看已有的容器列表等,可以通过Registry开发的API开发一个WEB服务管理界面
2.1 下载镜像
$ docker pull hyper/docker-registry-web
2.2 启动容器
docker run -it -p 28080:8080 --restart=always --name registry-web --link registry-srv -e REGISTRY_URL=http://192.168.0.11:25000/v2 -e REGISTRY_NAME=localhost:25000 hyper/docker-registry-web
解释
1. -d 后台方式启动容器
2. -p 宿主机和容器内部端口映射
3. --restart=always 总是自动启动容器,当宿主机挂了再开机时,容器自动运行
4. --link 链接其它容器,使用registry-srv等同于registry-srv容器的局域网地址
5. -it: 分配伪命令窗口以交互模式运行
-e:设置环境变量