Debian9离线安装docker

1. 前言

  • 在服务器禁止外网访问的情况下,无法通过apt-get install安装docker,使得docker安装变得异常曲折
    • 本地下载安装包,scp到服务器
    • 通过dpkg -i 手动安装,启动docker服务失败
    • … …
  • 各种坑,猛男也要落泪 🤣 🤣 🤣
  • apt-get install安装docker,推荐的参考文档:Debian中安装docker

2. 离线安装docker

2.1 检查系统信息,以下载对应的安装包

  • 执行如下命令,查看Linux系统版本(Debian or Redhat)、64 bit or 32 bit、amd or arm架构

    uname -a
    # 或者使用
    cat /proc/version
    
  • 从输出信息可以看出,服务器是Debian系统、amd64(amd架构、64bit)

    # uname -a的输出
    Linux n37-081-113 4.19.117.bsk.12-amd64 #4.19.117.bsk.12 SMP Debian 4.19.117.bsk.12 Thu Mar 17 16:41:16  x86_64 GNU/Linux
    
  • 不同的Debian版本使用的docker安装包有差异,因此需要了解Debian的具体版本 —— 这里是Debian 9,名字为 Stretch

    # debian系统可以直接使用该命令
    cat /etc/debian_version
    # 或使用如下2种命令皆可
    cat /etc/issue
    cat /etc/issue
    
  • Debian系统版本与code name之间的关系可以查看Debian官网:DebianReleases

  • 如何查看系统信息,可以参考:详解linux下查看系统版本号信息的方法(总结)

2.2 下载docker安装包

  • 综上,笔者最终可在如下地址下载docker的安装包:https://download.docker.com/linux/debian/dists/stretch/pool/stable/amd64/
  • 安装docker需要下载3个安装包:containerd.io、docker-ce-cli、docker-ce,选择上述3个安装包的最新版本进行下载即可

2.3 安装docker

  • 在root用户下,进行docker安装

  • 依次安装上述三个安装包

    dpkg -i xxx.deb
    
  • 完成安装后,设置开机自启动、启动docker

    systemctl enable docker  && systemctl start docker
    
  • 离线安装参考文档: 国产化项目Debian系Linux离线安装docker

2.4 docker服务验证

  • 如未有任何报错,可以通过systemctl status docker.service查看是否为 active(running) 状态在这里插入图片描述

  • 接着,通过如下命令检查docker服务是否ok

    docker info
    docker run hello-world
    

3. 错误问题集锦

3.1 A dependency job for docker.service failed. See ‘journalctl -xe’ for details.

  • 启动docker时,出现如下报错信息:

    A dependency job for docker.service failed. See 'journalctl -xe' for details.
    
  • 通过如下命令,查看docker启动失败的详情:

    journalctl -xeu docker.service
    # 或通过如下命令,会发现docker处于inactive状态
    systemctl status docker.service
    
  • 错误信息大致如下:

    systemd[1]: Job docker.service/start failed with result 'dependency'.
    systemd[1]: Dependency failed for Docker Application Container Engine.
    

3.1.1 对自己不太ok的方式

  • 查阅资料后,博客:Job docker.service/start failed with result ‘dependency’,给笔者启示:错误原因可能是还没创建docker用户组

  • 使用如下命令,创建docker用户组

    groupadd docker
    
  • 重启docker,仍然出现该错误,同时通过cat /etc/group可以发现已经成功添加docker用户

3.1.2 完美的解决方案

  • StackOverflow上的一个问答成功帮助我解决问题:Docker service fails to start due to dependency

  • 执行/usr/bin/dockerd -H unix://后,出现下面的错误:

    can't create unix socket /var/run/docker.sock: is a directory
    
  • 确认/var/run/docker.sock目录存在后,删除该目录(参考问答帖:Failed to load listeners: can’t create unix socket /var/run/docker.sock: is a directory )

    rm -fr /var/run/docker.sock
    
  • 再次执行/usr/bin/dockerd -H unix://,通过systemctl status docker.service查看docker状态,发现未active

  • ctrl + C取消执行后,就可以通过systemctl start docker启动docker服务了

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

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

