柚子快报邀请码778899分享:Docker入门学习快速安装

http://yzkb.51969.com/

CentOS Docker安装 前提条件 目前,CentOS 仅发行版本中的内核支持 Docker。Docker 运行在CentOS 7 (64-bit)上, 要求系统为64位、Linux系统内核版本为 3.8以上,这里选用Centos7.x 查看自己的内核 uname命令用于打印当前系统相关信息(内核版本号、硬件架构、主机名称和操作系统类型等)。 [root@master ~]# uname -a

Linux master 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux Docker的基本组成

镜像(image)Docker 镜像(Image)就是一个只读的模板。镜像可以用来创建 Docker 容器,一个镜像可以创建很多容器。 它也相当于是一个root文件系统。比如官方镜像 centos:7 就包含了完整的一套 centos:7 最小系统的 root 文件系统。 相当于容器的“源代码”,docker镜像文件类似于Java的类模板,而docker容器实例类似于java中new出来的实例对象。 容器与镜像的关系类似于面向对象编程中的对象与类:

Docker 面向对象 容器 对象 镜像 类

容器(container)

从面向对象角度Docker 利用容器(Container)独立运行的一个或一组应用,应用程序或服务运行在容器里面,容器就类似于一个虚拟化的运行环境,容器是用镜像创建的运行实例。就像是Java中的类和实例对象一样,镜像是静态的定义,容器是镜像运行时的实体。容器为镜像提供了一个标准的和隔离的运行环境,它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。

从镜像容器角度可以把容器看做是一个简易版的Linux环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。

