linux离线安装docker20.10.7 版本(亲测有效)

目录

  • 1 下载
  • 2 安装
    • 2.1 新建docker.service
    • 2.2 为什么要写docker.service
    • 2.3 启动docker
    • 2.5 安装docker-compose
      • 2.5.1 为什么安装
      • 2.5.2 安装
  • 3 /usr/local/bin/ 和 /usr/bin 区别

1 下载

在这里插入图片描述
将这个上传到linux 服务器的 随便一个目录

在这里插入图片描述

2 安装

解压离线安装包
tar -zxvf docker-20.10.7.tgz

解压之后在安装包的同一级的目录下出现这个文件夹
在这里插入图片描述

将docker 文件夹里面的东西都复制到 /usr/bin/ 里面

为什么复制到这个 /usr/bin/ 里面,因为docker 文件夹下都是docker 的命令,也就是可执行文件,也就是我们操作docker 的指令。

现在把这些指令都复制到 /usr/bin/ 里面,因为 /usr/bin/ 这个在在系统的PATH环境变量中。所以在随便一个目录都可以使用这个文件夹下的指令。

目的就是在随便一个目录下都可以使用docker 的指令

cp docker/*  /usr/bin/

2.1 新建docker.service

vim /etc/systemd/system/docker.service

这个文件里面的内容是:

[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
 
[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s

[Install]
WantedBy=multi-user.target

这是一个示例的 docker.service 文件的内容,让我们逐行解释每一行的含义:

[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
  • [Unit]:这个部分定义了单元的元数据。
  • Description:描述了单元的名称,这里是 Docker 应用容器引擎。
  • Documentation:提供了关于 Docker 的文档链接。
  • After:指定了单元所依赖的其他单元,这里是 network-online.targetfirewalld.service
  • Wants:指定了单元所希望的其他单元,这里是 network-online.target
[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
  • [Service]:这个部分定义了服务的配置。
  • Type=notify:指定了服务的类型为 notify,表示服务会在启动完成时向 systemd 发送通知。
  • ExecStart:指定了服务的启动命令,这里是 /usr/bin/dockerd,即 Docker 守护进程的可执行文件路径。
  • ExecReload:指定了服务的重载命令,这里是 /bin/kill -s HUP $MAINPID,表示当服务需要重新加载配置时,发送 HUP 信号给主进程。
  • LimitNOFILE:指定了服务允许的最大文件描述符数,这里设置为 infinity,表示无限制。
  • LimitNPROC:指定了服务允许的最大进程数,这里设置为 infinity,表示无限制。
  • TimeoutStartSec:指定了服务启动的超时时间,这里设置为 0,表示没有超时限制。
  • Delegate:指定了是否将服务的控制权委托给其他单元,这里设置为 yes,表示委托给其他单元。
  • KillMode:指定了服务被终止时的行为,这里设置为 process,表示终止主进程。
  • Restart:指定了服务在失败时是否重启,这里设置为 on-failure,表示只有在失败时才重启。
  • StartLimitBurst:指定了服务重启的次数限制,这里设置为 3,表示在一段时间内最多重启 3 次。
  • StartLimitInterval:指定了服务重启的时间间隔,这里设置为 60s,表示重启的时间间隔为 60 秒。
[Install]
WantedBy=multi-user.target
  • [Install]:这个部分定义了安装的相关信息。
  • WantedBy:指定了单元所希望安装到的目标,这里是 multi-user.target,表示希望在多用户模式下安装。

这是一个典型的 docker.service 文件的示例,其中定义了 Docker 守护进程的配置和行为,以便 systemd 可以管理它。实际使用时,你可以根据需要进行自定义配置。

2.2 为什么要写docker.service

docker.service 是一个 systemd 单元文件,用于管理 Docker 守护进程(Docker daemon)的启动和停止。systemd 是一个在现代 Linux 系统中广泛使用的初始化系统和服务管理器。

编写 docker.service 文件的目的是为了定义 Docker 守护进程的配置和行为,以便 systemd 可以管理它。这样,你就可以使用 systemd 命令来启动、停止、重启和管理 Docker 守护进程。

docker.service 文件通常位于 /etc/systemd/system/ 目录下,它包含了一些配置项,如 Docker 守护进程的启动参数、依赖关系、工作目录等。通过编辑 docker.service 文件,你可以自定义 Docker 守护进程的行为,以满足你的特定需求。

在编写 docker.service 文件后,你可以使用以下命令来管理 Docker 守护进程:

  • 启动 Docker 守护进程:sudo systemctl start docker
  • 停止 Docker 守护进程:sudo systemctl stop docker
  • 重启 Docker 守护进程:sudo systemctl restart docker
  • 查看 Docker 守护进程状态:sudo systemctl status docker

通过 systemd 管理 Docker 守护进程,可以使其在系统启动时自动启动,并提供了更方便的管理方式。

2.3 启动docker

chmod +x /etc/systemd/system/docker.service
systemctl daemon-reload
systemctl enable docker.service
systemctl start docker

让我们逐行解释每一行代码的含义:

  1. chmod +x /etc/systemd/system/docker.service:这条命令给 /etc/systemd/system/docker.service 文件添加可执行权限。这是为了确保 systemd 可以执行该文件来启动 Docker 服务。

  2. systemctl daemon-reload:这条命令告诉 systemd 重新加载配置文件,以便它能够识别到新的或修改过的服务单元文件。在修改了 /etc/systemd/system/docker.service 文件后,需要运行这个命令来使 systemd 生效。

  3. systemctl enable docker.service:这条命令将 Docker 服务设置为开机启动。它会在系统启动时自动启动 Docker 服务。

  4. systemctl start docker:这条命令启动 Docker 服务。它会立即启动 Docker 守护进程,并使其开始运行容器。

通过执行这些命令,你设置了 Docker 服务的可执行权限,重新加载了 systemd 的配置,将 Docker 服务设置为开机启动,并启动了 Docker 服务。这样,你就可以开始使用 Docker 来管理和运行容器了。

2.5 安装docker-compose

2.5.1 为什么安装

Docker和Docker Compose是两个不同的工具,它们在容器化应用程序的管理和部署方面有不同的作用。

Docker是一个开源的容器化平台,它允许你在隔离的环境中运行应用程序。你可以使用Docker构建、发布和运行容器,每个容器都包含一个完整的应用程序及其依赖项。Docker提供了一种轻量级、可移植和可扩展的方式来打包和部署应用程序。

Docker Compose是一个用于定义和运行多个容器应用程序的工具。它使用YAML文件来配置应用程序的服务、网络和卷等方面的设置。通过Docker Compose,你可以定义一个多容器的应用程序,并使用单个命令来启动、停止和管理这些容器。它简化了多容器应用程序的部署和管理过程,并提供了更高级的功能,如容器间的连接和通信。

虽然Docker本身可以帮助你管理单个容器,但当你需要管理和部署多个容器组成的应用程序时,Docker Compose会更加方便和强大。它允许你使用一个文件来定义整个应用程序的架构,并且可以轻松地启动、停止和扩展多个容器。

因此,尽管你已经安装了Docker,但如果你计划管理和部署多容器应用程序,建议你安装Docker Compose。它将为你提供更好的工具和功能来简化多容器应用程序的管理和部署过程。

2.5.2 安装

离线下载安装包
在这里插入图片描述
上传到服务器
在这里插入图片描述


cp docker-compose /usr/local/bin/

sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
docker-compose --version

在这里插入图片描述
让我为你解释每一行代码的含义和作用:

  1. cp docker-compose /usr/local/bin/

    这行代码将docker-compose二进制文件复制到/usr/local/bin/目录下。/usr/local/bin/通常是存放可执行文件的标准位置之一。这样做的目的是为了将docker-compose添加到系统的可执行文件路径中,使其可以在任何位置运行。

  2. sudo chmod +x /usr/local/bin/docker-compose

    这行代码赋予/usr/local/bin/docker-compose文件可执行权限。通过添加可执行权限,你可以在终端中直接运行docker-compose命令,而不需要指定完整的文件路径。

  3. sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

    这行代码创建了一个符号链接(symbolic link),将/usr/local/bin/docker-compose链接到/usr/bin/docker-compose。这样做的目的是为了在/usr/bin/目录下创建一个指向docker-compose的符号链接,使得docker-compose命令可以在系统的任何位置使用。

  4. docker-compose --version

    这行代码用于验证Docker Compose是否成功安装。执行该命令后,会显示Docker Compose的版本信息。如果成功安装,你将看到类似于docker-compose version X.XX.X的输出,其中X.XX.X表示安装的Docker Compose版本号。

这些命令的目的是将Docker Compose安装到系统的可执行文件路径中,并确保它具有适当的权限。符号链接的创建可以让你在任何位置使用docker-compose命令,而不需要指定完整的文件路径。最后,通过运行docker-compose --version命令,你可以验证安装是否成功,并查看安装的Docker Compose版本号。

3 /usr/local/bin/ 和 /usr/bin 区别

/usr/local/bin/usr/bin是Linux系统中存放可执行文件的两个常见目录。它们之间的区别如下:

  1. /usr/local/bin:这个目录用于存放本地安装的软件的可执行文件。当您手动从源代码编译并安装软件时,通常会将其安装到/usr/local目录下。/usr/local/bin/usr/local目录中的一个子目录,用于存放这些软件的可执行文件。这样做的好处是,它使得本地安装的软件与系统默认软件分开,避免了对系统软件的干扰。例如,如果您安装了一个自定义版本的某个软件,它的可执行文件可能会放在/usr/local/bin目录下。

  2. /usr/bin:这个目录是系统默认的可执行文件目录。大多数Linux发行版会将系统自带的软件的可执行文件放在这个目录下。当您安装新的软件包时,它的可执行文件通常会被放在/usr/bin目录下,以便所有用户都可以访问和使用这些软件。

总结起来,/usr/local/bin目录用于存放本地安装的软件的可执行文件,而/usr/bin目录用于存放系统默认的软件的可执行文件。

  • 在随便一个目录下,都可以执行以上文件夹里面的可执行文件吗?

不是所有目录下都可以执行/usr/local/bin/usr/bin中的可执行文件。执行一个可执行文件的前提是该文件所在的目录在系统的PATH环境变量中。

PATH环境变量是一个包含多个目录路径的列表,系统会按照列表中的顺序搜索这些目录来查找可执行文件。当您在命令行中输入一个命令时,系统会按照PATH环境变量中的顺序在这些目录中查找对应的可执行文件。

通常情况下,/usr/local/bin/usr/bin都会被包含在PATH环境变量中,因此您可以在终端中从任意目录执行这些目录中的可执行文件。但是,如果您的PATH环境变量没有包含这些目录,或者被其他目录覆盖了,那么您就无法直接执行这些可执行文件。

您可以通过在终端中运行echo $PATH命令来查看当前的PATH环境变量的值。如果需要在其他目录中执行/usr/local/bin/usr/bin中的可执行文件,可以使用完整的文件路径来运行这些文件,例如/usr/local/bin/executable/usr/bin/executable

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/307344.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

面试算法105:最大的岛屿

题目 海洋岛屿地图可以用由0、1组成的二维数组表示,水平或竖直方向相连的一组1表示一个岛屿,请计算最大的岛屿的面积(即岛屿中1的数目)。例如,在下图中有4个岛屿,其中最大的岛屿的面积为5。 分析 将岛屿…

局域网实现文件自动同步

软件下载地址: https://dbrwe.blog.csdn.net/article/details/132331206?spm1001.2014.3001.5502 打开【自动上传与同步】配置 在下面 自动同步 自动回传打上钩就可以同步或者下载文件

生成式人工智能市场规模、趋势和统计数据(2024-2026)

生成式人工智能市场规模、趋势和统计数据(2024-2026) 目录 生成式人工智能市场规模、趋势和统计数据(2024-2026)一、生成式人工智能行业亮点二、生成式人工智能市场规模三、生成式人工智能市场增长预测四、生成式人工智能采用统计…

结构型设计模式——适配器模式

适配器模式 这个更加好理解,就是做适配功能的类,例如,现在手机没有了圆形耳机接口,只有Type-C接口,因此你如果还想要使用圆形耳机的话需要买个圆形接口转Type-C的转换器(适配器),这…

再不收藏就晚了,Axure RP Pro 各版本大集合

Axure RP Pro下载链接 https://pan.baidu.com/s/1hRJRY6t0ZONKhdwvykAc3g?pwd0531 1.鼠标右击【Axure RP Pro9.0】压缩包(win11及以上系统需先点击“显示更多选项”)选择【解压到 Axure RP Pro9.0】。 2.打开解压后的文件夹,鼠标右击【Axu…

基于ssm的一家运动鞋店的产品推广网站的设计论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本一家运动鞋店就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息&am…

整理的十大算法和十大排序,分别用汇编语言,C语言,C++,java,python编写实现

整理的十大算法和十大排序,分别用汇编语言,C语言,C,java,python编写实现十大算法,分别用分别用C语言,C,java,python编写实现 Floyd Warshall算法 http://www.net188.com/thread-616-1-1.html …

<软考高项备考>《论文专题 - 57 干系人管理(1) 》

1 论文基础 1.1 写作要点 过程定义、作用写作要点、思路识别干系人识别干系人是定期识别项目干系人,分析和记录他们的利益、参与度、相互依赖性、影响力和对项目成功的潜在影响的过程。作用:使项目团队能够建立对每个干系人或干系人群体的适度关注。本项目里有哪些…

Qt之有趣的数字钟

一.效果 基于网络代码修改,支持时、分、秒;支持滑动、翻页和旋转。 二.实现 #include <QtCore> #include <QPainter> #include <QAction> #include <QWidget> #include <QMainWindow> #include <QTimer> #include <QKeyEvent> #…

TDengine 签约西电电力

近年来&#xff0c;随着云计算和物联网技术的迅猛发展&#xff0c;传统电力行业正朝着数字化、信息化和智能化的大趋势迈进。在传统业务基础上&#xff0c;电力行业构建了信息网络、通信网络和能源网络&#xff0c;致力于实现发电、输电、变电、配电和用电的实时智能联动。在这…

gem5学习(10):创建一个简单的配置脚本——Creating a simple configuration script

目录 一、gem5 configuration scripts 1、An aside on SimObjects 二、Creating a config file 1、导入m5库和SimObjects 2、创建模拟系统 3、设置系统时钟 4、设置内存模拟方式 5、创建CPU 6、创建系统级内存总线 7、连接请求-响应端口 &#xff08;1&#xff09;A…

Word2007导出PDF的正确做法

客户让做个一程序&#xff0c;从Excel读出数据&#xff0c;经过统计、计算生成PDF文档。我的做法是中间安装模板生成Word文档&#xff0c;然后在导出为PDF。 程序完成后需要测试&#xff0c;客户的环境是Win10Office2007。我用虚拟机搭建了环境&#xff0c;发现Word2007竟然无…

使用Nonebot编写QQ机器人

使用 NoneBot 这个工具&#xff0c;来编写 QQ 机器人。 安装基础软件 一、安装 NoneBot 库 直接使用 pip 安装即可 pip install nonebot二、安装酷Q 软件和 HTTP API 插件 酷Q 软件可以直接到官网下载&#xff0c;https://cqp.cc/b/news&#xff0c;或者可以到网盘下载&am…

理解接雨水算法

一、IDEA注释显示图片 在做题时&#xff0c;需要对照这图片&#xff0c;才能更好的梳理思路。 首先&#xff0c;注释里添加<img/>标签 之后&#xff0c;将鼠标光标放置在需要以阅读模式预览注释的地方&#xff0c;然后按快捷键CtrlAltQ即可 二、接雨水算法 先看接雨水…

nRF 5340环境搭建和工具下载(采用vscode最新搭建教程)

1. nRF 5340环境搭建和工具下载 1. 1 软件安装 nRF Connect for Desktop https://www.nordicsemi.com/Products/Development-tools/nrf-connect-for-desktop nRF Command Line Tools https://www.nordicsemi.com/Products/Development-tools/nrf-command-line-tools/downl…

使用Flask快速部署PyTorch模型

对于数据科学项目来说&#xff0c;我们一直都很关注模型的训练和表现&#xff0c;但是在实际工作中如何启动和运行我们的模型是模型上线的最后一步也是最重要的工作。 今天我将通过一个简单的案例&#xff1a;部署一个PyTorch图像分类模型&#xff0c;介绍这个最重要的步骤。 …

第三代量子计算机交付,中国芯片开辟新道路,光刻机难挡中国芯

日前安徽本源量子宣布第三代超导量子计算系统正式上线&#xff0c;这是中国最先进的量子计算机&#xff0c;计算量子比特已达到72个&#xff0c;在全球已居于较为领先的水平&#xff0c;这对于中国芯片在原来的硅基芯片受到光刻机阻碍无疑是巨大的鼓舞。 据悉本源量子的第一代、…

一个小巧、快速、轻量级的 .NET NoSQL 嵌入式数据库

前言 今天给大家分享一个小巧、快速、轻量级的 .NET NoSQL 嵌入式数据库&#xff1a;LiteDB。本篇文章主要是介绍LiteDB和在.NET中如何使用。 LiteDB介绍 LiteDB 是一个小巧、快速和轻量级的 .NET NoSQL 嵌入式数据库。 无服务器的 NoSQL 文档存储简单的 API&#xff0c;类似…

【研究僧毕业总结】第1024个创作日

目录 前言1. 机缘2. 收获3. 憧憬 前言 收到这封来信&#xff0c;代表从创作至今刚好满足1024天 1024&#xff0c;程序员的记忆 1. 机缘 从学生到社会&#xff0c;都在需求一个记录笔记的软件&#xff0c;而作为程序员&#xff0c;CSDN可云同步又可直接在云平台上看到 选择了…

高性价比蓝牙耳机有哪些?五款热门高性价比开放式蓝牙耳机推荐

想要一款音质超赞、佩戴舒适、价格又亲民的高性价比蓝牙耳机吗&#xff0c;在这那可就找对地方了&#xff0c;开放式蓝牙耳机就是那种让你在听音乐的同时&#xff0c;还能听到周围环境音的耳机&#xff0c;这种设计让你的听音体验更加舒适&#xff0c;那么哪款开放式蓝牙耳机最…