如何在 Debian 9 上安裝和使用 Docker
Docker 是一個容器化平台,允許您快速構建,測試和部署應用程序,作為便攜式,自給自足的容器,幾乎可以在任何地方運行。
Docker 是容器技術的事實上的標准,它是 DevOps 工程師及其持續集成和交付管道的必備工具。
在本教程中,我們將指導您完成在 Debian 9 機器上安裝 Docker 的過程,並探索基本的 Docker 概念和命令。
先決條件
在繼續本教程之前,請確保以具有 sudo 權限的用戶身份登錄。本教程中的所有命令都應以非 root 用戶身份運行。
在 Debian 上安裝 Docker
以下步驟描述了如何從 Docker 的存儲庫安裝最新的穩定版本的過程。
-
將已安裝的軟件包更新到最新版本:
sudo apt update sudo apt upgrade
- 安裝通過 HTTPS 添加新存儲庫所需的依賴項:
sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg2
-
使用以下 curl 命令導入存儲庫的 GPG 密鑰:
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
鍵入以下內容,將 Docker APT 存儲庫添加到系統的軟件存儲庫列表中:
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
$(lsb_release -cs)
將返回 Debian 發行版的名稱,在本例中,它返回stretch
。 -
現在已啟用 Docker 存儲庫,更新
apt
軟件包列表並安裝最新版本的 Docker CE (Community Edition):sudo apt updatesudo apt install docker-ce
- 安裝完成后, Docker 服務將自動啟動。您可以輸入以下命令進行驗證:
sudo systemctl status docker
● docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2018-07-27 17:02:07 UTC; 1min 14s ago Docs: https://docs.docker.com Main PID: 16929 (dockerd) CGroup: /system.slice/docker.service
- 在撰寫本文時, Debian 9 的當前版本的 Docker 是
18.06.0-ce
。查看 Docker 版本:
docker -v
Docker version 18.06.0-ce, build 0ffa825
在沒有 sudo 的情況下執行 Docker 命令
默認情況下,只有具有管理員權限的用戶才能執行 Docker 命令。
如果您希望以非 root 用戶身份運行 Docker 命令而不
sudo
需要預先添加,則需要將用戶添加到安裝 Docker CE 軟件包期間創建的 docker 組。您可以輸入以下命令:sudo usermod -aG docker $USER
注銷並重新登錄,以便刷新組成員身份。
要驗證您是否可以在不添加 sudo
前綴情況下運行 docker 命令,請運行以下命令(它將下載測試鏡像),在容器中運行它,打印 “Hello from Docker” 消息並退出:
docker container run hello-world
輸出應如下所示:
Docker 命令行界面
現在我們已經安裝了 Docker ,讓我們來看看 docker CLI 的基本語法:
docker [option] [subcommand] [arguments]
如果要列出所有可用的命令,請不帶參數運行 docker
:
docker
如果您需要關於 [subcommand]
的更多幫助信息,可以使用如下所示的 --help
開關:
docker [subcommand] --help
Docker 鏡像
Docker 鏡像由一系列文件系統層組成,這些文件系統層表現為鏡像的 Dockerfile 中的指令,構成可執行軟件應用程序。鏡像是一個不可變的二進制文件,包括應用程序和運行應用程序所需的所有其他依賴項,如庫,二進制文件和指令。
您可以將 Docker 鏡像視為 Docker 容器的快照。
Docker Hub 上提供了大多數 Docker 鏡像。
Docker Hub 是基於雲的注冊服務,用於將 Docker 鏡像保存在公共或私有存儲庫中。
搜索 Docker 鏡像
要從 Docker Hub 注冊表中搜索鏡像,請使用 search
子命令。
例如,要搜索 Debian 鏡像,您可以鍵入:
docker search debian
輸出應如下所示:
正如你可以看到搜索結果打印的表格有 5 列,NAME
,DESCRIPTION
,STARS
,OFFICIAL
和AUTOMATED
。
官方鏡像是 Docker 與上游合作伙伴共同開發的鏡像。
Docker Hub 上的大多數 Docker 鏡像都標有版本號。如果未指定任何標記, Docker 將提取最新鏡像。
下載 Docker Image
如果我們想要下載 Debian 鏡像的官方版本,我們可以使用 image pull
子命令來完成:
docker image pull debian
根據您的 Internet 速度,下載可能需要幾秒鍾或幾分鍾。
由於我們沒有指定標簽,因此 docker 將提取最新的 Debian 9.5 鏡像。如果你想拉取一些以前的 Debian 版本,比如說 Debian 8, 你需要使用 docker image pull debian:8
下載鏡像后,我們可以通過鍵入以下內容列出鏡像:
docker image ls
輸出看起來像這樣:
刪除 Docker 鏡像
如果由於某種原因您要刪除鏡像,可以使用 image rm [image_name]
子命令執行此操作:
docker image rm debian
Docker 容器
鏡像的實例稱為容器。容器表示單個應用程序,進程或服務的運行時。
舉一個可能不是最合適的類比:如果您是程序員,您可以將 Docker 鏡像視為類,將 Docker 容器視為類的一個實例。
我們可以使用 docker container
子命令啟動,停止,刪除和管理容器。
啟動 Docker 容器
以下命令將基於 Debian 鏡像啟動 Docker 容器。如果您沒有本地鏡像,將首先下載它:
docker container run debian
乍一看,在你看來,根本沒有任何事情發生。嗯,那不是真的。 Debian 容器在啟動后立即停止,因為它沒有長時間運行的進程,我們沒有提供任何命令,因此容器啟動,運行空命令然后退出。
選項 -it
允許我們通過命令行與容器進行交互。要啟動一個可交互的容器:
docker container run -it debian /bin/bash
root@ee86c8c81b3b:/#
正如您在容器啟動時從上面的輸出中看到的那樣,命令提示符已更改,這意味着您現在正在從容器內部工作:
列出 Docker 容器
要列出活動容器,請鍵入:
docker container ls
如果您沒有任何正在運行的容器,則輸出將為空。
要查看活動和非活動容器,請使用選項 -a
:
docker container ls -a
刪除 Docker 容器
要刪除一個或多個容器,只需復制容器 ID (或 或多個 ID)並將其粘貼到 container rm
子命令之后:
docker container rm c55680af670c