【Ubuntu 16.04 (Xenial)​​】安装docker及容器详细教程

Ubuntu 16.04 安装docker详细教程

  • 一、docker安装
    • 1.1 前期准备
    • 1.2 使用 Docker 官方安装脚本安装(推荐)

查看ubuntu版本:lsb_release -a
2

这里我的系统是 ​​Ubuntu 16.04 (Xenial)​​,在 ​​Ubuntu 16.04 (Xenial)​​ 上安装 Docker 可能会遇到一些问题,因为 Docker 官方已经停止支持 Xenial​​。但仍有方法可以安装,以下是 ​​详细的安装方法​​:

一、docker安装

1.1 前期准备

  1. 如果已经安装了docker容器,需要删除后重新安装(新安装可忽略),操作如下:
systemctl stop docker
apt-get remove docker-ce docker-ce-cli containerd.io
rm -rf /var/lib/docker
rm /etc/apt/sources.list.d/docker.list
rm -rf /etc/apt/keyrings
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do  apt-get remove $pkg; done

1
3. 检查网络连接,确保你的网络连接正常,并且可以访问 download.docker.com:ping download.docker.com

1.2 使用 Docker 官方安装脚本安装(推荐)

  1. 安装相关库:
# 更新系统包索引
apt-get update
# 安装一些必要的依赖包,以便通过HTTPS获取仓库:
apt-get install ca-certificates curl gnupg ntpdate apt-transport-https software-properties-common libltdl7 libseccomp2 iptables pigz
apt-get install --reinstall openssl libssl-dev
# 同步时间:
ntpdate pool.ntp.org
  1. 更新存储库:apt-get update
    1
  2. 进入docker官网https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/armhf/,查看服务器对应的操作系统有哪些匹配的docker版本,再根据需要下载适用于 armvf 的 Docker 16.04(兼容 Xenial)的版本:
    1
    执行命令下载:
wget https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/armhf/docker-ce_20.10.7~3-0~ubuntu-xenial_armhf.deb
wget https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/armhf/docker-ce-cli_20.10.7~3-0~ubuntu-xenial_armhf.deb
wget https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/armhf/containerd.io_1.4.6-1_armhf.deb

如果命令下载太慢,也可以通过网页下载后,上传到服务器

  1. 安装docker:
# 安装
dpkg -i containerd.io_*.deb
dpkg -i docker-ce-cli_*.deb
dpkg -i docker-ce_*.deb
# 修复依赖
apt-get install -f 

1
6

如果出现启动异常的情况,如下:
2
可能原因及方案:Docker 版本与系统不兼容​​,需要降版本
Ubuntu 16.04 (Xenial) 官方支持的最高 Docker 版本是 18.06.3,你安装的 20.10.7 可能不兼容,需要降级到18.06.3
卸载当前版本 :apt-get purge docker-ce docker-ce-cli containerd.io
装兼容版本: apt-get install docker-ce=18.06.3~ce~3-0~ubuntu docker-ce-cli=18.06.3~ce~3-0~ubuntu containerd.io=1.2.6-3

  1. 检查 Docker 是否安装成功:docker --version
  2. 设置开机自启:systemctl enable docker
  3. 启动 Docker 服务​​: systemctl restart docker
    2
  4. 配置docker:vi /etc/docker/daemon.json

(1)配置国内镜像加速源 - 选择 1-2 个即可

  • 网易: “https://hub-mirror.c.163.com”,
  • 百度: “https://mirror.baidubce.com”,
  • 中科大: “https://docker.mirrors.ustc.edu.cn”,
  • Docker 中国官方:“https://registry.docker-cn.com”

(2)配置日志方式 - 根据实际情况设置:

  • ​​ json-file 驱动:
    “log-driver”: “json-file” ->​​将容器日志以JSON格式存储在每个容器的主机文件上。这是Docker默认的日志驱动。
  • 日志轮转设置: “log-opts”: {
    “max-size”: “5m”,//当日志文件达到5MB时,会自动轮转(即创建一个新的日志文件)
    “max-file”: “3”//最多保留3个日志文件(当前日志 + 2个归档日志),旧的日志文件会被自动删除
    }

修改内容为:

{"registry-mirrors": ["https://mirror.baidubce.com","https://registry.docker-cn.com"],"log-driver": "json-file","log-opts": {"max-size": "5m","max-file": "3"}
}

11
保存文件后重启 Docker 服务:

systemctl daemon-reload
systemctl restart docker
  1. 验证配置是否生效:docker info
    11

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

.Net框架,除了EF还有很多很多......

文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…

MySQL:InnoDB架构(内存架构篇)

目录 0.前置知识 0.1二级索引的概念 二级索引查询原理 1.整体架构 1.1为什么innoDB的架构会分为两个部分? 2.内存架构 2.1BufferPool 2.2ChangeBuffer 唯一性检查不是实时性会出现的问题? ChangeBuffer的优势 2.3Adaptive Hash Index 2.4LogBuffer 0.前置知识 0.…

鹰盾加密器“一机一码”技术全维度剖析:从底层实现到生态防护体系

