[英]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.