---
# System prepended metadata

title: '系統重啟後 docker 自動運行 '
tags: [docker, 狀態碼, linux, link]

---

# 系統重啟後 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/)