如何在 Ubuntu 20.04 上安裝和使用 Docker

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
Install Docker on Ubuntu

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

$ sudo systemctl is-active docker
$ sudo systemctl is-enabled docker
$ sudo systemctl status docker
Check Docker Status

有幾個其他 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
Check Docker Version

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

 
$ docker
List of Docker Commands

使用 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
Add User to Docker Group

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

$ docker run hello-world
Verify Docker Installation

使用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 
Search Docker Images

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

$ docker pull centos
Download CentOS Docker Image

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

$ docker images
List 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
Run Commands in Docker Container

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
List Docker Containers

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

$ docker ps -a
Show All Docker Containers

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

$ docker start 94c35e616b91
Start a Docker Container Using ID

使用其ID停止正在运行的容器,请使用如下的stop命令

$ docker stop 94c35e616b91

Docker也允许您在运行容器时使用--name选项为其指定名称。

$ docker run --name my_test centos cat /etc/centos-release
$ docker ps -l
Assign a Name to Docker Container

现在您可以使用容器名称来管理(启动、停止、统计、移除等)容器:

$ 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
Start Interactive Shell into a Container

在上述命令中,-it开关告诉Docker分配一个伪TTY连接到容器的标准输入,从而在容器中创建一个交互式bash shell。

您可以通过发出如下的exit命令来退出。

# exit

如果您不想退出,您可以从容器中分离并使其保持运行状态。要执行此操作,请使用CTRL+p然后CTRL+q键序列。

Detach Docker from a Running Session

您可以使用attach命令重新连接到容器,该命令将本地标准输入、输出和错误流附加到正在运行的容器:

$ docker attach my_test

此外,您可以使用-d标志以分离模式启动容器。然后使用attach命令将您的终端的标准输入、输出和错误流附加到正在运行的容器:

$ docker run --name my_test -d -it centos
$ docker attach my_test
Start Docker Container in Detached Mode

最后,您可以通过运行以下命令从主机会话中停止正在运行的容器:

$ docker kill my_test

在此指南中,我們涵蓋了如何在 Ubuntu 20.04 Linux 中安裝和使用 Docker CE。如果您有任何疑問,請使用下方的反饋表單與我們聯繫。

Source:
https://www.tecmint.com/install-docker-on-ubuntu/