docker 官方文档:https://docs.docker.com/get-docker/

docker 中文文档:https://www.kancloud.cn/jingyucloud/docker/216412

搭建私有仓库参考:https://zhuanlan.zhihu.com/p/511286328

开放远程API接口参考:https://blog.csdn.net/ic_esnow/article/details/113284475

一、简介

容器概念

容器是一种轻量级、可移植、自包含的软件运行环境。它允许开发者将一个应用及其全部运行环境——包括代码、运行时、系统工具、系统库以及设置——全部封装在一起。这种封装确保了应用在任何环境中都能以相同的方式运行,无论是在开发人员的个人电脑上、测试环境中、还是在生产环境的服务器或云平台上。

核心特性

  • 隔离性:容器通过操作系统级别的虚拟化实现了进程和资源的隔离。每个容器都运行在一个独立的环境中,并且容器与容器之间、容器与宿主机之间都是相互隔离的。
  • 轻量级:与传统的虚拟机相比,容器不需要额外加载一个完整的操作系统内核,只需利用宿主机的内核即可运行。这大大减少了资源消耗和启动时间。
  • 可移植性:由于容器内包含了应用运行所需的一切,因此可以确保应用在不同的计算环境中运行时的一致性和兼容性。
  • 微服务架构的支持:容器非常适合微服务架构,因为它们允许每个服务单独容器化,这样可以独立地开发和扩展服务。

容器与虚拟机的区别

  • 启动时间:容器只需几秒钟即可启动,而虚拟机可能需要几分钟。
  • 性能:容器直接运行在宿主机的操作系统之上,几乎没有额外开销,因此性能接近物理机。虚拟机则需要额外的资源来运行完整的操作系统。
  • 资源占用:容器共享宿主机的操作系统内核,而虚拟机则需要为每个虚拟机实例运行一个完整的操作系统,因此容器更加节省资源。
  • 隔离性:虚拟机提供了更强的隔离性,因为它们彼此之间以及与宿主机之间是完全独立的。容器虽然也提供了隔离性,但因为它们共享宿主机的内核,所以相对较弱。

容器技术的出现和普及改变了软件开发、部署和运维的方式,使得应用的交付更加快速、高效。Docker 是目前最流行的容器平台之一,但也有其他技术如 Podman、containerd 等。

什么是Docker

Docker 是一个开源的应用容器引擎,允许开发者打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(默认情况下),更重要的是容器性能开销极低。

核心概念
  • 镜像(Image):Docker 镜像是用于创建 Docker 容器的模板,可以将其理解为一个只读的文件系统。它提供了容器运行时所需的程序、库、资源、配置等文件,但不包含任何动态数据。用户可以基于镜像启动新的容器实例。
  • 容器(Container):容器是镜像的运行实例。它可以被启动、开始、停止、删除,每个容器都是相互隔离、保证安全的平台。容器的核心是隔离性和临时性,这意味着当容器被删除时,容器内的更改和数据也会随之消失。
  • 仓库(Repository):Docker 仓库是集中存放镜像文件的场所。最著名的公共仓库是 Docker Hub,其中包含了数量庞大的镜像供用户下载。除了 Docker Hub,用户还可以创建私有仓库来存放自己的镜像。
工作原理

Docker 使用客户端-服务器(C/S)架构模式。Docker 客户端与 Docker 服务器(Docker Daemon)通信,Docker Daemon 负责构建、运行和分发 Docker 容器。Docker 客户端和服务器可以运行在同一个系统上,也可以通过网络从远程客户端与 Docker Daemon 通信。

主要特点
  1. 快速、一致地交付应用:Docker 可以快速构建、测试并部署应用,并确保应用在任何环境中都能以相同的方式运行。
  2. 响应式扩展与缩减:根据业务需求,容易地在服务中增加或删除容器来扩展或缩减服务。
  3. 运行任何地方:Docker 容器可以在开发者的本地笔记本电脑、物理或虚拟机、数据中心、云服务等任何地方运行。
  4. 隔离:Docker 确保每个容器都在自己的隔离环境中运行,使得应用更加安全。
  5. 轻量级:Docker 利用 Linux 容器技术,比传统的虚拟化技术更加轻量,提高了系统利用率和性能。

