Docker是最流行的开源平台,供开发人员和系统管理员使用容器构建、运行和共享应用程序。容器化(使用容器来部署应用程序)变得越来越流行,因为容器灵活、轻量、可移植、松散耦合、可扩展且更安全。
在本文中,小编简单介绍如何通过一些基本命令在Ubuntu 22.04(包括Ubuntu 20.04) Linux系统上安装和使用Docker。对于本文教程,这里将安装Docker 社区版( CE )。
在Ubuntu 22.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-c
在Docker软件包安装过程中,软件包安装程序会触发systemd(系统和服务管理器)自动启动并启用docker服务。使用以下命令确认docker服务处于活动状态并启用在系统启动时自动启动。另外,检查其状态:
$ sudo systemctl is-active docker $ sudo systemctl is-enabled docker $ sudo systemctl status docker
此外,还有其它几个systemctl命令可以管理和控制docker服务,其中包括:
$ sudo systemctl stop docker #停止docker服务 $ sudo systemctl start docker #启动docker服务 $ sudo systemctl restart docker #重启docker服务
要检查系统上安装的Docker CE版本,请运行以下命令:
$ docker version
当然,你可以通过运行不带任何选项或参数的docker命令来查看可用的docker使用命令:
$ docker
使用sudo命令以非root用户身份管理Docker
默认情况下,Docker守护进程绑定到root用户拥有的UNIX套接字(而不是TCP端口)。因此,Docker守护进程始终以root用户身份运行,并且要运行docker命令,所以需要使用sudo。此外,在Docker包安装过程中,会创建一个名为docker
的组。当Docker守护进程启动时,它会创建一个可供docker组成员访问的UNIX套接字(授予与root用户同等的权限)。
要在不使用sudo的情况下运行docker命令,请在docker组中添加所有应该访问docker的非root用户,命令如下。在此示例中,该命令将当前登录的用户($USER)
或用户名添加到docker组:
$ sudo usermod -aG docker $USER 或者 $ sudo usermod -aG docker username
要激活对组的更改,请运行以下命令:
$ newgrp docker $ groups
接下来,验证是否可以在没有sudo的情况下运行docker命令。以下命令下载测试映像并在容器中运行它。容器运行后,它会打印一条信息性消息并退出。这也是检查你的安装是否正常工作的另一种方法。
$ docker run hello-world
使用Docker镜像
Docker镜像是一个只读模板文件,其中包含创建Docker容器的说明。你可以创建自定义镜像,也可以仅使用其他人创建并在Docker Hub(世界上最大的容器镜像库和社区)中发布的镜像。可以使用以下命令在Docker Hub中搜索centos
镜像:
$ docker search centos
要在本地下载镜像,请使用pull 命令。本例展示如何下载centos官方镜像。
$ docker pull centos
下载完成后,可以列出本地系统上的可用镜像:
$ docker images
如果不再需要某个映像,可以将其从系统中删除:
$ docker rmi centos 或者 $ docker rmi centos:latest #where latest is the tag
运行和管理Docker容器
Docker容器是一个在Linux上本地运行的进程,与其它容器共享主机的内核。对于Docker镜像来说,容器只是一个正在运行的镜像。要基于新centos
镜像启动容器,请运行以下命令,其中“centos”
是本地映像名称,“ cat /etc/centos-release ”是在容器中运行的命令:
$ docker run centos cat /etc/centos-release
容器运行一个独立的进程,该进程是隔离的,因为它有自己的:文件系统、网络和与主机分离的隔离进程树。请注意,你可以使用容器的ID 、 ID前缀或名称来操作容器,如下所示。上述容器进程在命令运行后退出。
另外,要列出Docker容器,请使用docker ps命令,如下所示。使用-l
标志显示所有状态下最新创建的容器:
$ docker ps 或者 $ 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分配一个连接到容器的stdin的伪TTY(PTY),从而在容器中创建一个交互式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 22.04 Linux中安装和使用Docker CE的简单步骤,相对来说不是很复杂。如果有需要在Ubuntu系统中安装Docker,那么可以参考上述图文教程进行操作设置。