簡體   English   中英

強制重啟 postgresql docker

[英]force restart postgresql docker

我有一個腳本試圖重新啟動 postgresql docker 容器:

DOCKER_CONTAINER_NAME="timescaledb"
docker restart -t 1 $DOCKER_CONTAINER_NAME
timeout 9000000s bash -c "until docker exec $DOCKER_CONTAINER_NAME pg_isready ; do sleep 1 ; done"

但是,這一行(帶有任何 -t 數字)

docker restart -t 1 $DOCKER_CONTAINER_NAME

關閉 postgresql 需要花費大量時間。通常我必須將 go 轉到屏幕容器 postgresql(我使用屏幕來管理我的編排)。 然后按 Ctrl-C 強制關閉並輸入

docker run -ti --user 1000:1000  -p 5432:5432 --name timescaledb  --volume=/home/ubuntu/pgdata3:/home/postgresql/pgdata --rm -e POSTGRES_PASSWORD=dashdhwqehqwhhkshajdkh -e PGDATA=/home/postgresql/pgdata timescale/timescaledb-ha:pg13-latest;

是否可以在我不進入“屏幕”並按Ctrl-C並手動重啟的情況下完成強制重啟的過程?

相關問題貼在這里: postgresql docker ctrl C 好像比docker kill好

我想找到一種方法來模仿 postgresql 的 Ctrl-C 關閉。

您可以使用docker-compose up來啟動您的 docker 並添加restart: always在 docker 因任何原因關閉時重新啟動它。

docker-compose.yml 示例

services:
   db:
       image: postgres:14
       restart: always

編輯。 回復您的評論,也許您可以准備一個 bash 腳本,強制 docker 每 x 分鍾重新啟動一次:

while true
do
   docker restart posgresql
   sleep 15m
done

或者,可能更好,您可以在 crontab 中編寫任務:

crontab -e

15 * * * * docker restart posgresql

我假設你正在使用 Linux

好的,這似乎是滿足我目的的命令序列。 謝謝大家!

docker stop -t 120 $DOCKER_CONTAINER_NAME
docker kill $DOCKER_CONTAINER_NAME
screen -S i2 -X stuff 'docker run -ti --user 1000:1000  -p 5432:5432 --name timescaledb  --volume=/home/ubuntu/pgdata3:/home/postgresql/pgdata --rm -e POSTGRES_PASSWORD=sahisahikqhwwkejkqwjehjhwqjh -e PGDATA=/home/postgresql/pgdata timescale/timescaledb-ha:pg13-latest;\n'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM