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"}
}
修改 Docker
的 Cgroup Driver
在 Docker
中,Cgroup Driver
决定了 Docker
容器如何与 Linux
的 cgroups
(控制组)子系统进行交互,用于管理和限制容器的资源使用。Docker
支持两种 Cgroup Driver
:systemd
、cgroupfs
。
默认情况下,Docker
通常使用 cgroupfs
,但如果系统使用了 systemd
,推荐切换为 systemd
驱动,以便更好地与系统集成。
{"exec-opts": ["native.cgroupdriver=systemd"]
}
🌺🌺🌺撒花!
如果本文对你有帮助,就点关注或者留个👍
如果您有任何技术问题或者需要更多其他的内容,请随时向我提问。
相关文章:
Docker 服务搭建
💢欢迎来到张翊尘的开源技术站 💥开源如江河,汇聚众志成。代码似星辰,照亮行征程。开源精神长,传承永不忘。携手共前行,未来更辉煌💥 文章目录 Docker 服务搭建在 Ubuntu 上安装 Docker更新软件…...
4电池_基于开关电容的均衡
基于开关电容的均衡系统(Switched-Capacitor Equalization System) 开关电容均衡(Switched-Capacitor Equalization, SCE)是一种广泛应用于 电池组(如锂电池、超级电容组) 的主动均衡技术,通过电…...
Matlab/Simulink - BLDC直流无刷电机仿真基础教程(七) - 波形解析专题P2
Matlab/Simulink - BLDC直流无刷电机仿真基础教程(七) - 波形解析专题P2 前言一、缺相与相线错接解析二、电源电压波动三、电机感量及磁链变化四、负载突变及堵转五、换相时机不当及换相错误参考链接 前言 本系列文章分享如何使用Matlab的Simulink功能来…...
如何从GitHub上调研优秀的开源项目,并魔改应用于工作中?
在 Go 语言学习中,我们经常会去学习一些优秀的开源项目。但是学完之后,发现很快就忘记了或者学习效果并不好。学习一个开源项目最好的方式就是围绕这个开源项目进行实战。例如,直接魔改这个开源项目并应用于工作中。本文来介绍下如何调用&…...
【Java学习笔记】构造器
构造器(constructor)(又名构造方法) 作用:可以在创建对象时就初始化属性,注意不是创建 基本结构 [修饰符] 方法名(形参列表){方法体; }代码示例 public class 构造器 {public static void m…...
Redis 数据类型详解(一):String 类型全解析
文章目录 前言一、什么是 Redis 的 String 类型?二、常用命令1.SET2.GET3.MSET4.MGET5.INCR6.INCRBY7.INCRBYFLOAT8.SETNX9.SETEX 三、注意事项总结 前言 提示:这里可以添加本文要记录的大概内容: 在学习 Redis 的过程中,最基础也…...
JAVA---多态
面向对象三大特征:封装、继承、多态 多态 定义:同类型的对象,表现出的不同形态。 它允许不同类的对象通过同一个接口进行调用,并且在运行时根据实际对象类型执行不同的方法。 多态主要通过继承、接口和方法重写来实现。 表现形式…...
K8S的使用(部署pod\service)+安装kubesphere图形化界面使用和操作
master节点中通过命令部署一个tomcat 查看tomcat被部署到哪个节点上 在节点3中进行查看 在节点3中进行停止容器,K8S会重新拉起一个服务 如果直接停用节点3(模拟服务器宕机),则K8S会重新在节点2中拉起一个服务 暴露tomcat访…...
【Linux系统】第二节—基础指令(2)
hello ~ 好久不见 自己想要的快乐要自己好好争取! 云边有个稻草人-个人主页 Linux—本篇文章所属专栏—欢迎订阅—持续更新中 目录 本节课核心指令知识点总结 本节基本指令详解 07.man 指令 08.cp 指令 09.mv 指令 10.cat 指令 11.more 指令 12.less 指令 …...
Java设计模式: 实战案例解析
Java设计模式: 实战案例解析 在软件开发中,设计模式是一种用来解决特定问题的可复用解决方案。它们是经过实践验证的最佳实践,能够帮助开发人员设计出高质量、易于维护的代码。本文将介绍一些常见的Java设计模式,并通过实战案例解析它们在实际…...
ASP.NET MVC 入门与提高指南九
51. 时空数据处理与 MVC 应用拓展 51.1 时空数据概念 时空数据是指与时间和空间相关的数据,如地理信息系统(GIS)数据、交通流量数据、气象数据等,这些数据随时间和空间变化而变化。 51.2 在 MVC 应用中处理时空数据 地理信息系…...
算法学习时段效能分布
算法学习时段效能分布 晨间时段(06:00-09:00)核心优势最佳任务 午后时段(14:00-17:00)核心优势最佳任务 夜间时段(20:00-23:00)核心优势最佳任务 实证数据支持 晨间时段(06:00-09:00)…...
Linux环境部署iview-admin项目
环境:阿里云服务 系统:CentOS7.X系统 1、下载源码安装包 wget https://nodejs.org/dist/v14.17.3/node-v14.17.3-linux-x64.tar.xz2、解压并放入指定目录 tar -xf node-v14.17.3-linux-x64.tar.xz && mv node-v14.17.3-linux-x64 /usr/local/no…...
在 Ubuntu 系统中,查看已安装程序的方法
在 Ubuntu 系统中,查看已安装程序的方法取决于软件的安装方式(如通过 apt、snap、flatpak 或手动安装)。以下是几种常见方法: 通过 apt 包管理器安装的软件 适用于通过 apt 或 dpkg 安装的 .deb 包。 列出所有已安装的软件包&…...
c++26新功能——Pack indexing
一、模板编程 在模板编程中,有一个问题比较突出,就是对变参模板中参数的控制,比较麻烦。因为是变参,所以想把参数单独拿出来处理,就需要借助一些特殊的技巧,而这种特殊的技巧,往往为大多数开发…...
VSCode通过SSH连接VMware虚拟机
以下是关于VSCode通过SSH连接VMware虚拟机的原理、必要条件及注意事项的说明: 一、连接原理 SSH协议通信:SSH(Secure Shell)是一种加密网络协议,VSCode通过Remote-SSH插件将本地开发环境与虚拟机终端绑定&a…...
7 微调 黑盒蒸馏 突破伦理限制
简介 SecGPT-Distill 是我自己做的一个实验模型, 开源地址: 主要功能是进行模型微调和知识蒸馏而来 这次是运用微调技术,来突破现有模型在处理安全相关问题时的各种限制和约束 代码开源: https://github.com/godzeo/SecGPT-distill-boundless 不回答原理 大部…...
基于51单片机的温湿度控制器proteus仿真
地址: https://pan.baidu.com/s/1cENHPmF0XobqKg_7baZX3Q 提取码:1234 仿真图: 芯片/模块的特点: AT89C52/AT89C51简介: AT89C51 是一款常用的 8 位单片机,由 Atmel 公司(现已被 Microchip 收…...
牛客月赛115 C题-命运之弹 题解
原题链接 https://ac.nowcoder.com/acm/contest/107879/C 题目描述 解题思路 记录每个数字出现的次数。枚举使用「转瞬即逝」的位置,统计后边比当前数字更大的数的数量,进而统计、更新答案。 详细细节见代码,代码里有详细的注释解释。 代…...
视频转GIF
视频转GIF 以下是一个使用 Python 将视频转换为 GIF 的脚本,使用了 imageio 和 opencv-python 库: import cv2 import imageio import numpy as np """将视频转换为GIF图参数:video_path -- 输入视频的路径gif_path -- 输出GIF的路径fp…...
day15 python 复习日
作业: 尝试找到一个kaggle或者其他地方的结构化数据集,用之前的内容完成一个全新的项 目,这样你也是独立完成了一个专属于自己的项目。 要求: 1.有数据地址的提供数据地址,没有地址的上传网盘贴出地址即可。 2.尽可能与…...
性能优化实践:渲染性能优化
性能优化实践:渲染性能优化 在Flutter应用开发中,渲染性能直接影响用户体验。本文将从渲染流程分析入手,深入探讨Flutter渲染性能优化的关键技术和最佳实践。 一、Flutter渲染流程解析 1.1 渲染流水线 Flutter的渲染流水线主要包含以下几…...
【SimSession 】3:中继服务 linux和windows实现及MFC集成实现
实现目标 在 echo 测试程序启动时启动中继服务,并在 echo 程序退出时杀死中继进程。我们可以通过以下方式实现这一目标: linux设计 1 Process Management: 流程管理: Added fork() functionality to create a child process for the relay service添加了 fork()功能,…...
表驱动 FSM 在 STM32 上的高效实现与内存压缩优化——源码、性能与实践
目录 一、引言与背景 二、前提环境与依赖 三、表驱动 FSM 核心原理 四、内存压缩方案详解 4.1 稠密二维表(Dense Table) 4.2 稀疏表压缩(Sparse Table) 4.3 行压缩+Offset 4.4 位域打包(Bit‑Packing)...
windows鼠标按键自定义任意设置
因为用惯了Linux的鼠标中键的复制黏贴,发现windows下有完全可以实现类似自定义功能的软件,推荐一下: X Mouse Button Control。 免费版足够好用。 软件简介: X Mouse Button Control是一款专业的重新映射鼠标按钮的软件工具&…...
常用命令集合
安装Miniconda wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-py310_22.11.1-1-Linux-x86_64.shpython 换清华源 pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple鱼香ros wget http://fishros.com/install -O fishr…...
【图书管理系统】环境介绍、设计数据库和表、配置文件、引入依赖
0. 环境介绍 (1)JDK版本:JDK_8(JDK_1.8) (2)Java语言版本:8 (3)SpringBoot版本:2.6.13 (4)Maven仓库:阿里云 …...
【Linux】日志与策略模式、线程池
在了解了线程的基本概念和线程互斥与同步之后,我们可以以此设计一个简单的线程池。【Linux】线程-CSDN博客 【Linux】线程同步与互斥-CSDN博客 线程池也是一种池化技术。提前申请一些线程,等待有任务时就直接让线程去执行,不用再收到任务之…...
【神经网络与深度学习】生成模型-单位高斯分布 Generating Models-unit Gaussian distribution
引言 在生成模型的研究与应用中,单位高斯分布(标准正态分布)作为数据采样的基础扮演着至关重要的角色。其数学特性、潜在空间的连续性、灵活性以及通用性,使得生成模型能够高效且稳定地学习和生成样本。本文将详细探讨从单位高斯…...
通讯协议开发实战:从零到一打造企业级通信解决方案
简介 从工业控制到物联网,掌握主流通信协议开发是构建现代智能系统的核心能力。本文将通过深入分析CAN FD和MQTT两种关键协议的原理、特性及应用场景,结合TypeScript和Node.js技术栈,设计一个完整的实时运动控制系统开发案例。从协议解析到数据转换,再到系统集成,全程提供…...
《MATLAB实战训练营:从入门到工业级应用》工程实用篇-自动驾驶初体验:车道线检测算法实战(MATLAB2016b版)
《MATLAB实战训练营:从入门到工业级应用》工程实用篇-🚗 自动驾驶初体验:车道线检测算法实战(MATLAB2016b版) 大家好!今天我要带大家一起探索自动驾驶中一个非常基础但又至关重要的技术——车道线检测。我…...
【网络】什么是串口链路(Serial Link)?
在路由器上,串口链路(Serial Link)就是指路由器之间通过串行接口(serial interface)和串行电缆(通常是V.35、RS-232或同步串行线路)直接点对点相连的那一段连线。它和我们平常在局域网里用的以太…...
为了结合后端而学习前端的学习日志——【黑洞光标特效】
前端设计专栏 今天给大家带来一个超酷的前端特效——黑洞光标!让你的鼠标变成一个会吞噬光粒子的迷你黑洞,点击时还会喷射出绿色能量粒子!🌠 🚀 效果预览 想象一下:你的鼠标变成一个旋转的黑洞࿰…...
set autotrace报错
报错: SQL> set autotrace traceonly SP2-0618: Cannot find the Session Identifier. Check PLUSTRACE role is enabled SP2-0611: Error enabling STATISTICS report原因分析: 根据上面的错误提示“SP2-0618: Cannot find the Session Identifie…...
算法每日一题 | 入门-顺序结构-大象喝水
大象喝水 题目描述 一只大象口渴了,要喝 20 升水才能解渴,但现在只有一个深 h 厘米,底面半径为 r 厘米的小圆桶 (h 和 r 都是整数)。问大象至少要喝多少桶水才会解渴。 这里我们近似地取圆周率 π 3.14 \pi3.14 π…...
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…...
Scartch038(四季变换)
知识回顾 1.了解和简单使用音乐和视频侦测模块 2.使用克隆体做出波纹特效 3.取色器妙用侦测背景颜色 前言 我国幅员辽阔,不同地方的四季会有不同的美丽景色,这节课我带你使用程序做一个体现北方四季变化的程序 之前的程序基本都是好玩的,这节课做一个能够赏心悦目的程序。…...
【Linux】SELinux 的基本操作与防火墙的管理
目录 一、SELinux的管理 1.1 Linux 系统的安全机制 1.2 SELinux 的概述 1.3 SELinux 的配置 1.3.1 查看 SELinux 的工作方式 1.3.2 设置 SELinux 的工作方式 1.3.2.1 基于配置文件修改(推荐方式) 1.3.2.2 基于命令方式修改 二、防火墙管理 2.1 防…...
【React Hooks原理 - useCallback、useMemo】
useMemo用于缓存计算结果,它只在依赖项发生变化时重新计算 原理: 依赖项检查:useMemo接收2个参数,一个“创建”函数和一个依赖项数组。依赖项数组中的值在每次渲染时都会被比较,以决定是否需要重新计算 缓存机制&am…...
一格一格“翻地毯”找单词——用深度优先搜索搞定单词搜索
一格一格“翻地毯”找单词——用深度优先搜索搞定单词搜索 一、引子:别看题简单,实则套路深 说起“单词搜索”这个题目,初学者第一眼可能会说:“哦不就是个查字母吗?”其实,真没这么简单。 LeetCode 上那…...
深入了解 OpenIddict:实现 OAuth 2.0 和 OpenID Connect 协议的 .NET 库
在现代 Web 开发中,身份验证和授权是安全性的重要组成部分。随着对安全性的要求不断增加,OAuth 2.0 和 OpenID Connect(OIDC)协议已经成为许多应用程序的标准身份验证方式。而 OpenIddict,作为一个用于实现 OAuth 2.0 …...
学习黑客 TCP/IP
一句话总结:把 TCP/IP 看成大型多人在线游戏的“世界引擎”:链路层是地基,互联网层是道路,运输层是交通系统,应用层是景点与商店;协议们则是各种交通工具与技能(TCP 稳重的长途客车,…...
【沐风老师】3DMAX按元素UV修改器插件教程
3DMAX按元素UV修改器UV By Element是一个脚本化的修改器插件。对于需要创建随机化纹理效果的用户而言,3DMAX的UV By Element修改器无疑是一款高效工具,它将以伪随机量偏移、旋转和/或缩放每个元素的UV坐标。 【版本要求】 3dMax 2016及以上 【安装方法】…...
Jetpack Compose 边距终极指南:Margin 和 Padding 的正确处理方式
Jetpack Compose 边距终极指南:Margin 和 Padding 的正确处理方式 在 Android 开发中,Jetpack Compose 彻底改变了 UI 构建方式,但许多开发者对如何处理边距(Margin/Padding)感到困惑。本文将深入解析 Compose 的边距…...
Go语言--语法基础4--基本数据类型--类型转换
Go 是一种强类型的语言,所以如果在赋值的时候两边类型不一致会报错。一个类型的值可以被转换成另一种类型的值。由于 Go 语言不存在隐式类型转换,因此所有的类型转换都必须显式的声明。 强制类型转换语法 使用 type (a) 这种形式来进行强制类型转换&am…...
【C++ Qt】输入类控件(上) LineEdit、QTextEdit
每日激励:“不设限和自我肯定的心态:I can do all things。 — Stephen Curry” 绪论: 本次分享聚焦 Qt 框架里常用的输入框组件,重点讲解 QLineEdit(单行输入框)和 QTextEdit(多行输入框&…...
【c++深入系列】:万字详解vector(附模拟实现的vector源码)
🔥 本文专栏:c 🌸作者主页:努力努力再努力wz 💪 今日博客励志语录: 种子破土时从不问‘会不会有光’,它只管生长 ★★★ 本文前置知识: 模版 1.什么是vector 那么想必大家都学过顺…...
OpenHarmony平台驱动开发(二),CLOCK
OpenHarmony平台驱动开发(二) CLOCK 概述 功能简介 CLOCK,时钟是系统各个部件运行的基础,以CPU时钟举例,CPU 时钟是指 CPU 内部的时钟发生器,它以频率的形式工作,用来同步和控制 CPU 内部的各…...
Java大厂面试:Java技术栈中的核心知识点
Java技术栈中的核心知识点 第一轮提问:基础概念与原理 技术总监:郑薪苦,你对JVM内存模型了解多少?能简单说说吗?郑薪苦:嗯……我记得JVM有堆、栈、方法区这些区域,堆是存放对象的地方…...
硬件加速模式Chrome(Edge)闪屏
Chrome开启“硬件加速模式”后,打开浏览器会闪屏或看视频会闪屏,如果电脑只有集显,直接将这个硬件加速关了吧,没啥必要开着 解决方法 让浏览器使用独立显卡 在Windows左下角搜索 图形设置 ,将浏览器添加进去&#…...