相关文章

招商银行秋招攻略和考试内容详解

招商银行秋招简介 招商银行是一家股份制商业银行,银行的服务理念已经深入人心,在社会竞争愈来愈烈的今天,招商银行的招牌无疑是个香饽饽,很多人也慕名而至,纷纷向招商银行投出了简历。那么秋招银行的秋招开始时间是多…

VMware虚拟机安装VMware tools

一、挂载光驱 执行以下命令来创建 /mnt/cdrom 目录: mkdir -p /mnt/cdrom-p 参数会确保如果 /mnt/cdrom 的上级目录(例如 /mnt)不存在的话也会被创建。 然后,你可以再次尝试挂载光盘: mount /dev/sr0 /mnt/cdrom这次…

面试手写实现Promise.all

目录 前言常见面试手写系列Promise.resolve 简要回顾源码实现Promise.reject 简要回顾源码实现Promise.all 简要回顾源码实现Promise.allSettled 简要回顾源码实现Promise.race 简单回顾源码实现结尾 前言 (?﹏?)曾经真实发生在一个朋友身上的真实事件,面试官让…

flink采用thrift读取tablets一个天坑

原先的配置 [INFO] StarRocksSourceBeReader [open Scan params.mem_limit 8589934592 B] [INFO] StarRocksSourceBeReader [open Scan params.query-timeout-s 600 s] [INFO] StarRocksSourceBeReader [open Scan params.keep-alive-min 100 min] [INFO] StarRocksSourceBeRea…

软件外包开发测试管理工具

测试是软件工程中非常重要的一个环节,在上线前必须需要经过严格的测试才能确保上线后软件系统长时间运行。有大量的软件开发和测试管理工具,每一个工具都有自己的特点,今天和大家分享一些常见的工具,希望对大家有所帮助。北京木奇…

MySQL中锁的简介——行级锁之 间隙锁 和 临键锁

1.间隙锁演示 2.临键锁演示 间隙锁锁住的是间隙,不包含对应的数据记录,而临键锁既会包含当前这条数据记录,也会锁定该数据记录之前的间隙。间隙锁的目的是防止其他事务插入间隙造成幻读现象。间隙锁是可以共存的,一个事务采用的间…

Redhat7/CentOS7 网络配置与管理(nmtui、nmcli、GNOME GUI、ifcfg文件、IP命令)

背景:作为系统管理员,需要经常处理主机网络问题,而配置与管理网络的方法和工具也有好几种,这里整理分享一下网络配置与管理的几种方式。 1、NetworkManager 概述 在 Red Hat Enterprise Linux 7 中,默认网络服务由 N…

python爬虫-加速乐cookie混淆解析实例小记

注意!!!!某XX网站逆向实例仅作为学习案例,禁止其他个人以及团体做谋利用途!!! 第一步:抓包工具第一次请求页面,得到响应。本次我使用的fiddle进行抓包&#…

通讯录--集合动态的文件版

简易的通讯录往往需要朴实的“烹饪”就能完成一道“美味的佳肴”。 我们需要一个通讯录,能够存储联系人的信息,能够对联系人的信息进行增删查改,查询,按姓名排序。相比对之前的三子棋、扫雷,有了一定的了解&#xff0c…

flutter:BottomNavigationBar和TabBar

区别 BottomNavigationBarr和TabBar都是用于创建导航栏的组件,但它们有一些区别。 位置不同:BottomNavigationBar通常位于屏幕底部,用于主要导航;而TabBar通常位于屏幕顶部或底部,用于切换不同的视图或页面。 样式不…

[Ubuntu 22.04] containerd配置HTTP方式拉取私仓Harbor

