Docker Engine 的 Linux 安裝後步驟
這些選用的安裝後程序說明如何設定您的 Linux 主機,以便更好地與 Docker 搭配使用。
以非 root 使用者身分管理 Docker
Docker daemon 綁定到 Unix 通訊端,而不是 TCP 連接埠。 根據預設,擁有 Unix 通訊端的是 root
使用者,其他使用者只能使用 sudo
存取它。 Docker daemon 一律以 root
使用者身分執行。
如果您不想在 docker
命令前面加上 sudo
,請建立一個名為 docker
的 Unix 群組,並將使用者新增至其中。 Docker daemon 啟動時,它會建立一個 docker
群組成員可以存取的 Unix 通訊端。 在某些 Linux 發行版本中,系統會在使用套件管理程式安裝 Docker Engine 時自動建立此群組。 在這種情況下,您不需要手動建立群組。
警告
docker
群組會授予使用者 root 級權限。 如需這如何影響系統安全性的詳細資訊,請參閱 Docker Daemon 攻擊面。
備註
如需在沒有 root 權限的情況下執行 Docker,請參閱 以非 root 使用者身分執行 Docker daemon (Rootless 模式)。
若要建立 docker
群組並新增您的使用者
建立
docker
群組。$ sudo groupadd docker
將您的使用者新增至
docker
群組。$ sudo usermod -aG docker $USER
登出並重新登入,以便重新評估您的群組成員資格。
如果您在虛擬機器中執行 Linux,則可能需要重新啟動虛擬機器才能使變更生效。
您也可以執行下列命令來啟用對群組的變更
$ newgrp docker
確認您可以在沒有
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
使用 systemd 設定 Docker 在開機時啟動
許多現代 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 執行階段檔案設定不同的目錄或分割區,或其他自訂。 如需範例,請參閱 設定 daemon 以使用代理伺服器。
設定預設記錄驅動程式
Docker 提供 記錄驅動程式,用於收集和檢視主機上執行的所有容器的記錄資料。 預設記錄驅動程式 json-file
會將記錄資料寫入主機檔案系統上的 JSON 格式檔案。 隨著時間的推移,這些記錄檔的大小會擴展,導致磁碟資源可能耗盡。
為避免磁碟記錄資料過度使用的問題,請考慮下列其中一個選項
- 設定
json-file
記錄驅動程式以開啟 記錄輪替。 - 使用 替代記錄驅動程式,例如預設執行記錄輪替的 "local" 記錄驅動程式。
- 使用將記錄傳送至遠端記錄聚合器的記錄驅動程式。
後續步驟
- 查看 Docker 工作坊 以瞭解如何建置映像檔並將其作為容器化應用程式執行。