如何在Ubuntu 18.04上安装和使用Docker
Docker是一种容器化技术,可让我们快速构建,测试和部署应用程序,作为可在几乎任何地方运行的可移植自给自足的容器。
Docker已成为事实上的容器部署标准,对于DevOps工程师及其持续的集成和交付管道而言,它是必不可少的工具。
在本教程中,我们将介绍如何在Ubuntu 18.04计算机上安装Docker并探索基本的Docker概念和命令。
准备工作
在继续本教程之前,请确保我们以具有sudo特权的用户身份登录。
本教程中的所有命令均应以非root用户身份运行。
在Ubuntu上安装Docker
尽管Docker安装包在官方的Ubuntu 18.04存储库中可用,但它不一定总是最新版本。
推荐的方法是从Docker的存储库中安装最新的Docker软件包。
启用Docker仓库
- 首先更新软件包列表并安装必要的依赖关系,以通过HTTPS添加新存储库:
sudo apt updatesudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
- 使用以下“ curl”命令导入存储库的GPG密钥:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add
- 将Docker APT存储库添加到系统中:
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
安装Docker CE
现在已启用Docker存储库,我们可以安装所需的任何Docker版本。
- 要安装最新版本的Docker,请使用以下命令。如果要安装特定的Docker版本,请跳过此步骤并转到下一个版本。
sudo apt updatesudo apt install docker-ce
- 要安装特定版本,请首先在Docker存储库中列出可用版本:
apt list -a docker-ce
该命令在第二列中打印可用的Docker版本。
docker-ce/bionic 5:18.09.7~3-0~ubuntu-bionic amd64 docker-ce/bionic 5:18.09.6~3-0~ubuntu-bionic amd64 docker-ce/bionic 5:18.09.5~3-0~ubuntu-bionic amd64
例如,要安装版本“ 18.09.6”,请输入:
sudo apt install docker-ce=5:18.09.6~3-0~ubuntu-bionic
为防止Docker软件包自动更新,请将其标记为“阻止”:
sudo apt-mark hold docker-ce
安装完成后,Docker服务将自动启动。
我们可以通过键入以下内容进行验证:
sudo systemctl status docker
输出将如下所示:
● docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor p Active: active (running) since Tue 2019-07-02 11:28:40 UTC; 15min ago Docs: https://docs.docker.com Main PID: 11911 (dockerd) Tasks: 10 CGroup: /system.slice/docker.service
在没有sudo的情况下执行docker命令
默认情况下,运行Docker命令需要管理员权限。
要以非root用户身份运行Docker命令而不添加'sudo',我们需要将用户添加到'docker'组。
该组是在Docker CE软件包安装期间创建的。
为此,请运行以下命令:
sudo usermod -aG docker $USER
'$USER'是一个环境变量,用于保存用户名。
注销并重新登录以刷新组成员身份。
要验证Docker是否已成功安装,并且我们可以在不添加'sudo'的情况下运行docker命令,请运行:
docker container run hello-world
该命令将下载测试图像,在容器中运行它,打印“ Hello from Docker”消息并退出。
输出应如下所示:
升级Docker
当发布新的Docker版本时,我们可以使用标准的升级过程来更新软件包:
sudo apt updatesudo apt upgrade
卸载Docker
在卸载Docker之前,请删除所有容器,镜像,卷和网络。
我们可以像使用'apt'安装的任何其他软件包一样卸载Docker:
sudo apt purge docker-cesudo apt autoremove
Docker命令行界面
Docker CLI命令采用以下形式:
docker [option] [subcommand] [arguments]
要列出所有可用命令,请键入不带参数的“ docker”:
docker
如果我们需要有关任何'[subcommand]'的更多帮助,则可以使用'--help'开关,如下所示:
docker [subcommand] --help
Docker镜像
Docker镜像由一系列文件系统层组成,这些文件系统层代表镜像的Dockerfile中的指令,该指令构成了可执行的软件应用程序。
镜像是一个不可变的二进制文件,包括应用程序和所有其他依赖项,例如库,二进制文件和运行该应用程序所需的指令。
我们可以将Docker镜像视为Docker容器的快照。
大多数Docker镜像在Docker Hub上都可用。
Docker Hub是基于云的注册表服务,除其他功能外,还用于将Docker镜像保留在公共或者私有存储库中。
搜索Docker镜像
要从Docker Hub注册表中搜索镜像,请使用'search'子命令。
例如,要搜索Ubuntu镜像,应输入:
docker search ubuntu
输出应如下所示:
如我们所见,搜索将打印一个包含五列的表:'NAME','DESCRIPTION','STARS','OFFICIAL'和'AUTOMATED'。
官方镜像是Docker与上游合作伙伴共同开发的镜像。
Docker Hub上的大多数Docker镜像都带有版本号标记。
如果未指定标签,Docker将拉出最新的标签。
下载Docker镜像
例如,要下载Ubuntu 18.04镜像的最新官方版本,请使用以下“ image pull”命令:
docker image pull ubuntu
根据Internet速度,下载可能需要几秒钟或者几分钟。
如果不指定标签,Docker将提取最新的Ubuntu镜像,在撰写本文时为18.04.
如果要下载Ubuntu的先前发行版,例如Ubuntu 16.04,则需要使用“ docker image pull ubuntu:16.04”。
要列出所有下载的图像,请输入:
docker image ls
输出将如下所示:
删除Docker镜像
如果出于某些原因要删除图像,可以使用“ image rm [image_name]”子命令来完成:
docker image rm ubuntu
Docker容器
图像的实例称为容器。
容器代表单个应用程序,进程或者服务的运行时。
这可能不是最合适的比较,但是如果我们是程序员,则可以将Docker镜像视为类,而将Docker容器视为类的实例。
我们可以使用“ docker container”子命令启动,停止,删除和管理容器。
启动Docker容器
以下命令将基于Ubuntu镜像启动Docker容器。
如果我们在本地没有该图片,则会先下载该图片:
docker container run ubuntu
乍一看,我们似乎什么也没发生。
好吧,那是不对的。
Ubuntu容器启动后会立即停止,因为它没有长时间运行的过程,并且我们未提供任何命令。
容器启动,运行空命令,然后退出。
开关“ -it”允许我们通过命令行与容器进行交互。
要启动交互式容器,请执行以下操作:
docker container run -it ubuntu /bin/bash
[root@719ef9304412 /]#
从上面的输出中可以看到,一旦容器启动,命令提示符就会更改。
这意味着我们现在正在从容器内部进行操作。
列出Docker容器
要列出活动容器,请键入:
docker container ls
如果我们没有任何正在运行的容器,则输出将为空。
要查看活动和非活动容器,请将其传递给-a开关:
docker container ls -a
删除Docker容器
要删除一个或者多个容器,请复制一个或者多个容器ID,然后将其粘贴到“ container rm”子命令之后:
docker container rm c55680af670c