文章目录 1. 基础环境配置2. Docker安装3. 部署Harbor,HTTP访问4. 部署ContainerD5. 修改docker配置文件,向harbor中推入镜像6. 配置containerd6.1. 拉取镜像验证6.2. 推送镜像验证 1. 基础环境配置 [Ubuntu 22.04] 安装K8S基础环境准备脚本 2. Docker安…

2023秋招面试题持续更新中。。。

目录 1.八股文渐进式MVVM三次握手,四次挥手viteajax组件化和模块化虚拟dom原理流程浏览器内核浏览器渲染过程回流和重绘nextTick 2.项目相关1.声明式导航和编程式导航重写push和replace方法:性能优化图片懒加载路由懒加载 http请求方式 1.八股文 渐进式…

shell中按照特定字符分割字符串,并且在切分后的每段内容后加上特定字符(串),然后再用特定字符拼接起来

文件中的内容&#xff0c;可以这么写&#xff1a; awk -F, -v OFS, {for(i1;i<‌NF;i){$i$i"_suffix"}}1 input.txt-F,&#xff1a;设置输入字段分隔符为逗号&#xff08;,&#xff09;&#xff0c;这将使awk按照逗号分割输入文本。-v OFS‘,’&#xff1a;设置输…

MyBatis源码分析_ResultSetHandler(7)

目录 1. 传统JDBC 2. Mybatis访问数据库 2.1 Statement访问数据库 2.2 火枪手 ResultSetHandler 出现 3. ResultSetHandler处理结果集 3.1 首先就是进入 handleResultSets 方法 3.2 handleResultSet 方法根据映射规则&#xff08;resultMap&#xff09;对结果集进行转化…

开源大模型LLaMA 2会扮演类似Android的角色么?

在AI大模型没有商业模式&#xff1f;等文章中&#xff0c;我多次表达过这样一个观点&#xff1a;不要把大模型的未来应用方式比喻成公有云&#xff0c;大模型最终会是云端操作系统的核心&#xff08;新通用计算平台&#xff09;&#xff0c;而它的落地形式会很像过去的沃森&…

linux 指令最后一期

bc ---- linux下的计算器 bc 是一个计算器 我们输入&#xff1a;quit 来退出这个计算器 我们可以这样来用&#xff1a; uname -r uname –r指令&#xff1a; 语法&#xff1a;uname [选项] 功能&#xff1a; uname用来获取电脑和操作系统的相关信息。 补充说明&#xff1a…

数据库应用:Redis安装部署

目录 一、理论 1.缓存 2.关系型数据库与非关系型数据库 3.Redis 4.Redis安装部署 5.Redis命令工具 6.Redis数据库常用命令 7.Redis多数据库操作 二、实验 1.Redis安装部署 2.Redis命令工具 3.Redis数据库命令 4.Redis多数据库操作 三、问题 1.RESP连接CentOS 7 R…

2.playbook剧本

文章目录 playbook剧本创建剧本运行剧本定义和引用变量指定远程主机sudo切换用户when条件判断剧本格式迭代with_itemswith_listwith_flattenedwith_togetherwith_cartesianwith_nested Templates模块tags模块 playbook剧本 playbooks 本身由以下各部分组成 Tasks&#xff1a;任…

操作系统启动相关概念(BIOS、MBR、GPT、BRUB)

不管是 Windows 还是 Linux 操作系统&#xff0c;底层设备一般均为物理硬件&#xff0c;操作系统启动之前会对硬件进行检测&#xff0c;然后硬盘引导启动操作系统&#xff0c;如下为操作系统启动相关的各个概念。 一、BIOS 基本输入输出系统&#xff08;Basic Input Output Sy…

【Java】Spring——创建Spring + 对Spring的存储 /读取对象操作

文章目录 前言一、创建Spring项目二、向Spring容器中存储 Bean 对象三、从Spring容器中读取 Bean 对象得到Spring上下文对象得到 Bean 对象 总结 前言 本人是一个普通程序猿!分享一点自己的见解,如果有错误的地方欢迎各位大佬莅临指导,如果你也对编程感兴趣的话&#xff0c;互…