Docker 是開發人員和系統管理員用來建立、運行和共享應用程式的最流行的開源平台。由於容器具有靈活性、輕量級、可攜性、鬆散耦合、可擴展性和更安全性,容器化(使用容器部署應用程式)變得流行。
本文是初學者學習如何在 Ubuntu 20.04 Linux 系統上安裝和使用 Docker 的好起點,並附有一些基本命令。對於這個指南,我們將安裝 Docker 社區版(CE)。
先決條件:
在 Ubuntu 20.04 上安裝 Docker
為了使用最新版本的 Docker,我們將從官方 Docker 存儲庫安裝它。因此,首先要將官方 Docker 存儲庫的 GPG 金鑰添加到系統中,然後使用以下命令將存儲庫配置添加到 APT 源。
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - $ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
現在使用以下命令更新 APT 套件緩存,以將新的 Docker 套件包含到系統中。
$ sudo apt update
接下來,按照以下顯示的方式安裝 Docker 套件。
$ sudo apt install docker-ce

在安裝 Docker 套件的過程中,套件安裝程序會觸發 systemd(系統和服務管理器)自動啟動和啟用 docker 服務。使用以下命令確認 docker 服務是否處於活動狀態,並已啟用自動在系統啟動時啟動。同時檢查其狀態:
$ sudo systemctl is-active docker $ sudo systemctl is-enabled docker $ sudo systemctl status docker

有幾個其他 systemctl 命令 來管理和控制 Docker 服務,包括以下內容:
$ sudo systemctl stop docker #stop the docker service $ sudo systemctl start docker #start the docker service $ sudo systemctl restart docker #restart the docker service
要檢查您系統上安裝的 Docker CE 的版本,請執行以下命令:
$ docker version

您可以通過執行 docker 命令而不帶任何選項或參數來查看可用的 Docker 使用命令:
$ docker

使用 sudo 命令將 Docker 作為非 root 用戶管理:
默認情況下,Docker 守護程序繫結到一個 UNIX 套接字(而不是 TCP 端口),該套接字由用戶 root 擁有。因此,Docker 守護程序始終以 root 用戶身份運行,要運行 docker 命令,您需要使用 sudo。
此外,在 Docker 套件安裝期間,會創建一個名為 docker
的組。當 Docker 守護程序啟動時,它會創建一個 UNIX 套接字,該套接字可由 docker 組的成員訪問(該組授予與 root 用戶相等的特權)。
要在無需 sudo 的情況下運行 docker 命令,請將所有應訪問 docker 的非 root 用戶添加到 docker 組中,如下所示。在此示例中,該命令將當前登錄的用戶 ($USER)
或用戶名添加到 docker 組:
$ sudo usermod -aG docker $USER OR $ sudo usermod -aG docker username
要激活組的更改,請運行以下命令:
$ newgrp docker $ groups

確認您是否可以在不使用sudo的情況下運行docker命令。以下命令下載一個測試映像並在容器中運行它。一旦容器運行,它將打印一條信息並退出。這也是檢查您的安裝是否正常工作的另一種方法。
$ docker run hello-world

使用Docker映像
A Docker image is a read-only template file with instructions for creating a Docker container. You can either create your custom images or you can only use those created by others and published in the Docker Hub, the world’s largest library and community for container images.
您可以使用以下命令在Docker Hub中搜索centos
映像:
$ docker search centos

要在本地下載映像,請使用pull命令。此示例顯示了如何下載官方centos映像。
$ docker pull centos

下載完成後,您可以列出本地系統上可用的映像。
$ docker images

如果您不再需要一個映像,可以從系統中刪除它。
$ docker rmi centos OR $ docker rmi centos:latest #where latest is the tag
運行和管理Docker容器
A Docker container is a process that runs natively on Linux and shares the kernel of the host machine with other containers. Concerning a Docker image, a container is just a running image.
要基於您的新centos
映像啟動容器,請運行以下命令,其中“centos”
是本地映像名,“cat /etc/centos-release”是在容器中運行的命令:
$ docker run centos cat /etc/centos-release

A container runs a discrete process that is isolated in that it has its own: file system, networking, and isolated process tree separate from the host. Note that you can manipulate a container using the container’s ID, ID-prefix, or name as shown below. The above container process exits after the command runs.
要列出Docker容器,請使用以下docker ps命令。使用-l
標誌顯示所有狀態中的最新創建容器:
$ docker ps OR $ docker ps -l

要顯示所有容器,包括已退出的容器,請使用-a
標誌。
$ docker ps -a

您還可以在容器退出後使用其容器ID啟動容器。例如,在上一個命令中,我們的容器ID是94c35e616b91。我們可以按如下所示啟動容器(請注意,它將運行命令並退出):
$ docker start 94c35e616b91

使用其ID停止正在运行的容器,请使用如下的stop命令。
$ docker stop 94c35e616b91
Docker也允许您在运行容器时使用--name
选项为其指定名称。
$ docker run --name my_test centos cat /etc/centos-release $ docker ps -l

现在您可以使用容器名称来管理(启动、停止、统计、移除等)容器:
$ docker stop my_test $ docker start my_test $ docker stats my_test $ docker rm my_test
在Docker容器中运行交互式会话
要在容器中启动交互式shell会话以使您能够在容器内运行命令,请运行以下命令:
$ docker run --name my_test -it centos

在上述命令中,-it
开关告诉Docker分配一个伪TTY连接到容器的标准输入,从而在容器中创建一个交互式bash shell。
您可以通过发出如下的exit命令来退出。
# exit
如果您不想退出,您可以从容器中分离并使其保持运行状态。要执行此操作,请使用CTRL+p
然后CTRL+q
键序列。

您可以使用attach命令重新连接到容器,该命令将本地标准输入、输出和错误流附加到正在运行的容器:
$ docker attach my_test
此外,您可以使用-d
标志以分离模式启动容器。然后使用attach命令将您的终端的标准输入、输出和错误流附加到正在运行的容器:
$ docker run --name my_test -d -it centos $ docker attach my_test

最后,您可以通过运行以下命令从主机会话中停止正在运行的容器:
$ docker kill my_test
在此指南中,我們涵蓋了如何在 Ubuntu 20.04 Linux 中安裝和使用 Docker CE。如果您有任何疑問,請使用下方的反饋表單與我們聯繫。