Docker可以运行在Windows上,可以运行在macOS上,当然也可以运行在Linux上。作为Linux的一个知名发行版,CentOS,自然也可以搭载运行Docker。CentOS跟另一个曝光度更高的Ubuntu都是Linux发行版,但是二者不通(悲)。

这篇博客会描述对Ubuntu的操作有了解的读者,如何快速在CentOS上搭建Docker。


文章目录

  • yum
  • 引入Docker仓库
  • 安装Docker
  • 跑一个Hello world吧


yum

熟练用过Ubuntu的读者都知道,安装软件用apt。(我个人觉得用macOS的应该会知道用Homebrew,Windows就难说了)

在CentOS上,包管理工具叫做yum。使用yum安装包依然是用install命令(嗯,你还是逃不过必须sudo的命运)。但是不能直接输入sudo yum install docker来安装,首先你需要引入Docker仓库。

引入Docker仓库

然而,要引入Docker仓库首先需要安装能够修改yum配置的实用程序。运行

sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2

来安装它们。安装过程是静默的,如果想要手动输入那个y来确认的话,去掉上述指令的-y(跟apt很像)。
随后,使用

sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

将Docker的repo加入yum当中。

安装Docker

如果你曾经安装过Docker,请先使用下面的命令来卸载它。

sudo yum remove docker \
                docker-client \
                docker-client-latest \
                docker-common \
                docker-latest \
                docker-latest-logrotate \
                docker-logrotate \
                docker-engine

使用下述命令安装Docker。

sudo yum install docker-ce docker-ce-cli containerd.io

这会安装Docker的社区(免费的!)版本,如果yum询问是否接受GPG钥,检查这个钥之后接受它,就可以了。

Docker作为一个服务,在安装之后需要启动。

sudo systemctl start docker

将会启动Docker服务。

跑一个Hello world吧

输入

sudo docker run hello-world

输出以下内容

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world

这表示在本地没有找到hello-world这个镜像,所以它去Docker网站下载了。Docker维护了一个Hub,存放了常用的镜像,可以拿来即用,十分方便。

下载完毕之后,输出以下内容之后镜像就退出了。

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

安装成功了。我们通过命令行调用了Docker的前端程序,前端程序调用了我们刚刚启动的守护进程,守护进程从互联网上下载了镜像,随后创建了环境(容器)并且运行了镜像。守护进程,即后端,即服务,将镜像的输出串流到了前端输出,所以我们在屏幕上看到了这些。镜像退出之后,容器也随之销毁了。

以上就是在CentOS当中安装并试运行Docker的全部过程。