目录
阿里云主机是99元/年,连续了2年,顺手搭建docker私有仓库,如果docker.io无法下载通过公有云在阿里云私有仓库中转镜像下载;
云主机操作
启动docker本地镜像服务
bash
# 拉取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":[]}
推送镜像到本地镜像服务的仓库
bash
# 本地首先有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;
bash
[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
以上就完成了使用阿里云主机简单搭建私有仓库镜像仓库,可以先把需要的镜像下载到阿里云后中转下载;