仓库(repository)仓库(Repository)是集中存放镜像文件的场所。 类似于Maven仓库,存放各种jar包的地方;github仓库,存放各种git项目的地方;Docker公司提供的官方registry被称为Docker Hub,存放各种镜像模板的地方。 仓库分为公开仓库(Public)和私有仓库(Private)两种形式。 最大的公开仓库是 DockerHub(https://hub.docker.com/ (opens new window)),存放了数量庞大的镜像供用户下载。国内的公开仓库包括阿里云 、网易云等

小总结需要正确的理解仓库/镜像/容器这几个概念: Docker 本身是一个容器运行载体或称之为管理引擎。我们把应用程序和配置依赖打包好形成一个可交付的运行环境,这个打包好的运行环境就是image镜像文件。只有通过这个镜像文件才能生成Docker容器实例(类似Java中new出来一个对象)。 image文件可以看作是容器的模板。Docker 根据image 文件生成容器的实例。同一个 image 文件,可以生成多个同时运行的容器实例。 镜像文件 image 文件生成的容器实例,本身也是一个文件,称为镜像文件。 容器实例 一个容器运行一种服务,当我们需要的时候,就可以通过docker客户端创建一个对应的运行实例,也就是我们的容器。 仓库 就是放一堆镜像的地方,我们可以把镜像发布到仓库中,需要的时候再从仓库中拉下来就可以了。 Docker平台架构图解(入门版) Docker平台架构图解(架构版)

首次懵逼正常,后续深入,先有大概轮廓,混个眼熟整体架构及底层通信原理简述Docker 是一个 C/S 模式的架构,后端是一个松耦合架构,众多模块各司其职。 Docker运行的基本流程:

用户是使用Docker Client与 Docker Daemon建立通信,并发送请求给后者。Docker Daemon作为Docker架构中的主体部分,首先提供Docker Server的功能使其可以接受Docker Client 的请求。Docker Engine执行Docker 内部的一系列工作,每一项工作都是以一个Job的形式的存在。Job的运行过程中,当需要容器镜像时,则从Docker Registry 中下载镜像,并通过镜像管理驱动Graph driver将下载镜像以Graph的形式存储。当需要为Docker创建网络环境时,通过网络管理驱动Network driver创建并配置Docker容器网络环境。当需要限制Docker容器运行资源或执行用户指令等操作时,则通过Exec driver来完成。Libcontainer是一项独立的容器管理包,Network driver以及Exec driver都是通过Libcontainer来实现具体对容器进行的操作。 操作系统要求 要安装 Docker 引擎,您需要 CentOS 7 或 8 的维护版本。不支持或测试存档版本,并且 Linux 版本 3.10.0+,包括 3.10.0。 该 centos-extras 库必须启用。默认情况下启用此存储库,但如果您已禁用它,则需要 重新启用它 (opens new window)。 overlay2 推荐使用存储驱动。 卸载旧版本 旧版本的 Docker 被称为 docker 或 docker-engine。如果安装了这些,请卸载它们以及相关的依赖项: sudo yum remove docker \

docker-client \

docker-client-latest \

docker-common \

docker-latest \

docker-latest-logrotate \

docker-logrotate \

docker-engine 如果 yum 报告没有安装这些软件包,那也没关系,只是说明曾经没安装过,不影响任何东西。 卸载并不会全部卸载,如图像、容器、卷和网络,将被保留,以及 /var/lib/docker/ 的内容 Docker 引擎包现在被称为 docker-ce. 安装方法 保证CentOS能够正常上网。

yum安装gcc相关yum -y install gcc

yum -y install gcc-c++ 首先说明下:Docker 安装路径是 /var/lib/docker,安装 Docker 成功后,在该路径中有一个 image 和 containers 文件夹,分别存放镜像和实例。 您可以根据需要以不同方式安装 Docker Engine:

从 Docker 的存储库或者其他镜像库里下载,这是最推荐的方法下载 RPM 包并手动安装并完全手动管理升级。这在某些情况下非常有用,例如在无法访问互联网的气隙系统上安装 Docker便捷脚本安装 Docker,可以在测试和开发环境中安装使用存储库安装 在新主机上首次安装 Docker Engine 之前,您需要设置 Docker 存储库。之后,您可以从存储库安装和更新 Docker。 安装软件包 安装 yum-utils 包,它提供 yum-config-manager 实用程序 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 阿里云仓库也是定期从官网仓库进行更新引用,两者仓库量无太大区别,如果配置了阿里云仓库,也要配置阿里云镜像加速,即下载速度源由官网改为阿里云。

最新版本安装特定版本安装安装 最新版本 的 Docker Engine 和 containerd: sudo yum -y install docker-ce docker-ce-cli containerd.io 如果希望自己手动确认一些安装条件,则把 -y 去掉。 如果报如下错误: Loaded plugins: fastestmirror

Loading mirror speeds from cached hostfile

No package docker-ce available.

No package docker-ce-cli available.

No package containerd.io available. 要么你的 Linux 版本没到达 3.10.+,要么你忽略了上方的设置存储库,请设置官方或者阿里云的存储库,否则无法找到 Docker。 还有一种可能就是你的 yum 版本太低,请更新它。 # 更新 yum

yum update

# CentOS 7 更新索引

yum makecache fast

# CentOS 8 更新索引

yum makecache 安装 特定版本 的 Docker Engine,请在 repo 中列出可用版本,然后选择并安装 首先列出可以安装的版本: yum list docker-ce --showduplicates | sort -r

# 例子:

docker-ce.x86_643:18.09.1-3.el7 docker-ce-stable

docker-ce.x86_643:18.09.0-3.el7 docker-ce-stable

docker-ce.x86_6418.06.1.ce-3.el7 docker-ce-stable

docker-ce.x86_6418.06.e.ce-3.el7 docker-ce-stable 返回的列表取决于启用的存储库,并且特定于您的 CentOS 版本(e17 就是 CentOS 7.x 版本,如果是 CentOS 8.2,则是 e18) 通过完全限定的包名称安装特定版本,即包名称 (docker-ce) 加上从第一个冒号 (:)开始的版本字符串(第 2 列),直到第一个连字符,由连字符 (-)分隔。例如:docker-ce-18.09.1。 sudo yum install docker-ce- docker-ce-cli- containerd.io

# 例子

sudo yum install docker-ce-18.09.1 docker-ce-cli-18.09.1 containerd.io 此命令会安装 Docker,但不会启动 Docker。它还会创建一个 docker 组,但是,默认情况下它不会向该组添加任何用户。 启动 Docker sudo systemctl start docker 测试是否启动成功 # 执行该命令

sudo systemctl status docker

# 执行结果,出现 active (running) 代表启动成功

● docker.service - Docker Application Container Engine

Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)