“一机一码”加密技术的深度解析与实现路径 引言 在数字内容版权保护和软件授权管理领域,“一机一码”技术作为一种重要的安全防护手段,能够有效防止授权码滥用和非法传播。它通过建立设备与授权码的唯一对应关系,确保每份授权仅在特定设备…

Android 中使用 OkHttp 创建多个 Client

在 Android 开发中,有时我们需要创建多个 OkHttpClient 实例来满足不同的网络请求需求。以下是创建和管理多个 OkHttpClient 的方法: 基本创建方式 // 创建默认的 OkHttpClient val defaultClient OkHttpClient()// 创建带有自定义配置的 Client val …

C++中的跳转语句

C中的跳转语句包括break、continue和goto,它们用于改变程序的正常执行流程。下面分别介绍它们的作用、使用场景和注意事项: 1. break 作用: • 立即终止当前所在的循环(for、while、do while)或switch语句&#xff…

AI在网络安全领域的应用现状和实践

当前,人工智能技术已深度融入网络安全产品,推动传统防御模式向智能化、自适应方向加速演进。各安全厂商通过机器学习、深度学习与知识图谱等技术的融合应用,提高安全产品在威胁检测、攻击溯源、风险评估等场景的能力跃迁,突破传统…

线程同步:确保多线程程序的安全与高效!

全文目录: 开篇语前序前言第一部分:线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分:synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分&#xff…

Spark 之 DataFrame 开发

foreachPartition val data = spark.sparkContext.parallelize(1 to 100)// 使用 foreachPartition 批量处理分区 data.foreachPartition {partitionIterator =

UDP:简洁高效的报文结构解析与关键注意事项

UDP(User Datagram Protocol)以其无连接、低开销的特性,成为实时应用(如视频、游戏、DNS)的首选传输协议。深入理解其报文结构和注意事项,是高效利用UDP的基础。 一、UDP报文结构:简洁的四段式 …

Cursor 工具项目构建指南:让 AI 审查 AI 生产的内容,确保生产的内容质量和提前发现问题

简简单单 Online zuozuo: 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo :本心、输入输出、结果 简简单单 Online zuozuo : 文章目录 Cursor 工具项目构建指南:让 AI 审查 AI 生产的内容,确保生产的内容质量和提前发现问…

Appium+python自动化(十六)- ADB命令

简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…

企业中使用 MCP Server 实现业务打通

一、MCP 协议深度剖析 (一)技术架构解析 核心价值 MCP(Model Context Protocol)协议的核心价值在于解决 Function Call 的碎片化问题,提供标准化工具连接协议。它通过统一的上下文管理,使大语言模型(LLM)能够高效地访问外部资源、执行复杂任务,并实现与外部系统的动…

自己编写一个神经网络模型识别数字验证码(卷积神经网络的 Hello world)

开篇之前说明一下:本文纯粹是技术交流和探讨,所用数据为非公开数据集,仅限于学习,不可用以商业和其他用途。 一、项目目标 通过构建一个简单的 CNN 神经网络,实现对 数字验证码(如 “7384”) 的…

常用ADB命令

ADB:Android Debug Bridge,Android 调试桥。 是一个命令行工具,主要用于在开发过程中实现计算机与Android设备之间的通信。 ADB工具允许开发者执行一系列调试操作,如安装应用、管理应用的生命周期、读取日志数据、执行shell命令等…

JavaScript BOM 详细介绍

JavaScript BOM (Browser Object Model) 详细介绍 BOM (Browser Object Model) 是浏览器对象模型,它提供了与浏览器窗口交互的对象和方法,允许 JavaScript 与浏览器"对话"。 1. BOM 概述 BOM 的核心是 window 对象,它代表浏览器…

DeepSeek生成流程图

通过DeepSeek生成代码 请用 Mermaid 语法生成一个电商订单处理流程的流程图,流程包括用户下单、订单审核、库存检查、生成发货单、发货以及各个环节可能出现的分支情况,如订单审核不通过返回修改,库存不足通知用户等 打开在线绘图 Flowchart…

WebGL与Three.js:从基础到应用的关系与原理解析

WebGL 和 Three.js 是现代网页中实现 3D 图形和动画的两大关键技术。尽管它们有着紧密的关系,但它们在功能和使用场景上有所不同。简单来说,WebGL 是一个底层图形库,提供了对计算机 GPU 的直接访问,而 Three.js 则是建立在 WebGL …

Spring Boot消息系统开发指南

消息系统基础概念 消息系统作为分布式架构的核心组件,实现了不同系统模块间的高效通信机制。其应用场景从即时通讯软件延伸至企业级应用集成,形成了现代软件架构中不可或缺的基础设施。 通信模式本质特征 同步通信要求收发双方必须同时在线交互&#…

JavaWeb笔记

六、MVC模式 ✅ Model(模型) 职责:处理数据和业务逻辑。 负责数据的存储、读取和操作。 包含业务规则和逻辑。 ✅ View(视图) 职责:展示界面和接收用户输入。 把数据以可视化的形式呈现给用户。 不处…

解决启动SpringBoot是报错Command line is too long的问题

文章目录 错误全称原因解决方法(一图到底) 错误全称 在启动springBoot项目时,会报错: Error running Application. Command line is too long. Shorten the command line via JAR manifest 原因 命令行太长的原因导致SpringBoot和…