Docker的安装

初识Docker

​ 这里推荐一个Docker中午文档

何为Docker

Docker 使用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux 内核的 cgroupnamespace,以及 OverlayFS 类的 Union FS 等技术,对进程进行封装隔离,属于 操作系统层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。最初实现是基于 LXC,从 0.7 版本以后开始去除 LXC,转而使用自行开发的 libcontainer,从 1.11 版本开始,则进一步演进为使用 runCcontainerd

runc 是一个 Linux 命令行工具,用于根据 OCI容器运行时规范 创建和运行容器。

containerd 是一个守护程序,它管理容器生命周期,提供了在一个节点上执行容器和管理镜像的最小功能集。

Docker 在容器的基础上,进行了进一步的封装,从文件系统、网络互联到进程隔离等等,极大的简化了容器的创建和维护。使得 Docker 技术比虚拟机技术更为轻便、快捷。

总结:Docker比传统虚拟化技术更轻巧。例如,我们想在Linux系统跑一个程序就得通过VMware创建CentOS系统时会提示你是否加载声卡等选项,这是直接虚拟化了整套电脑的软硬件,而Docker只会封装你这个程序最低运行标准所需的数据

Linux安装Docker

​ 查看Docker官网文档Docker对CentOS系统只支持CenOS 7以上的版本,因此可以输一下命令查看当前CentOS系统的版本:

[root@TestMachine ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)

卸载旧版本Docker

如果之前安装过,可以通过一下命令卸载,如没,救跳过。

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

安装gcc

如果没有安装gcc,需要先安装gcc。(一般配置好Linux环境的都会有)。

yum -y install gcc
yum -y install gcc-c++

使用 rpm 存储库安装

​ 在新主机上首次安装 Docker Engine 之前,您需要 需要设置 Docker 存储库。之后,您可以安装和更新 存储库中的 Docker。

  • 设置存储库

安装yum-utils软件包(提供yum-config-manager实用程序)并设置存储库。

yum install -y yum-utils
# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

官网推荐设置Docker存储库使用这个命令:yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

将存储库设置成国外,在国内访问会很麻烦,因此这里替换成ailiyun

yum-config-manager \
    --add-repo \
    https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  • 安装docker引擎
yum install docker-ce docker-ce-cli containerd.io

该命令会安装最新版本的Docker,要测试版本可以执行这个命令:yum-config-manager --enable docker-ce-test

测试Docker

  • 启动Docker
systemctl start docker
  • 查看Docker版本
[root@TestMachine ~]# docker version
Client: Docker Engine - Community
 Version:           24.0.7
 API version:       1.43
 Go version:        go1.20.10
 Git commit:        afdd53b
 Built:             Thu Oct 26 09:11:35 2023
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          24.0.7
  API version:      1.43 (minimum version 1.12)
  Go version:       go1.20.10
  Git commit:       311b9ff
  Built:            Thu Oct 26 09:10:36 2023
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.25
  GitCommit:        d8f198a4ed8892c764191ef7b3b06d8a2eeb5c7f
 runc:
  Version:          1.1.10
  GitCommit:        v1.1.10-0-g18a0cb0
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0
  • 执行镜像
[root@TestMachine ~]# docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
719385e32844: Pull complete 
Digest: sha256:c79d06dfdfd3d3eb04cafd0dc2bacab0992ebc243e083cabe208bac4dd7759e0
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的执行过程会先查看本地是否有该镜像,如果没有就会去远程仓库拉取镜像到本地,再执行该镜像,因此会提示:Unable to find image 'hello-world:latest' locally

卸载 Docker 引擎

  1. 卸载 Docker Engine、CLI、containerd 和 Docker Compose 包:

     yum remove docker-ce docker-ce-cli containerd.io 
    
  2. 主机上的映像、容器、卷或自定义配置文件 不会自动删除。要删除所有映像、容器和卷,请执行以下操作:

    rm -rf /var/lib/docker
    rm -rf /var/lib/containerd
    

您必须手动删除任何编辑的配置文件。

镜像加速

阿里云为每个用户提供个人镜像加速,可以自行去阿里云官网操作。

操作完后执行hello-world

[root@TestMachine ~]# docker run hello-world

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启动没问题

Docker执行镜像流程图

posted @ 2023-12-11 15:02  MrSponge  Views(24)  Comments(0Edit  收藏  举报