拉取postgresql 18.0 docker镜像并运行容器

postgresql 18.0今天发布了,在Linux上用容器来体验比较方便。

1.拉取镜像

bash 复制代码
docker pull docker.1ms.run/postgres:18
Trying to pull docker.1ms.run/postgres:18...
Getting image source signatures
Copying blob 1d5017cf452d done
Copying blob 8551209c5a1e done
Copying blob ce1261c6d567 done
Copying blob 180db792316f done
Copying blob 5773151508cd done
Copying blob 28b206cbbc14 done
Copying blob e1b18b5359f0 done
Copying blob 8d0a13cb166d done
Copying blob 30b4b10fcf1d done
Copying blob 168b3ade331e done
Copying blob 6458b7f41c65 done
Copying blob 0a51ed68fa52 done
Copying blob ef07360e404d done
Copying blob 8a9c24e23f88 done
Copying config b5a5f7a2b9 done
Writing manifest to image destination
Storing signatures
b5a5f7a2b9a2c002c1827ae45e0b136b393c74399d38272322e5da69feb8766d

2.运行容器

用以往运行其他容器的方法来运行postgresql容器报错, 查看错误日志并把错误容器删除

bash 复制代码
root@DESKTOP-59T6U68:/mnt/c/Users/lt# docker run -it -d -v /mnt/c/d:/par --net=host --name pg18 docker.1ms.run/postgres:18
e1b81df353dbf810a75ba76b99a7486aec07eab3021368605b01c6e54b2ef6ff
root@DESKTOP-59T6U68:/mnt/c/Users/lt# docker exec -it pg18 bash
Error: can only create exec sessions on running containers: container state improper
root@DESKTOP-59T6U68:/mnt/c/Users/lt# docker logs --tail 10 pg18
Error: Database is uninitialized and superuser password is not specified.
       You must specify POSTGRES_PASSWORD to a non-empty value for the
       superuser. For example, "-e POSTGRES_PASSWORD=password" on "docker run".

       You may also use "POSTGRES_HOST_AUTH_METHOD=trust" to allow all
       connections without a password. This is *not* recommended.

       See PostgreSQL documentation about "trust":
       https://www.postgresql.org/docs/current/auth-trust.html
root@DESKTOP-59T6U68:/mnt/c/Users/lt# docker container rm pg18
e1b81df353dbf810a75ba76b99a7486aec07eab3021368605b01c6e54b2ef6ff

网上看来的命令行,自己增加一些选项,还是报错

bash 复制代码
docker run -d \
--name pg18 \
-p 5432:5432 \
-e POSTGRES_PASSWORD=123456 \
-e POSTGRES_USER=postgres \
-e POSTGRES_DB=testdb \
-v /mnt/c/d:/par \
-v ~/postgresql/data:/var/lib/postgresql/data \
 --net=host \
docker.1ms.run/postgres:18
Port mappings have been discarded as one of the Host, Container, Pod, and None network modes are in use
Error: statfs /root/postgresql/data: no such file or directory

先建立-v选项中指定的宿主机目录,并将--net=host选项去掉,可以了

bash 复制代码
mkdir -p /root/postgresql/data
docker run -d \
--name pg18 \
-p 5432:5432 \
-e POSTGRES_PASSWORD=123456 \
-e POSTGRES_USER=postgres \
-e POSTGRES_DB=testdb \
-v /mnt/c/d:/par \
-v ~/postgresql/data:/var/lib/postgresql/data \
docker.1ms.run/postgres:18
fc33d555159907bc8a922bd3cd377dd4882ca8a3faf976785e9cde2ebe37c7e3

docker exec -it pg18 bash
root@fc33d5551599:/# psql
psql: error: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: FATAL:  role "root" does not exist
root@fc33d5551599:/# su - postgres
postgres@fc33d5551599:~$ psql
psql (18.0 (Debian 18.0-1.pgdg13+3))
Type "help" for help.

postgres=#

也可以在宿主机上用psql登录容器中的数据库, 注意要指定-h选项

bash 复制代码
psql -U postgres -d testdb
psql: error: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: No such file or directory
        Is the server running locally and accepting connections on that socket?

psql -U postgres -d testdb -h localhost
Password for user postgres:
psql (14.19 (Ubuntu 14.19-0ubuntu0.22.04.1), server 18.0 (Debian 18.0-1.pgdg13+3))
WARNING: psql major version 14, server major version 18.
         Some psql features might not work.
Type "help" for help.
testdb=#
相关推荐
qq_192779872 小时前
高级爬虫技巧:处理JavaScript渲染(Selenium)
jvm·数据库·python
u0109272712 小时前
使用Plotly创建交互式图表
jvm·数据库·python
爱学习的阿磊2 小时前
Python GUI开发:Tkinter入门教程
jvm·数据库·python
tudficdew3 小时前
实战:用Python分析某电商销售数据
jvm·数据库·python
sjjhd6523 小时前
Python日志记录(Logging)最佳实践
jvm·数据库·python
Configure-Handler3 小时前
buildroot System configuration
java·服务器·数据库
2301_821369614 小时前
用Python生成艺术:分形与算法绘图
jvm·数据库·python
电商API_180079052474 小时前
第三方淘宝商品详情 API 全维度调用指南:从技术对接到生产落地
java·大数据·前端·数据库·人工智能·网络爬虫
2401_832131955 小时前
Python单元测试(unittest)实战指南
jvm·数据库·python
打工的小王5 小时前
redis(四)搭建哨兵模式:一主二从三哨兵
数据库·redis·缓存