Docker 的出现极大地简化了部署应用的流程,让开发、测试、生产环境之间的切换变得更加容易和快捷,对现代软件开发和运维方式产生了深远影响。

二、Window安装

在Win10及以上系统安装Docker Desktop使用Docker

确保系统安装 Hyper-V 参考文章(https://www.runoob.com/docker/windows-docker-install.html)

1、在Docker Desktop下载 网页上点击Docker Desktop for Windows下载或者直接去官网下载安装包

2、安装包下载好后,直接双击Docker Desktop Installer.exe文件进行安装,把接下来的页面所有选项全部选中

参考:https://blog.csdn.net/qq_39611230/article/details/108641842

在这里插入图片描述

在这里插入图片描述

3、安装完成后,打开Docker Desktop应用,在setting页面选择 Docker Engine

内容如下

{
  "builder": {
    "gc": {
      "defaultKeepStorage": "20GB",
      "enabled": true
    }
  },
  "experimental": false,
  "features": {
    "buildkit": true
  },
  "registry-mirrors": [
    "http://hub-mirror.c.163.com",
    "https://docker.mirrors.ustc.edu.cn"
  ],
  "insecure-registries": [
    "192.168.1.153:5000"
  ]
}

//registry-mirrors 配置源,这里使用的是163的源
//insecure-registries 私有仓库地址


参考:

https://docs.docker.com/desktop/install/windows-install/

https://www.runoob.com/docker/windows-docker-install.html

https://zhuanlan.zhihu.com/p/191588757

https://blog.csdn.net/BThinker/article/details/123358697

三、CentOS安装

1、选择要安装的平台

Docker要求CentOS系统的内核版本高于3.10

#通过 uname -r 命令查看你当前的内核版本
uname -r 

安装文档地址

img

2、选择要安装的操作系统

img

3、首先卸载已安装的Docker

使用Root权限登录 Centos。确保yum包更新到最新。

sudo yum update

在尝试安装新版本之前,请卸载任何此类旧版本以及关联的依赖项,操作系统没有安装过Docker就跳过。

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

img

可能会报告您没有安装这些软件包,卸载 Docker 时,存储在 /var/lib/docker/ 其中的映像、容器、卷和网络不会自动删除。

1、您可以设置 Docker 的存储库并从中安装,以便于安装和升级任务。这是推荐的方法。

2、您可以下载 RPM 软件包,手动安装它,并完全手动管理升级。这在无法访问 Internet 的气隙系统上安装 Docker 等情况下很有用。

3、在测试和开发环境中,您可以使用自动化便利脚本来安装 Docker。

4、使用rpm存储库安装

在新主机上首次安装 Docker 引擎之前,需要设置 Docker 存储库。之后,您可以从存储库安装和更新 Docker。

4.1、设置仓库

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

## 安装Docker所需要的一些工具包
sudo yum install -y yum-utils

## 建立Docker仓库 (映射仓库地址)
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

4.2、安装 Docker Engine

若要安装最新版本,请运行:

sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

如果系统提示您接受 GPG 密钥,请验证指纹是否匹配,如果匹配 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35 ,请接受它。

此命令将安装 Docker,但不会启动 Docker。它还会创建一个 docker 组,但是,默认情况下,它不会向该组添加任何用户。

4.3、启动 Docker

sudo systemctl start docker

4.4、通过运行 hello-world 映像来验证 Docker 引擎安装是否成功。

sudo docker run hello-world

5、软件包安装

如果无法使用 Docker rpm 的存储库安装 Docker 引擎,可以下载 .rpm 版本的文件并手动安装。每次要升级 Docker 引擎时,都需要下载一个新文件。

前往 https://download.docker.com/linux/centos/ 并选择您的 CentOS 版本。然后浏览并 x86_64/stable/Packages/ 下载 .rpm 要安装的 Docker 版本的文件。

5.1、安装 Docker 引擎,将以下路径更改为下载 Docker 包的路径。

 sudo yum install /path/to/package.rpm

Docker 已安装但未启动。组已创建,但未将用户添加到 docker 组。

5.2、启动 Docker。

sudo systemctl start docker

5.3、通过运行 hello-world 映像来验证 Docker 引擎安装是否成功。

sudo docker run hello-world

6、升级Docker 引擎

若要升级 Docker 引擎,请下载较新的包文件并重复安装过程,使用 yum -y upgrade 而不是 yum -y install ,并指向新文件。

使用便捷脚本安装

Docker 在 https://get.docker.com/ 提供了一个方便的脚本,用于以非交互方式将 Docker 安装到开发环境中。不建议将方便脚本用于生产环境,但它可用于创建根据需求量身定制的预配脚本。另请参阅使用存储库安装步骤,了解使用软件包存储库进行安装的安装步骤。该脚本的源代码是开源的,您可以在 GitHub 上的 docker-install 存储库中找到它。

在本地运行脚本之前,请始终检查从 Internet 下载的脚本。在安装之前,请熟悉便利脚本的潜在风险和限制:

  • 脚本需要 rootsudo 权限才能运行。
  • 该脚本尝试检测您的 Linux 发行版和版本,并为您配置包管理系统。
  • 该脚本不允许您自定义大多数安装参数。
  • 该脚本在不要求确认的情况下安装依赖项和建议。这可能会安装大量软件包,具体取决于主机的当前配置。
  • 默认情况下,该脚本会安装 Docker、containerd 和 runc 的最新稳定版本。使用此脚本预配计算机时,这可能会导致 Docker 意外的主要版本升级。在部署到生产系统之前,请始终在测试环境中测试升级。
  • 该脚本并非旨在升级现有 Docker 安装。使用脚本更新现有安装时,依赖项可能不会更新到预期的版本,从而导致版本过时。

提示:运行前预览脚本步骤

您可以使用以下 --dry-run 选项运行脚本,以了解脚本在调用时将运行哪些步骤:

$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh ./get-docker.sh --dry-run

此示例从 https://get.docker.com/ 下载脚本并运行它以在 Linux 上安装 Docker 的最新稳定版本:

$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh
Executing docker install script, commit: 7cae5f8b0decc17d6571f9f52eb840fbc13b2737
<...>

现在,您已成功安装并启动了 Docker 引擎。该 docker 服务在基于 Debian 的发行版上自动启动。在基于发行版(如 CentOS、Fedora、RHEL 或 SLES)上 RPM ,您需要使用相应的 systemctl or service 命令手动启动它。如消息所示,默认情况下,非 root 用户无法运行 Docker 命令。

以非特权用户身份使用 Docker,还是以无根模式安装?
安装脚本需要 rootsudo 具有权限才能安装和使用 Docker。如果要授予非 root 用户对 Docker 的访问权限,请参阅 Linux 的安装后步骤。您还可以在没有权限的情况下 root 安装 Docker,或配置为在无根模式下运行。有关在无根模式下运行 Docker 的说明,请参阅以非 root 用户身份运行 Docker 守护程序

安装预发行版
Docker 还提供了一个方便的 https://test.docker.com/ 脚本,用于在 Linux 上安装 Docker 的预发行版。此脚本等同于 中的 get.docker.com 脚本,但将包管理器配置为使用 Docker 包存储库的测试通道。测试通道包括 Docker 的稳定版本和预发布版本(测试版、候选版本)。使用此脚本可以抢先体验新版本,并在它们作为稳定版本发布之前在测试环境中对其进行评估。

若要从测试通道在 Linux 上安装最新版本的 Docker,请运行:

$ curl -fsSL https://test.docker.com -o test-docker.sh
$ sudo sh test-docker.sh

使用便捷脚本后升级 Docker
如果使用方便脚本安装了 Docker,则应直接使用包管理器升级 Docker。重新运行便利脚本没有任何好处。如果它尝试重新安装主机上已存在的存储库,则重新运行它可能会导致问题。

卸载 Docker 引擎

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

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

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

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

参考:

https://docs.docker.com/engine/install/

https://docs.docker.com/engine/install/centos/

https://blog.csdn.net/BThinker/article/details/123358697

https://www.runoob.com/docker/centos-docker-install.html

posted on 2024-02-06 11:15  青春似雨后霓虹  阅读(195)  评论(0编辑  收藏  举报