Docker安装教程+阿里云镜像加速器
目录:
Docker是一种容器化技术,可让您快速构建,测试和部署应用程序,作为可在几乎任何地方运行的可移植,自给自足的容器。
在本教程中,我们将介绍如何在CentOS 7上安装Docker CE,并探索基本的Docker概念和命令。
先决条件
在继续本教程之前,请确保满足以下先决条件:
- CentOS 7服务器您以具有sudo特权的非root用户身份登录。 您可以查看本指南,了解如何创建新的sudo用户。
在CentOS上安装Docker
尽管Docker软件包可在CentOS 7官方存储库中找到,但它不一定总是最新版本。 推荐的方法是从Docker的存储库中安装Docker。
要在CentOS 7服务器上安装Docker,请遵循以下步骤:
-
首先更新系统软件包并安装所需的依赖项:
sudo yum update
sudo yum install yum-utils device-mapper-persistent-data lvm2
接下来,运行以下命令,它将Docker稳定存储库添加到您的系统中:
sudo yum-config-manager --add-repo
既然已经启用了Docker存储库,请输入以下命令使用yum安装最新版本的Docker CE(Community Edition)。
sudo yum install docker-ce
一旦安装了Docker软件包,请启动Docker守护程序并使其能够在引导时自动启动:
sudo systemctl start docker
sudo systemctl enable docker
要验证Docker服务正在运行,请输入:
sudo systemctl status docker
输出应如下所示:
● docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled) Active: active (running) since Wed 2018-10-31 08:51:20 UTC; 7s ago Docs: https://docs.docker.com Main PID: 2492 (dockerd) CGroup: /system.slice/docker.service ├─2492 /usr/bin/dockerd └─2498 docker-containerd --config /var/run/docker/containerd/containerd.toml
在撰写本文时,当前的Docker稳定版本为
18.06.1
,以显示Docker版本类型:docker -v
Docker version 18.06.1-ce, build e68fc7a
不使用Sudo执行Docker命令
默认情况下,Docker需要管理员权限。 如果要以非root用户身份运行Docker命令而不添加
sudo
前缀,则需要将用户添加到在Docker CE软件包安装期间创建的docker组中。 您可以通过键入以下内容进行操作:
sudo usermod -aG docker $USER
$USER
是一个环境变量,用于保存您的用户名。
注销并重新登录,以便刷新组成员身份。
要验证Docker是否已成功安装并且您可以在不使用sudo的情况下运行docker命令,请发出以下命令,该命令将下载测试映像,在容器中运行它,打印“ Hello from Docker”消息并退出:
docker container run hello-world
输出应如下所示:
Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world 9bb5a5d4561a: Pull complete Digest: sha256:f5233545e43561214ca4891fd1157e1c3c563316ed8e237750d59bde73361e77 Status: Downloaded newer image for hello-world:latest Hello from Docker! This message shows that your installation appears to be working correctly.
Docker命令行界面
既然我们已经可以正常安装Docker,接下来让我们看一下Docker CLI的基本语法。
docker命令行采用以下形式:
docker
您可以通过键入不带参数的
docker
列出所有可用命令:
docker
Docker映像
Docker映像由一系列表示映像的Dockerfile中的指令的层组成,这些指令构成可执行软件应用程序。 映像是不可变的二进制文件,包括应用程序和所有其他依赖项,例如二进制文件,库和运行应用程序所需的指令。 简而言之,Docker映像本质上是Docker容器的快照。
Docker Hub是基于云的注册表服务,除其他功能外,还用于将Docker映像保存在公共或私有存储库中。
要在Docker Hub存储库中
search
映像,只需使用
search
子命令。 例如,要搜索CentOS映像,请运行:
docker search centos
输出应如下所示:
NAME DESCRIPTION STARS OFFICIAL AUTOMATED centos The official build of CentOS. 4257 ansible/centos7-ansible Ansible on Centos7 109 jdeathe/centos-ssh CentOS-6 6.9 x86_64 / CentOS-7 7.4.1708 x86_… 94 consol/centos-xfce-vnc Centos container with "headless" VNC session… 52 imagine10255/centos6-lnmp-php56 centos6-lnmp-php56 40 tutum/centos Simple CentOS docker image with SSH access 39
如您所见,搜索结果将打印一个包含五列的表:
NAME
,
DESCRIPTION
,
STARS
,
OFFICIAL
和
AUTOMATED
。 官方映像是Docker与上游合作伙伴共同开发的映像。
如果我们要下载CentOS 7的正式版本,可以使用
image pull
子命令来完成:
docker image pull centos
Using default tag: latest latest: Pulling from library/centos 469cfcc7a4b3: Pull complete Digest: sha256:989b936d56b1ace20ddf855a301741e52abca38286382cba7f44443210e96d16 Status: Downloaded newer image for centos:latest
根据您的Internet速度,下载可能需要几秒钟或几分钟。 下载图像后,我们可以列出图像:
docker image ls
输出应类似于以下内容:
REPOSITORY TAG IMAGE ID CREATED SIZE hello-world latest e38bc07ac18e 3 weeks ago 1.85kB centos latest e934aafc2206 4 weeks ago 199MB
如果出于某种原因要删除图像,可以使用
image rm
子命令来删除它:
docker image rm centos
Untagged: centos:latest Untagged: centos@sha256:989b936d56b1ace20ddf855a301741e52abca38286382cba7f44443210e96d16 Deleted: sha256:e934aafc22064b7322c0250f1e32e5ce93b2d19b356f4537f5864bd102e8531f Deleted: sha256:43e653f84b79ba52711b0f726ff5a7fd1162ae9df4be76ca1de8370b8bbf9bb0
Docker容器
图像的实例称为容器。 容器代表单个应用程序,进程或服务的运行时。
这可能不是最合适的比较,但是如果您是程序员,则可以将Docker映像视为类,而将Docker容器视为类的实例。
我们可以使用
docker container
子命令启动,停止,删除和管理
docker container
。
以下命令将基于CentoOS映像启动Docker容器。 如果您在本地没有该图像,它将首先下载该图像:
docker container run centos
乍一看,您似乎什么也没发生。 好吧,那是不对的。 CentOS容器在启动后立即停止,因为它没有长时间运行的过程,并且我们没有提供任何命令,因此该容器启动后,运行了一个空命令,然后退出。
switch
-it
允许我们通过命令行与容器进行交互。 要启动交互式容器类型:
docker container run -it centos /bin/bash
从容器启动后的输出中可以看到,命令提示符已更改,这意味着您现在正在容器内部工作:
#
要列出正在运行的容器:,请输入:
docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 79ab8e16d567 centos "/bin/bash" 22 minutes ago Up 22 minutes ecstatic_ardinghelli
如果没有任何正在运行的容器,则输出将为空。
要查看正在运行和已停止的容器,请将
-a
开关传递给它:
docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 79ab8e16d567 centos "/bin/bash" 22 minutes ago Up 22 minutes ecstatic_ardinghelli c55680af670c centos "/bin/bash" 30 minutes ago Exited (0) 30 minutes ago modest_hawking c6a147d1bc8a hello-world "/hello" 20 hours ago Exited (0) 20 hours ago sleepy_shannon
要删除一个或多个容器,只需从上方复制一个或多个容器ID,然后将其粘贴在
container rm
子命令之后:
docker container rm c55680af670c
结论
您已经了解了如何在CentOS 7计算机上安装Docker,以及如何下载Docker映像和管理Docker容器。 您可能还想阅读有关Docker Compose的信息,它使您可以定义和运行多容器Docker应用程序。
本教程几乎没有涉及Docker生态系统的表面。 在接下来的一些文章中,我们将继续深入探讨Docker的其他方面。 要了解有关Docker的更多信息,请查看Docker官方文档。
如何在centos 7上添加和删除用户
知道如何添加和删除用户是Linux用户应该知道的基本技能之一。 在本教程中,我们将说明如何在CentOS 7系统上添加和删除用户。
如何在centos 7上添加交换空间
交换是物理RAM内存已满时使用的磁盘空间。 本教程说明了如何在CentOS 7系统上添加交换文件。
如何在centos 7上安装和使用docker compose
Docker Compose是一个工具,可用于定义和运行多容器Docker应用程序。 使用Compose,您可以在单个YAML文件中定义应用程序的服务,网络和卷,然后使用单个命令旋转应用程序。