所以,我需要具有以下内容的docker映像:我的程序使用postgresql,postgresql及其中的一些数据 我使用这篇文章:https://medium.com/@sharmaNK/build-postgres-docker-image-with-data-included-489bd58a1f9e
我的步骤:
docker-compose build
//创建ps_image_with_data docker run --name ps-export -p 5432:5432 -i postgres
docker exec -it my_container_with_data_id bash
mkdir /postgres
cp -r /var/lib/postgresql/data/* /postgres
docker commit ps-export ps_image_with_data
docker run --env PGDATA=postgres -p 5432:5432 -i ps_image_with_data
// //我已经尝试了ps_image_with_data和在步骤7中创建的新图像经过8个步骤,我得到了:
2018-11-08 12:44:52.549 UTC [1]日志:侦听IPv4地址 “ 0.0.0.0”,端口5432 2018-11-08 12:44:52.549 UTC [1]日志:正在监听 在IPv6地址“ ::”上,端口5432 2018-11-08 12:44:52.615 UTC [1]日志: 在Unix套接字上监听“ /var/run/postgresql/.s.PGSQL.5432” 2018-11-08 12:44:52.750 UTC [22]日志:数据库系统为 中断最后知道于2018-11-08 11:56:27 UTC 2018-11-08 12:45:25.042 UTC [22]日志:无法删除缓存文件 “ global / pg_internal.init”:权限被拒绝2018-11-08 12:45:25.042 UTC [22]日志:无法删除缓存文件 “ base / 13067 / pg_internal.init”:权限被拒绝2018-11-08 12:45:25.042 UTC [22]日志:数据库系统未正确关闭 下;自动恢复进行中2018-11-08 12:45:25.127 UTC [22] 日志:重做开始于0 / 166CF68 2018-11-08 12:45:25.127 UTC [22]日志: 无效的记录长度为0 / 166D048:想要24,得到0 2018-11-08 12:45:25.127 UTC [22]日志:重做于0 / 166D010 2018-11-08 12:45:25.259 UTC [22] PANIC:无法重命名文件 “ pg_logical / replorigin_checkpoint.tmp”到 “ pg_logical / replorigin_checkpoint”:权限被拒绝2018-11-08 12:45:25.357 UTC [1]日志:启动进程(PID 22)已终止 信号6:已中止2018-11-08 12:45:25.358 UTC [1]日志:正在中止 由于启动过程失败而启动2018-11-08 12:45:25.359 UTC [1] 日志:数据库系统已关闭
有人可以帮我解决吗?
答案 0 :(得分:2)
怎么样
docker run --name ps-export -p 5432:5432 -i postgres
使用dbeaver连接到5432 db;创建表;在表中放一些行
对主机进行转储( _proxies.ForEach(certainaction, timeOut);
)
在psql服务器下的data.sql
中添加
`
docker-compose.yml
volumes:
- ./data.sql:/docker-entrypoint-initdb.d/init.sql
如果要在映像中包括docker-compose up
,而不是第4步,请将其复制到dockerfile中的data.sql
。