一、前言
在开发程序的时候,发现postgresql数据库的时区和北京时间差了8个小时,原因是postgresql使用的是默认的Etc/UTC
时区。因此需要改掉,改成PRC
,因为装在docker容器中,需要在docker中操作。
二、操作docker容器
1、查看当前所有的容器
docker ps -a
如果权限不够就在前面加上sudo
。
2、找到docker容器ID
根据第一步,找到postgresql的容器idCONTAINER ID
,比方是a3a3a3a3
3、拷贝postgresql.conf文件到服务器某个目录
1 | sudo docker cp a3a3a3a3:/var/lib/postgresql/data/postgresql.conf /apps/omp/ |
拷贝到/apps/omp/
目录下。
4、编辑postgresql.conf文件
sudo vi postgresql.conf
在命令模式下查找timezone关键字,/timezone
,会定位到字符串的位置,想查找下一个,按”n”。
输入 i 进入编辑模式,开始编辑文本。
将timezone = 'Etc/UTC'
修改成timezone = 'PRC'
按esc,再查询下一个timeout,都改成PRC。
最后保存并退出,:wq
5、复制修改后的文件到容器
sudo docker cp /apps/omp/postgresql.conf a3a3a3a3:/var/lib/postgresql/data/
这个命令会直接覆盖原来的文件。
6、重启容器
sudo docker restart a3a3a3a3
至此,修改已全部完成。