对于现有可落地、先进的开发工艺流程概念中最为耀眼的具体产品莫非Docker了,它强大之处在于完美的解决了复杂软件的部署及敏捷开发中的频率部署的问题,结合CI/CD与k8s形成了强大的生产力。而CentOS则是现在云环境中最为炙手可热的操作系统,它拥有这RHEL的稳定性及开源免费的优点,是很多互联网企业的最佳原则。今天我就尝试一下在CentOS上安装Docker,其中也包括国内的一些特殊原因的workaround方法。

配置Yum源

由于CentOS默认的repository中没有docker软件, 在国内一般情况是使用两种方案:

  1. 使用国内的阿里云或七牛云等镜像源,但是在我测试的时候不可用。
  2. 使用docker官方的repository,缺点是速度比较慢。

阿里云镜像

由于国内某种网络原因,docker的下载速度会很慢,所以我们在这里先配置yum的数据源为国内阿里云。

# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# yum makecache fast

经测试此数据源中无docker软件包。

Docker官方Repository

由于CentOS默认的repo中没有docker软件,所以需要添加docker的官方repo到yum中。

# wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo
# yum clean all
# yum makecache

安装docker

docker推荐的方式是在操作系统中创建docker用户,用来安装和管理docker,我在这里就偷懒直接使用root用户来进行操作了。如果想使用非root用户安装的方式可以参考文末参考链接中【CentOS 安装 Docker CE】内容

# yum install docker-ce

由于国内网络的某些原因,docker官方的repository速度有些慢,我测试的时候基本上保持在50k左右,整个过程差不多40分钟左右。

# yum list installed | grep docker
containerd.io.x86_64                 1.2.2-3.el7                    @docker-ce-stable
docker-ce.x86_64                     3:18.09.1-3.el7                @docker-ce-stable
docker-ce-cli.x86_64                 1:18.09.1-3.el7                @docker-ce-stable
# docker --version
Docker version 18.09.1, build 4c52b90

此时已经完成docker安装。

启动docker

在启动docker之前需要将docker服务使用systemd启用,systemd会将docker服务ln到多用户的target中。

# systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
# systemctl start docker
# ps -ef | grep docker
root      4663     1  3 03:10 ?        00:00:00 /usr/bin/dockerd -H fd://

测试docker

此时docker后台进程已经启动,但是现在还没有任何可运行的镜像或容器。 下面我们启动一个测试容器。

# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
# docker container
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
# docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
1b930d010525: Pull complete
Digest: sha256:2557e3c07ed1e38f26e389462d03ed943586f744621577a99efb77324b0fe535
Status: Downloaded newer image for hello-world:latest

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 images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hello-world         latest              fce289e99eb9        5 weeks ago         1.84kB

如果看到如上的信息,证明docker此时已经可以正常工作了。


参考链接: