您的位置:首页 > 运维架构 > Docker

Docker-搭建私有仓库

2021-08-03 23:15 691 查看

通常我们在

docker
拉取的镜像都是在
docker hub
quay.io
等公有仓库获取,那么在实际工作中,每个公司如果使用到
docker
,那么肯定是要搭建自己的私有仓库。那么接下来就通过
docker
提供的
registry
镜像来搭建我们自己的私有仓库。

1、拉取registry镜像

这里默认拉取最新版本,不指定版本就默认拉取

latest
版本

docker pull registry
Using default tag: latest
latest: Pulling from library/registry
ddad3d7c1e96: Downloading
6eda6749503f: Download complete
363ab70c2143: Download complete
5b94580856e6: Download complete
12008541203a: Download complete
latest: Pulling from library/registry
ddad3d7c1e96: Pull complete
6eda6749503f: Pull complete
363ab70c2143: Pull complete
5b94580856e6: Pull complete
12008541203a: Pull complete
Digest: sha256:121baf25069a56749f249819e36b386d655ba67116d9c1c6c8594061852de4da
Status: Downloaded newer image for registry:latest
docker.io/library/registry:latest

使用镜像查看命令,查看镜像

docker images registry
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
registry     latest    1fd8e1b0bb7e   3 months ago   26.2MB

2、运行registry镜像

docker run -d -p 5000:5000 --name registry registry:latest
795e0a78aea0bf39ea95f800221f26fb4882efd4c4dc2143f90b37ee10da3126

查看容器是否启动成功

docker ps
CONTAINER ID   IMAGE             COMMAND                  CREATED          STATUS          PORTS                                       NAMES
795e0a78aea0   registry:latest   "/entrypoint.sh /etc…"   43 seconds ago   Up 42 seconds   0.0.0.0:5000->5000/tcp, :::5000->5000/tcp   registry

查看私有仓库

curl -XGET http://127.0.0.1:5000/v2/_catalog
{"repositories":[]}

可以看到,目前私有仓库里面为空。

3、向私有仓库推送镜像

docker images
REPOSITORY            TAG       IMAGE ID       CREATED        SIZE
arvin88/tomcat_user   v1        77fc61f55a0c   2 days ago     590MB

现在将镜像

arvin88/tomcat_user
修改为
127.0.0.1:5000/tomcat_user

docker tag arvin88/tomcat_user:v1 127.0.0.1:5000/tomcat_user:v2
[root@localhost docker]# docker images
REPOSITORY                   TAG       IMAGE ID       CREATED        SIZE
127.0.0.1:5000/tomcat_user   v2        77fc61f55a0c   2 days ago     590MBarvin88/tomcat_user          v1        77fc61f55a0c   2 days ago     590MB

推送到私有仓库。

docker push 127.0.0.1:5000/tomcat_user:v2
The push refers to repository [127.0.0.1:5000/tomcat_user]
fa24164bb3bf: Pushed
e4457e70997e: Pushed
ffb06ffdd1e8: Pushed
b6a3bb3fa031: Pushed
32fff2065e67: Pushed
ea822a1a4f9d: Pushed
fe6a347f93b5: Pushed
f3d5b8f65132: Pushed
ad83f0aa5c0a: Pushed
5a9a65095453: Pushed
4b0edb23340c: Pushed
afa3e488a0ee: Pushed
v2: digest: sha256:8d4ed98df7c6ea9b22e33f61c9fac6020625592d75c42759c640bc8ad2af889e size: 2841

然后再使用

curl -XGET http://127.0.0.1:5000/v2/_catalog
查看私有仓库。

curl -XGET http://127.0.0.1:5000/v2/_catalog
{"repositories":["tomcat_user"]}

可以看到已经推成功了。

4、从私有仓库拉取镜像

为了测试,先将本地镜像全部删除

docker pull 127.0.0.1:5000/tomcat_user:v2
v2: Pulling from tomcat_user
627b765e08d1: Pull complete
c040670e5e55: Pull complete
073a180f4992: Pull complete
bf76209566d0: Pull complete
f10db7ba7580: Pull complete
5e5dee180760: Pull complete
c26c02f721c2: Pull complete
d24d42fda432: Pull complete
20abf5c2533f: Pull complete
d16e82e0b4a0: Pull complete
32f2c6ec5ff1: Pull complete
975419add384: Pull complete
Digest: sha256:8d4ed98df7c6ea9b22e33f61c9fac6020625592d75c42759c640bc8ad2af889e
Status: Downloaded newer image for 127.0.0.1:5000/tomcat_user:v2
127.0.0.1:5000/tomcat_user:v2

查看本地镜像结果

REPOSITORY                   TAG       IMAGE ID       CREATED        SIZE
127.0.0.1:5000/tomcat_user   v2        77fc61f55a0c   2 days ago     590MB

5、常用API

curl -XGET http://127.0.0.1:5000/v2/_catalog
{"repositories":["tomcat_user"]}
curl -XGET http://127.0.0.1:5000/v2/tomcat_user/tags/list
{"name":"tomcat_user","tags":["v2"]}

官网还提供了其他API,有兴趣可以查看仓库API

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: