Docker 服务搭建

💢欢迎来到张翊尘的开源技术站
💥开源如江河,汇聚众志成。代码似星辰,照亮行征程。开源精神长,传承永不忘。携手共前行,未来更辉煌💥

文章目录

  • `Docker` 服务搭建
    • 在 `Ubuntu` 上安装 `Docker`
      • 更新软件包索引
      • 安装依赖包
      • 添加密钥
      • 添加 `docker` 仓库源
      • 更新软件包索引
      • 确保从官方源安装
      • 安装服务
      • 将当前用户添加到 `docker` 组
      • 验证
      • 设置开机自启
    • 在 `CentOS` 上安装 `Docker`
      • 更新软件包索引
      • 安装依赖项
      • 添加 `Docker` 的官方软件源
      • 安装 `Docker`
      • 启动并启用 `Docker` 服务
      • 验证 `Docker` 安装
    • `Docker` 安装后的常见配置
      • 添加非 `root` 用户到 `Docker` 组
      • 修改镜像下载加速器:
      • 修改 `Docker` 存储位置
      • 启用或禁用 `Docker` 的日志级别
      • 配置 `Docker` 默认桥接网络的 `IP` 地址
      • 限制容器的资源使用
      • 自动清理挂起的容器和未使用的镜像
      • 查看当前 `Docker` 的配置信息
      • 验证 `Docker` 配置
      • 限制日志文件大小
      • 修改 `Docker` 的 `Cgroup Driver`

Docker 服务搭建

Ubuntu 上安装 Docker

更新软件包索引

sudo apt-get update

安装依赖包

sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common

添加密钥

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

如果无法访问外网,则使用国内仓库:

curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

添加 docker 仓库源

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

如果无法访问外网,则使用国内仓库:

sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

更新软件包索引

sudo apt-get update

确保从官方源安装

apt-cache policy docker-ce

安装服务

sudo apt-get install -y docker-ce

将当前用户添加到 docker

sudo usermod -aG docker ${USER}

验证

docker --version

设置开机自启

sudo systemctl enable docker.service

CentOS 上安装 Docker

更新软件包索引

sudo yum update

安装依赖项

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

添加 Docker 的官方软件源

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

sudo yum install docker-ce docker-ce-cli containerd.io

启动并启用 Docker 服务

sudo systemctl start docker
sudo systemctl enable docker

验证 Docker 安装

sudo docker --version
sudo docker run hello-world

Docker 安装后的常见配置

默认配置文件位置:/etc/docker/daemon.json

添加非 root 用户到 Docker

默认情况下,Docker 需要 root 权限。如果希望让非 root 用户可以运行 Docker,执行以下命令:

sudo usermod -aG docker $USER

修改镜像下载加速器:

  • 阿里云:https://<你的加速器ID>.mirror.aliyuncs.com
  • 腾讯云:https://mirror.ccs.tencentyun.com
  • Docker 中国官方:https://registry.docker-cn.com

国内使用 Docker 时,默认的镜像下载速度可能较慢。你可以通过配置镜像加速器来提升下载速度。在 /etc/docker/daemon.json 中添加:

{"registry-mirrors": ["https://<阿里云镜像加速器地址>"]
}

修改 Docker 存储位置

Docker 默认会将所有的镜像、容器、数据卷等存储在 /var/lib/docker 目录下。如果需要更改存储位置,可以在配置文件中修改。在 /etc/docker/daemon.json 中添加或修改以下内容:

{"data-root": "/new/path/to/docker"
}

这会将 Docker 的所有数据(镜像、容器、卷等)存储到 /new/path/to/docker 路径下。

启用或禁用 Docker 的日志级别

  • "debug":最详细的日志信息。
  • "info":默认级别,记录常规的日志信息。
  • "warn":仅记录警告信息。
  • "error":仅记录错误信息。
  • "fatal":仅记录严重错误。

Docker 默认会记录日志,有时候需要根据问题的严重性调整日志的详细程度。可以在配置文件中设置日志级别。

{"log-level": "error"
}

配置 Docker 默认桥接网络的 IP 地址

默认情况下,Docker 使用 172.17.0.0/16 网段为容器分配 IP。如果与现有网络发生冲突,可以修改默认的桥接网络配置。

{"bip": "192.168.1.5/24"
}

限制容器的资源使用

  • --memory="1g":将容器的内存限制为 1GB。
  • --cpus="1.5":限制容器使用最多 1.5 个 CPU。
  • --memory-swap="2g":指定容器的 swap 大小。

如果需要限制容器的 CPU 和内存使用,可以通过配置容器的资源限制。启动容器时,通过命令行参数配置:

docker run -d --name my_container --memory="1g" --cpus="1.5" --memory-swap="2g" my_image

自动清理挂起的容器和未使用的镜像

