Docker不開機自動啟動

docker 是目前最流行的容器化軟件之一,它可以幫助開發者更加方便地創建和運行應用程序。但有時候,你可能會遇到一個問題:當你啟動了電腦后,docker 就不會自動啟動了。如果你希望 docker 能夠自動啟動,接下來就讓我們來看看如何進行設置。

  1. 先決條件

在進行設置之前,首先需要確認你的 Docker 是否已經安裝了 systemd 和 daemon.json 文件。這兩個文件都是必須的,因為它們將幫助 Docker 在開機時自動啟動。

如果你的系統上沒有安裝它們,可以使用以下命令來進行安裝:

sudo apt-get update sudo apt-get install systemd
  1. 編輯 daemon.json 文件

在啟用 Docker 的系統上,你需要編輯 /etc/docker/daemon.json 文件。如果該文件不存在,則可以使用以下命令來創建它:

sudo nano /etc/docker/daemon.json

然后,將以下代碼添加到文件中:

{     "default-address-pools":     [         {"base":"172.0.0.0/8","size":16},         {"base":"192.168.0.0/16","size":24}     ],     "log-driver": "json-file",     "log-opts": {         "max-size": "10m",         "max-file": "3"     } }

這個代碼片段包含了一些 Docker 配置信息。其中也包含了一個默認的地址池,該池將用于為 Docker 容器分配 IP 地址。你可以根據需要進行修改。

  1. 添加 systemd 文件

接下來,你需要創建一個名為 docker.service 的 systemd 文件,并將其添加到 /etc/systemd/system/ 目錄中。

使用以下命令創建新文件:

sudo nano /etc/systemd/system/docker.service

添加以下代碼到文件中:

[Unit] Description=Docker Application Container Engine Documentation=https://docs.docker.com After=network-online.target sshd.service Wants=network-online.target  [Service] Type=notify ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock ExecReload=/bin/kill -s HUP $MAINPID EnvironmentFile=-/run/flannel/docker Restart=always RestartSec=3 LimitNOFILE=1048576 LimitNPROC=infinity LimitCORE=infinity  [Install] WantedBy=multi-user.target

這個文件將告訴 systemd 如何啟動 Docker,并配置一些選項,如下:

  • Description:服務的名稱
  • Documentation:Docker 官方文檔的鏈接
  • After:服務啟動時需要啟動的其他服務的列表
  • Wants:一些被列出的服務加載完成之后,會延遲一段時間后啟動該服務
  • Type:服務類型
  • ExecStart:服務啟動命令
  • ExecReload:服務重新加載命令
  • EnvironmentFile:環境變量文件加載路徑
  • Restart:重啟服務的方式
  • RestartSec:重啟服務的間隔時間
  • LimitNOFILE:進程可以打開的文件描述符數量上限
  • LimitNPROC:進程可以創建的線程數上限
  • LimitCORE:進程可以使用的最大內存限制
  1. 重新加載 systemd

在將 systemd 文件添加到 /etc/systemd/system/ 目錄后,你需要重新加載 systemd 進程以使配置生效。你可以使用以下命令來重新加載 systemd。

sudo systemctl daemon-reload
  1. 啟用 systemd

下一步是啟用 Docker 服務自動啟動。你可以使用以下命令啟用 systemd。

sudo systemctl enable docker.service

這個命令將會在開機時自動啟動 Docker。

最后

現在,你已經學會如何在系統啟動時自動啟動 Docker 服務。如果你遇到其他的 Docker 問題,你可以參考 Docker 官方文檔或在社區中尋求幫助。

? 版權聲明
THE END
喜歡就支持一下吧
點贊15 分享