Docker Engine 的 Linux 安裝後步驟

這些可選的安裝後過程描述瞭如何配置您的 Linux 主機以更好地與 Docker 配合工作。

以非 root 使用者身份管理 Docker

Docker 守護程序繫結到一個 Unix 套接字,而不是一個 TCP 埠。預設情況下,root 使用者擁有該 Unix 套接字,其他使用者只能使用 sudo 訪問它。Docker 守護程序始終以 root 使用者身份執行。

如果您不想在 docker 命令前加上 sudo,請建立一個名為 docker 的 Unix 組並將使用者新增到其中。當 Docker 守護程序啟動時,它會建立一個可由 docker 組成員訪問的 Unix 套接字。在某些 Linux 發行版中,系統在使用包管理器安裝 Docker Engine 時會自動建立此組。在這種情況下,您無需手動建立該組。

警告

docker 組授予使用者 root 級別的許可權。有關這對您系統安全的影響的詳細資訊,請參閱 Docker 守護程序攻擊面

注意

要在沒有 root 許可權的情況下執行 Docker,請參閱以非 root 使用者身份執行 Docker 守護程序(無根模式)

要建立 docker 組並新增您的使用者

  1. 建立 docker 組。

    $ sudo groupadd docker
    
  2. 將您的使用者新增到 docker 組。

    $ sudo usermod -aG docker $USER
    
  3. 登出並重新登入,以便重新評估您的組成員身份。

    如果您在虛擬機器中執行 Linux,可能需要重新啟動虛擬機器才能使更改生效。

    您還可以執行以下命令以啟用對組的更改

    $ newgrp docker
    
  4. 驗證您可以在沒有 sudo 的情況下執行 docker 命令。

    $ docker run hello-world
    

    此命令會下載一個測試映象並在容器中執行它。當容器執行時,它會列印一條訊息然後退出。

    如果您在將使用者新增到 docker 組之前最初使用 sudo 執行 Docker CLI 命令,您可能會看到以下錯誤

    WARNING: Error loading config file: /home/user/.docker/config.json -
    stat /home/user/.docker/config.json: permission denied

    此錯誤表示 ~/.docker/ 目錄的許可權設定不正確,這是由於之前使用了 sudo 命令所致。

    要解決此問題,請刪除 ~/.docker/ 目錄(它會自動重新建立,但任何自定義設定都會丟失),或者使用以下命令更改其所有權和許可權

    $ sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
    $ sudo chmod g+rwx "$HOME/.docker" -R
    

配置 Docker 在啟動時使用 systemd 啟動

許多現代 Linux 發行版使用 systemd 來管理系統啟動時啟動哪些服務。在 Debian 和 Ubuntu 上,Docker 服務預設在啟動時啟動。要在使用 systemd 的其他 Linux 發行版上自動啟動 Docker 和 containerd,請執行以下命令

$ sudo systemctl enable docker.service
$ sudo systemctl enable containerd.service

要停止此行為,請改用 disable

$ sudo systemctl disable docker.service
$ sudo systemctl disable containerd.service

您可以使用 systemd 單元檔案在啟動時配置 Docker 服務,例如新增 HTTP 代理,為 Docker 執行時檔案設定不同的目錄或分割槽,或其他自定義設定。有關示例,請參閱配置守護程序以使用代理

配置預設日誌驅動程式

Docker 提供 日誌驅動程式 用於收集和檢視來自主機上所有執行容器的日誌資料。預設的日誌驅動程式 json-file 將日誌資料寫入主機檔案系統上的 JSON 格式檔案。隨著時間的推移,這些日誌檔案的大小會擴大,可能導致磁碟資源耗盡。

為避免因日誌資料過度使用磁碟而出現問題,請考慮以下選項之一

後續步驟

  • 檢視 Docker 研討會,學習如何構建映象並將其作為容器化應用程式執行。