Docker 容器和镜像长期不清理会占用大量存储空间,可以启用自动清理功能。在 /etc/docker/daemon.json 中添加:

{"live-restore": true
}

查看当前 Docker 的配置信息

docker info

验证 Docker 配置

dockerd --config-file /etc/docker/daemon.json

限制日志文件大小

  • max-size:限制每个日志文件的大小,10m 表示 10MB
  • max-file:限制日志文件的数量,超过 3 个文件时,旧的日志文件将被删除。

Docker 容器运行时会产生大量日志,可能会占用大量存储空间。你可以限制日志文件的大小和保留数量。修改 /etc/docker/daemon.json 文件,添加以下配置:

{"log-driver": "json-file","log-opts": {"max-size": "10m","max-file": "3"}
}

修改 DockerCgroup Driver

Docker 中,Cgroup Driver 决定了 Docker 容器如何与 Linuxcgroups(控制组)子系统进行交互,用于管理和限制容器的资源使用。Docker 支持两种 Cgroup Driversystemdcgroupfs

默认情况下,Docker 通常使用 cgroupfs,但如果系统使用了 systemd,推荐切换为 systemd 驱动,以便更好地与系统集成。

{"exec-opts": ["native.cgroupdriver=systemd"]
}

🌺🌺🌺撒花!

如果本文对你有帮助,就点关注或者留个👍
如果您有任何技术问题或者需要更多其他的内容,请随时向我提问。
在这里插入图片描述

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

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

相关文章

CRM系统接入DeepSeek大模型应用场景方案

1. 项目背景与目标 在当前数字化转型的浪潮中&#xff0c;客户关系管理&#xff08;CRM&#xff09;系统已成为企业提升客户服务效率、优化销售流程的核心工具。然而&#xff0c;传统CRM系统普遍面临数据处理能力有限、客户洞察深度不足、响应效率低下等问题。例如&#xff0c…

步进电机中断函数解释

STM32 motor111.c 中 HAL_TIM_PeriodElapsedCallback 函数逐行解释 下面我们对 STM32 项目中 motor111.c 文件里的 HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) 函数进行逐行解析&#xff0c;帮助初学者理解每一行代码的作用。此函数是在定时器产生更新中断时被调…

什么是Linux中的systemd?

写在前面 为什么要回过头来复习linux的system的&#xff0c;最近在研究DELL EMC的PowerStore存储系统&#xff0c;其底层是基于CoreOS开发的&#xff0c;这套操作系统是基于Systemd来设计的。所以要深入了解PowerStore就必须对systemd做详细了解。 systemd 是一个用于 Linux …

Linux 环境下 Mysql 5.7 数据定期备份

目录 一、创建数据备份脚本二、查看备份日志三、数据库数据恢复 备份策略&#xff1a; 系统环境 openEuler 22.03 (LTS-SP4) 单机备份 每天凌晨2点&#xff0c;指定数据库表全量备份&#xff0c;只保留近7次备份数据 每次的脚本执行&#xff0c;将会记录执行结果到日志&#xf…

C 语言字符输入:掌握 getchar 和 scanf 的用法与陷阱

各类资料学习下载合集 ​​https://pan.quark.cn/s/8c91ccb5a474​​ C 语言字符输入:掌握 getchar 和 scanf 的用法与陷阱 你好!在 C 语言编程中,与用户进行交互最基本的方式就是通过标准输入和标准输出。我们之前探讨了如何使用 ​​printf​​ 和 ​​putchar​​ 进行…

【React】 Hooks useTransition 解析与性能优化实践

1.背景 useTransition 是 React 18 引入的一个并发模式下的 Hook&#xff0c;用于区分紧急和非紧急的状态更新&#xff0c;提升应用的响应性和用户体验;它可以管理 UI 中的过渡状态&#xff0c;特别是在处理长时间运行的状态更新时。它允许你将某些更新标记为“过渡”状态&…

蘑菇管理——AI与思维模型【94】

一、定义 蘑菇管理思维模型是一种形象地描述组织对待新员工或初入职场者的管理方式及相关现象的思维模型。它将新员工或初入职场者比作蘑菇&#xff0c;这些人在初期往往被置于阴暗的角落&#xff08;不受重视的部门&#xff0c;或打杂跑腿的工作&#xff09;&#xff0c;浇上…

c++STL——set和map的使用

文章目录 set和map的使用set系列声名和定义默认成员函数迭代器set的增删查lower_bound和upper_boundInsert接口pair类 对于查找的另一种使用 set和multiset的区别 map系列声名和定义pair类的进一步介绍默认成员函数map的增删查map的数据修改map和multimap的差异 set和map的使用…

什么是DGI数据治理框架?

DGI数据治理框架是由数据治理研究所&#xff08;Data Governance Institute, DGI&#xff09;提出的一套系统性方法论&#xff0c;旨在帮助企业或组织建立有效的数据治理体系&#xff0c;确保数据资产的高质量管理、合规使用和价值释放。以下是关于DGI数据治理框架的核心内容&a…

chrome 浏览器怎么不自动提示是否翻译网站

每次访问外国语网页都会弹出这个对话框&#xff0c;很是麻烦&#xff0c;每次都得手动关闭一下。 不让他弹出来方法&#xff1a; 设置》语言》首选语言》添加语言&#xff0c;搜索英语添加上 如果需要使用翻译&#xff0c;就点击三个点&#xff0c;然后选择翻译

LeetCode 热题 100 54. 螺旋矩阵

LeetCode 热题 100 | 54. 螺旋矩阵 大家好&#xff0c;今天我们来解决一道经典的算法题——螺旋矩阵。这道题在LeetCode上被标记为中等难度&#xff0c;要求我们按照顺时针螺旋顺序返回矩阵中的所有元素。下面我将详细讲解解题思路&#xff0c;并附上Python代码实现。 问题描述…

生成式AI将重塑的未来工作

在人类文明的长河中,技术革命始终是推动社会进步的核心动力。从蒸汽机的轰鸣到互联网的浪潮,每一次技术跃迁都在重塑着人类的工作方式与生存形态。而今,生成式人工智能(Generative AI)的崛起,正以超越以往任何时代的速度与深度,叩响未来工作范式变革的大门。这场变革并非…

【2025软考高级架构师】——2024年05月份真题与解析

摘要 本文内容是关于2025年软考高级架构师考试的相关资料&#xff0c;包含2024年05月份真题与解析。其中涉及体系结构演化的步骤、OSI协议中能提供安全服务的层次、数据库设计阶段中进行关系反规范化的环节等知识点&#xff0c;还提及了软考高级架构师考试的多个模块&#xff…

KAG:通过知识增强生成提升专业领域的大型语言模型(三)

目录 摘要 Abstract 1 Schema 2 Prompt 3 KAG-Builder 3.1 reader 3.2 splitter 3.3 extractor 3.4 vectorizer 3.5 writer 3.6 可选组件 4 示例 总结 摘要 本周深入学习了 KAG 项目中的 Schema、Prompt 以及 KAG-Builder 相关代码知识&#xff0c;涵盖了其定义、…

Gitea windows服务注册,服务启动、停止、重启脚本

修改配置文件 查看COMPUTERNAME echo %COMPUTERNAME%进入配置文件D:\gitea\custom\conf\app.ini&#xff0c;将 Gitea 设置为以本地系统用户运行 如果结果是 USER-PC&#xff0c;那么 RUN_USER USER-PC$ RUN_USER COMPUTERNAME$SQLite3 PATH配置&#xff0c;更改为包含完整…

矿泉水瓶的绘制

1.制作中心矩形&#xff0c;大小为60&#xff0c;注意设置矩形的两条边相等 2.点击拉伸&#xff0c;高度为150mm 3.使用圆角命令&#xff0c;点击连接到开始面&#xff0c;同时选中4条边&#xff0c;进行圆角转化&#xff0c;圆角大小为10mm&#xff0c;点击多半径圆角&#xf…

【程序+论文】大规模新能源并网下的火电机组深度调峰经济调度

目录 1 主要内容 讲解重点 2 讲解视频及代码 1 主要内容 该视频为《大规模新能源并网下的火电机组深度调峰经济调度》代码讲解内容&#xff0c;该程序有完全对照的论文&#xff0c;以改进IEEE30节点作为研究对象&#xff0c;系统包括5个火电机组和2个新能源机组&#xff0c;…

​​工业机器人智能编程:从示教器到AI自主决策​​

工业机器人智能编程:从示教器到AI自主决策 引言 工业机器人作为智能制造的核心装备,其编程方式正经历革命性变革。传统示教器编程效率低下,平均每个路径点需要30秒人工示教,而复杂轨迹编程可能耗时数周。随着AI技术的发展,工业机器人编程正朝着"所见即所得"的…

n8n 构建一个 ReAct AI Agent 示例

n8n 构建一个 ReAct AI Agent 示例 0. 引言1. 详细步骤创建一个 "When Executed by Another Workflow"创建一个 "Edit Fields (Set)"再创建一个 "Edit Fields (Set)"创建一个 HTTP Request创建一个 If 节点在 true 分支创建一个 "Edit Fiel…

Monorepo项目多项目一次性启动工具对比与实践

Monorepo项目多项目一次性启动工具对比与实践 在现代软件开发中&#xff0c;Monorepo&#xff08;单一仓库&#xff09;模式越来越受到开发者的青睐。Monorepo将多个相关的项目或包集中在一个仓库中进行管理&#xff0c;方便依赖共享、代码复用和统一发布。在Monorepo项目开发…