阿里云搭建docker私有仓库

发布于:2025-03-23 ⋅ 阅读:(20) ⋅ 点赞:(0)

目录

云主机操作

启动docker本地镜像服务

推送镜像到本地镜像服务的仓库

云主机安全组

内网主机操作


阿里云主机是99元/年,连续了2年,顺手搭建docker私有仓库,如果docker.io无法下载通过公有云在阿里云私有仓库中转镜像下载;

云主机操作

启动docker本地镜像服务


# 拉取registry镜像
[root@iZ2zedkjb5705wlv5ipiqgZ docker-files]# docker pull registry
Using default tag: latest
Trying to pull repository docker.io/library/registry ...
latest: Pulling from docker.io/library/registry
79e9f2f55bf5: Pull complete
0d96da54f60b: Pull complete
5b27040df4a2: Pull complete
e2ead8259a04: Pull complete
3790aef225b9: Pull complete
Digest: sha256:169211e20e2f2d5d115674681eb79d21a217b296b43374b8e39f97fcf866b375
Status: Downloaded newer image for docker.io/registry:latest

# 查看
[root@iZ2zedkjb5705wlv5ipiqgZ docker-files]# docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
docker.io/postgres   13                  0896a8e0282d        3 years ago         371 MB
docker.io/redis      5                   c5da061a611a        3 years ago         110 MB
docker.io/mysql      8                   3218b38490ce        3 years ago         516 MB
docker.io/registry   latest              b8604a3fe854        3 years ago         26.2 MB
docker.io/openjdk    8-jdk-alpine        a3562aa0b991        5 years ago         105 MB

#启动
[root@iZ2zedkjb5705wlv5ipiqgZ docker-files]# docker run -d  -p 5000:5000 --restart=always --name registry -v /data/registry:/var/lib/registry  registry

# 查看
[root@iZ2zedkjb5705wlv5ipiqgZ docker-files]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS                    NAMES
11c319acf68e        registry            "/entrypoint.sh /e..."   10 seconds ago      Up 9 seconds               0.0.0.0:5000->5000/tcp   registry

#验证
[root@iZ2zedkjb5705wlv5ipiqgZ docker-files]# curl -X GET http://localhost:5000/v2/_catalog
{"repositories":[]}

推送镜像到本地镜像服务的仓库

# 本地首先有redis,然后重新tag到本地镜像服务的仓库中
[root@iZ2zedkjb5705wlv5ipiqgZ registry]# docker tag redis:5 127.0.0.1:5000/redis:5

# 推送到本地镜像仓库
[root@iZ2zedkjb5705wlv5ipiqgZ registry]# docker push 127.0.0.1:5000/redis:5

# 如果不重新tag直接推会报错
[root@iZ2zedkjb5705wlv5ipiqgZ registry]# docker push docker.io/mysql:8
Error response from daemon: You cannot push a "root" repository. Please rename your repository to docker.io/<user>/<repo> (ex: docker.io/<user>/mysql)

[root@iZ2zedkjb5705wlv5ipiqgZ registry]# docker push mysql:8
Error response from daemon: You cannot push a "root" repository. Please rename your repository to docker.io/<user>/<repo> (ex: docker.io/<user>/mysql)

云主机安全组

 内网主机只要放开跟阿里云的端口服务即可,确保阿里云主机的安全组规则开放了 5000 端口(Docker 镜像仓库默认使用的端口),以便其他物理机能够访问;

内网主机操作

内网主机只要放开跟阿里云的端口服务即可,telnet ip:5000测试ok;

[root@localhost ~]# docker pull 101.200.90.13:5000/redis:5
5: Pulling from redis
a2abf6c4d29d: Pull complete
c7a4e4382001: Pull complete
4044b9ba67c9: Pull complete
106f2419edf3: Pull complete
9772114922b9: Pull complete
63031aedd0c4: Pull complete
Digest: sha256:8f14f99408feadb3812b9a0889ff730fc6f166896b6123c4726f6ea6e162844c
Status: Downloaded newer image for 101.200.90.13:5000/redis:5

[root@localhost ~]# docker images
101.200.90.13:5000/redis                         5                   c5da061a611a        3 years ago         110MB

以上就完成了使用阿里云主机简单搭建私有仓库镜像仓库,可以先把需要的镜像下载到阿里云后中转下载;