CentOS 7 安装 Docker(1)

一. Docker 版本

随着 Docker 的飞速发展,企业级功能的上线,更好的服务意味着需要支付一定的费用,目前 Docker 被分为两个版本:

  • community-edition 社区版
  • enterprise-edition 企业版

Docker 企业版(EE)专为企业开发和 IT 团队设计,可在大规模生产中构建,运送和运行关键业务应用程序。Docker EE 集成,认证和支持,为企业提供业界最安全的容器平台,实现所有应用程序的现代化。作为一个以应用为中心的平台,DockerEE 旨在加速和保护整个软件供应链,从开发到在任何基础设施上运行的生产。

我们学习 Docker 使用 CE 社区版即可。

二. 在 CentOS 上安装 Docker 引擎

官方文档

1. 使用官方安装脚本自动安装

安装命令如下:

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

也可以使用国内 daocloud 一键安装命令:

curl -sSL https://get.daocloud.io/docker | sh

2. 手动安装

2.1 卸载旧版本

-- 较旧的 Docker 版本称为 docker 或 docker-engine 。如果已安装这些程序,请卸载它们以及相关的依赖项。
$ sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

2.2 设置 Docker 仓库 yum 源

在新主机上首次安装 Docker Engine-Community 之前,需要设置 Docker 仓库。之后,您可以从仓库安装和更新 Docker。

-- 安装所需的软件包。yum-utils 
$ sudo yum install -y yum-utils

使用以下命令来设置稳定的仓库。

-- 使用官方源地址(比较慢)
$ sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

可以选择国内的一些源地址:

-- 阿里云
$ sudo yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

-- 清华大学源
$ sudo yum-config-manager \
    --add-repo \
    https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo

2.3 安装 Docker

安装最新版本的 Docker Engine-Community 和 containerd,或者转到下一步安装特定版本:

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

2.4 Docker 的启动和停止

# 启动 docker
sudo systemctl start docker
# 停止 docker
sudo systemctl stop docker
# 重启 docker
sudo systemctl restart docker
# 设置开机启动
sudo systemctl enable docker
# 查看 docker 状态
sudo systemctl status docker
# 查看 docker 内容器的运行状态
sudo docker stats
# 查看 docker 概要信息
sudo docker info
# 查看 docker 帮助文档
sudo docker --help

2.5 安装校验

[root@localhost ~]# docker -v
Docker version 19.03.12, build 48a66213fe

[root@localhost ~]# docker version
Client: Docker Engine - Community
  Version: 19.03.12
  API version: 1.40
  Go version: go1.13.10
  Git commit: 48a66213fe
  Built: Mon Jun 22 15:46:54 2020
  OS/Arch: linux/amd64
  Experimental: false
Server: Docker Engine - Community
  Engine:
    Version: 19.03.12
    API version: 1.40 (minimum version 1.12)
    Go version: go1.13.10
    Git coBuilt: Mon Jun 22 15:45:28 2020
    OS/Arch: linux/amd64
    Experimental: false
  containerd:
    Version: 1.2.13
    GitCommit: 7ad184331fa3e55e52b890ea95e65ba581ae3429
  runc:
    Version: 1.0.0-rc10
    GitCommit: dc9208a3303feef5b3839f4323d9beb36df0a9dd
  docker-init:
    Version: 0.18.0
    GitCommit: fec3683mmit: 48a66213fe

3. 配置镜像加速

Docker 从 Docker Hub 拉取镜像,因为是从国外获取,所以速度较慢,会出现以下情况:

[root@localhost ~]# docker run hello-world
Unable to find image 'hello-world:latest' locally
docker: Error response from daemon: Get https://registry1.docker.io/v2/library/hello-world/manifests/latest: net/http: TLS
handshake timeout.
See 'docker run --help'.

可以通过配置国内镜像源的方式,从国内获取镜像,提高拉取速度。
中国科学技术大学(LUG@USTC)的开源镜像:https://docker.mirrors.ustc.edu.cn
网易的开源镜像:http://hub-mirror.c.163.com
USTC 是老牌的 Linux 镜像服务提供者了,USTC 的 Docker 镜像加速器速度很快。USTC 和网易的优势之一就是不需要注册,属于真正的公共服务。(也可以使用阿里等其他服务商的镜像加速服务)

# 编辑文件 /daemon.json
vi /etc/docker/daemon.json

# 在文件中输入以下内容并保存
{"registry-mirrors": ["http://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn"]}

重新加载配置信息及重启 Docker 服务

# 重新加载某个服务的配置文件
sudo systemctl daemon-reload
# 重新启动 docker
sudo systemctl restart docker

4. hello-word

通过运行 hello-world 镜像来验证 Docker Engine 是否已正确安装。

[root@localhost ~]# docker run hello-world
Unable to find image 'hello-world:latest' locally # 本地找不到 helloworld 镜像
latest: Pulling from library/hello-world # 拉取最新版本的 hello-world 镜像
0e03bdcc26d7: Pull complete
Digest:
sha256:49a1c8800c94df04e9658809b006fd8a686cab8028d33cfba2cc049724254202
Status: Downloaded newer image for hello-world:latest

# 看到此消息表示您已正常安装。
Hello from Docker!
This message shows that your installation appears to be workingcorrectly.
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

posted @ 2022-03-31 14:01  shenghuotaiai  阅读(50)  评论(0编辑  收藏  举报