PostgreSQL码农集散地

Docker image无法下载?早就有解决办法了啊!

docker image不能下载, 这个消息怎么又火遍朋友圈了, 难道不是一直都不能用吗? 

比如要pull postgresql的镜像, 我们是不是先要知道这个镜像的命名, 可是 hub.docker.com 早就不能访问了, 如果你有高科技上网当我没说. 

https://hub.docker.com/_/postgres

5c1bf480a210:~ digoal$ docker pull postgresUsing default tag: latestlatest: Pulling from library/postgres

以前知道镜像命名, pull是可以的, 现在疯传的是不仅网站不能访问, pull也不行了, 会卡在pulling阶段.  

虽然pulling可以配置proxy, 但这是个docker的收费能力. 

Image

使用代理需要付费: 

5c1bf480a210:~ digoal$ docker pull postgresUsing default tag: latestError response from daemon: .
Log in with your Docker ID or email address.If you don't have a Docker ID, head over to https://hub.docker.com/ to create one.
Using a SOCKS proxy requires a Business Subscription. Learn more at https://www.docker.com/pricing/

现在即使有高科技上网, 也没法拉到docker image了, 修改了路由的v p n除外因为不需要代理. 

我早就放弃了docker hub, 使用阿里云容器镜像服务, 把官方镜像拉到本地acr再使用舒服多了. 

容器镜像服务: https://cr.console.aliyun.com/cn-hangzhou/instances

Image

个人版免费使用

Image

有2个数据库的学习镜像都放在acr里面, 里面包括PostgreSQL, PolarDB, DuckDB, HaloDB等, 同时在PG中内置了200多个常用的插件和数十个PG生态工具, 未来将集成更多优秀的国产DB和国产周边生态产品.

欢迎热爱数据库的同学使用.

X86版: 

# 拉取镜像, 第一次拉取一次即可. 或者需要的时候执行, 将更新到最新镜像版本.  docker pull registry.cn-hangzhou.aliyuncs.com/digoal/opensource_database:pg14_with_exts  # 启动容器  docker run --platform linux/amd64 -d -it -P --cap-add=SYS_PTRACE --cap-add SYS_ADMIN --privileged=true --name pg --shm-size=1g registry.cn-hangzhou.aliyuncs.com/digoal/opensource_database:pg14_with_exts
##### 如果你想学习备份恢复、修改参数等需要重启数据库实例的case, 换个启动参数, 使用参数--entrypoint将容器根进程换成bash更好. 如下: docker run -d -it -P --cap-add=SYS_PTRACE --cap-add SYS_ADMIN --privileged=true --name pg --shm-size=1g --entrypoint /bin/bash registry.cn-hangzhou.aliyuncs.com/digoal/opensource_database:pg14_with_exts##### 以上启动方式需要进入容器后手工启动数据库实例: su - postgres; pg_ctl start; ##### 将 宿主机的存储位置 映射到 docker容器内 的例子# 宿主机:# mkdir -p ~/docker_volumn/pg # 创建容器时进行映射, 例如: -v ~/docker_volumn/pg:/data 将宿主机 ~/docker_volumn/pg 映射到 容器 /data# 如: # docker run -v ~/docker_volumn/pg:/data --platform linux/amd64 -d -it -P --cap-add=SYS_PTRACE --cap-add SYS_ADMIN --privileged=true --name pg --shm-size=1g registry.cn-hangzhou.aliyuncs.com/digoal/opensource_database:pg14_with_exts##### # 进入容器 docker exec -ti pg bash # 连接数据库 psql

ARM版:

# 拉取镜像, 第一次拉取一次即可. 或者需要的时候执行, 将更新到最新镜像版本.  docker pull registry.cn-hangzhou.aliyuncs.com/digoal/opensource_database:pg14_with_exts_arm64  # 启动容器  docker run -d -it -P --cap-add=SYS_PTRACE --cap-add SYS_ADMIN --privileged=true --name pg --shm-size=1g registry.cn-hangzhou.aliyuncs.com/digoal/opensource_database:pg14_with_exts_arm64
##### 如果你想学习备份恢复、修改参数等需要重启数据库实例的case, 换个启动参数, 使用参数--entrypoint将容器根进程换成bash更好. 如下: docker run -d -it -P --cap-add=SYS_PTRACE --cap-add SYS_ADMIN --privileged=true --name pg --shm-size=1g --entrypoint /bin/bash registry.cn-hangzhou.aliyuncs.com/digoal/opensource_database:pg14_with_exts_arm64 ##### 以上启动方式需要进入容器后手工启动数据库实例: su - postgres; pg_ctl start; ##### 将 宿主机的存储位置 映射到 docker容器内 的例子# 宿主机:# mkdir -p ~/docker_volumn/pg # 创建容器时进行映射, 例如: -v ~/docker_volumn/pg:/data 将宿主机 ~/docker_volumn/pg 映射到 容器 /data# 如: # docker run -v ~/docker_volumn/pg:/data -d -it -P --cap-add=SYS_PTRACE --cap-add SYS_ADMIN --privileged=true --name pg --shm-size=1g registry.cn-hangzhou.aliyuncs.com/digoal/opensource_database:pg14_with_exts_arm64 ##### # 进入容器 docker exec -ti pg bash # 连接数据库 psql

小插曲:

高科技上网浏览hub.docker.com无意中发现Docker 提供了pulls统计数据, 现在国外PG流行度已经超过MySQL一个量级了?  

Image

Image

Image