Active: active (running) since 五 2021-11-19 15:40:03 CST; 1s ago

Docs: https://docs.docker.com

Main PID: 29970 (dockerd)

Tasks: 11

Memory: 114.0M

CGroup: /system.slice/docker.service

└─29970 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock 其他命令: # 查看 docker 的状态

systemctl status docker

# 重启 docker

systemctl restart docker

# 设置 docker 服务开启自启动

systemctl enable docker 验证安装 查看 Docker 版本 docker version 查看 Docker 信息 docker info 测试运行 通过运行 hello-world 映像验证 Docker Engine 是否已正确安装 # 执行该命令

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,您可以下载该.rpm版本的 文件并手动安装。每次要升级 Docker Engine 时都需要下载一个新文件。 前往 https://download.docker.com/linux/centos/ (opens new window) (opens new window)并选择您的 CentOS 版本。然后浏览 x86_64/stable/Packages/ 并下载 .rpm 要安装的 Docker 版本的文件。 安装 安装 Docker Engine,将下面的路径更改为您下载 Docker 包的路径。 sudo yum install /path/to/package.rpm Docker 已安装但未启动。该 docker 组被创建,但没有用户添加到组。 启动 Docker sudo systemctl start docker 其他命令: # 查看 docker 的状态

systemctl status docker

# 重启 docker

systemctl restart docker

# 设置 docker 服务开启自启动

systemctl enable docker 验证安装 查看 Docker 版本 docker version 查看 Docker 信息 docker info 测试运行 通过运行 hello-world 映像验证 Docker Engine 是否已正确安装 docker run hello-world 此命令下载测试映像并在容器中运行它。当容器运行时,它会打印一条消息并退出。 便利脚本安装 Docker 在 get.docker.com (opens new window) (opens new window)上提供了一个方便的脚本,可以快速且非交互式地将 Docker 安装到开发环境中。不建议将便捷脚本用于生产环境,但可以用作示例来创建适合您需求的配置脚本。 在本地运行之前,请务必检查从 Internet 下载的脚本。在安装之前,让自己熟悉便利脚本的潜在风险和限制:

脚本需要 root 或 sudo 特权才能运行。该脚本会尝试检测您的 Linux 发行版和版本并为您配置包管理系统,并且不允许您自定义大多数安装参数。该脚本无需确认即可安装依赖项和建议。这可能会安装大量软件包,具体取决于主机的当前配置。默认情况下,该脚本会安装 Docker、containerd 和 runc 的最新稳定版本。使用此脚本配置机器时,可能会导致 Docker 的主要版本意外升级。在部署到生产系统之前,始终在测试环境中测试(主要)升级。该脚本并非旨在升级现有的 Docker 安装。使用脚本更新现有安装时,依赖项可能不会更新到预期版本,从而导致使用过时的版本。安装 此示例从 get.docker.com (opens new window) (opens new window)下载脚本并运行它以在 Linux 上安装 Docker 的最新稳定版本,另外可以通过 --mirror 选项使用国内下载源进行安装: curl -fsSL https://get.docker.com -o get-docker.sh

sudo sh get-docker.sh --mirror 启动 Docker sudo systemctl start docker 其他命令: # 查看 docker 的状态

systemctl status docker

# 重启 docker

systemctl restart docker

# 设置 docker 服务开启自启动

systemctl enable docker 创建 docker 用户组 便利脚本安装不会自动创建 docker 用户组,请手动安装 sudo groupadd docker 验证测试 查看 Docker 版本 docker version 查看 Docker 信息 docker info 测试运行 通过运行 hello-world 映像验证 Docker Engine 是否已正确安装 docker run hello-world 此命令下载测试映像并在容器中运行它。当容器运行时,它会打印一条消息并退出。

柚子快报邀请码778899分享:Docker入门学习快速安装

http://yzkb.51969.com/

精彩内容

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。