# 系統重啟後 docker 自動運行 [TOC] :::warning `sudo dockerd &` 可跳過管理者權限啟動docker GUI 並在背景執行 ::: nginx container reload ``` $ container run nginx reload ``` ## 設定自動運行 ### 1. docker 使 docker 每次系統重新啟動會自動運行 ``` $ systemctl enable docker.service ``` 確認 docker 設定是否為重啟會自動運行 ``` $ systemctl is-enabled docker ``` ### 2. container 運行 container 時設定:若 docker 重新運行後 container 也會自動運行 ``` $ docker run --restart=always ``` 如 container 運行中則使用 update ``` $ docker update --restart=always <container id> ``` ## 補充 ### `--restart=<action>` * `no` 不重啟容器 * `on-failure` 非正常情況下(非0)退出會重啟容器 * `no-failure:3` 非正常情況下(非0)退出會重啟容器,最多3次 * `always` 無論是否正常關閉都會重啟容器 ### 容器關閉的狀態碼 |狀態碼|說明| |-|-| |0|正常關閉| |125|docker 執行有錯誤| |126|容器啟動後,要執行的預設命令無法使用| |127|容器啟動後,要執行的預設命令不存在| |137|容器收到 SIGKILL 的信號,對應 `kill -9`| |139|容器收到 SIGSEGV 的信號,對應 `kill -11`| |143|容器收到 SIGTERM 的信號,對應 `kill -15`| --- 參考資料: [Linux 重启之后 Docker 服务及容器自动启动](https://zhuanlan.zhihu.com/p/614138886) [Docker容器开机自动启动(在宿主机重启后或者Docker服务重启后)](https://developer.aliyun.com/article/508607) [CentOS 7 Docker 無法連線 Docker daemon?](https://blog.yowko.com/cannot-connect-docker-daemon/)