首頁 > 運維 > Docker > Docker不開機自動啟動

Docker不開機自動啟動

PHPz
發布: 2023-05-13 13:05:07
原創
764 人瀏覽過

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 官方文件或在社群中尋求協助。

以上是Docker不開機自動啟動的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板