一、docker的安装

一、docker桌面

二、docker的配置文件

1、docker配置文件位置/etc/docker/daemon.json

使用json格式,graph=data-root

{"graph":"/deploy/docker","registry-mirrors": ["https://8auvmfwy.mirror.aliyuncs.com"],"insecure-registries": ["192.168.1.2","192.168.1.3:5000"],"live-restore": "true","exec-opts": ["native.cgroupdriver=systemd"],"storage-driver":"overlay2","ipv6": false,"bip":"172.18.0.1/24""default-address-pools": [{"scope": "local","base":"172.17.0.0/16","size":24}],"log-driver": "json-file","log-opts": {"max-size": "50m","max-size": "5m"}
}
graph:docker根目录的存放位置
registry-mirrors:镜像加速器
insecure-registries:指定信任仓库
live-restore:容器的存活不依赖与docker引擎,docker引擎停止不影响容器运行
native.cgroupdriver:指定cgroup驱动,默认值为cgroupfs,推荐值为systemd
storage-driver:存储驱动,overlay2、devicemapper、aufs
log-driver:日志驱动,json-file
bip:设置Docker0的默认IP,bip:设置Docker0的默认IP,
default-address-pools:配置容器使用的子网地址池base:指定CIDR网段,172.17.0.0/16表示子网掩码长度为16。相当于主网络size:变长子网掩码,数值要大于等于16。相当子网络
log-opts:日志策略。单个日志文件最大50M,最多保留3个
ipv6:是否开启ipv6,true,false

仅当storage-driver为devicemapper时可用

指定单个容器可用数据空间20GB、docker可用数据空间200GB、元数据可用空间4GB

{"storage-opt": [ "dm.basesize=20G","dm.loopdatasize=200G","dm.loopmetadatasize=4G" ]
}

2、案例

注:graph=data-root

{
"data-root": "/data/docker",
"insecure-registries": ["192.168.65.129:80"],
"registry-mirrors": ["https://8auvmfwy.mirror.aliyuncs.com"],
"log-driver": "json-file",
"log-opts": {"max-size": "100m","max-file": "3"},
"default-ulimits": {"nofile": {"Name": "nofile","Hard": 128000,"Soft": 128000}
}
}

三、docker引擎

(一)安装

1、contos7 安装

1.1 卸载旧版本
$ sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine

卸载 Docker 时,存储在 中的映像、容器、卷和网络不会自动删除。/var/lib/docker/

1.2 安装方法

您可以根据需要以不同的方式安装 Docker 引擎:

  • 您可以设置 Docker 的存储库并安装 从他们那里,以便于安装和升级任务。这是 推荐的方法。
  • 您可以下载 RPM 软件包并手动安装并管理 完全手动升级。这在安装等情况下很有用 在无法访问互联网的气隙系统上的 Docker。
  • 在测试和开发环境中,您可以使用自动化的便利脚本来安装 Docker。
1.3 使用yum安装
1.3.1 设置yum源
$ sudo yum install -y yum-utils
$ sudo yum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.repo
1.3.2 安装 Docker 引擎

1、安装 Docker Engine、containerd 和 Docker Compose

安装最新版本

sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

安装之前版本

$ yum list docker-ce --showduplicates | sort -r
$ sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io docker-buildx-plugin docker-compose-plugin

此命令安装 Docker,但不启动 Docker。它还会创建一个组,但是,默认情况下不会向该组添加任何用户。docker

2、启动 Docker

$ sudo systemctl start docker

3、通过运行映像来验证 Docker 引擎安装是否成功。hello-world

$ sudo docker run hello-world
1.4 升级docker引擎

要升级 Docker 引擎,请按照安装说明进行操作, 选择要安装的新版本。

1.5 从包安装

如果您无法使用 Docker 的存储库来安装 Docker,您可以下载您的版本文件并手动安装。

  1. 转到 https://download.docker.com/linux/centos/ 并选择您的 CentOS 版本。然后浏览并下载要安装的 Docker 版本的文件。x86_64/stable/Packages/``.rpm

  2. 安装 Docker 引擎,将下面的路径更改为下载 Docker 包的路径

     $ sudo yum install /path/to/package.rpm
    

    Docker 已安装,但尚未启动。组已创建,但没有 用户将添加到组中。docker

  3. 启动 Docker。

     $ sudo systemctl start docker
    
  4. 通过运行映像来验证 Docker 引擎安装是否成功。hello-world

     $ sudo docker run hello-world
    

    此命令下载测试映像并在容器中运行它。当 容器运行,它会打印确认消息并退出。

1.6 使用脚本安装(最新版)
 $ curl -fsSL https://get.docker.com -o get-docker.sh$ sudo sh ./get-docker.sh --dry-run
1.7 卸载Docker
  1. 卸载 Docker Engine、CLI、containerd 和 Docker Compose 软件包:

     $ sudo yum remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
    
  2. 主机上的映像、容器、卷或自定义配置文件 不会自动删除。删除所有映像、容器和 卷:

     $ sudo rm -rf /var/lib/docker$ sudo rm -rf /var/lib/containerd
    

您必须手动删除任何已编辑的配置文件。

2、linux安装静态二进制文件

  1. 下载静态二进制存档。转到 https://download.docker.com/linux/static/stable/, 选择您的硬件平台,然后下载与 要安装的 Docker 引擎版本。.tgz

  2. 使用该实用程序提取存档。提取 和 二进制文件。tar``dockerd``docker

    $ tar xzvf /path/to/<FILE>.tar.gz
    
  3. 可选:将二进制文件移动到可执行文件路径上的目录,例如 如。如果跳过此步骤,则必须提供 调用或命令时可执行。/usr/bin/``docker``dockerd

    $ sudo cp docker/* /usr/bin/
    
  4. 启动 Docker 守护进程:

    $ sudo dockerd &
    

    如果需要使用其他选项启动守护进程,请修改上述内容 命令或创建并编辑文件以添加自定义配置选项。/etc/docker/daemon.json

  5. 通过运行映像验证 Docker 是否已正确安装。hello-world

    $ sudo docker run hello-world
    

    此命令下载测试映像并在容器中运行它。当 容器运行,它会打印一条消息并退出。

3、以非 root 用户身份管理 Docker

要创建组并添加用户,请执行以下操作:docker

  1. 创建组。docker

    $ sudo groupadd docker
    
  2. 将您的用户添加到组中。docker

    $ sudo usermod -aG docker $USER
    
  3. 注销并重新登录,以便重新评估您的组成员身份。

    如果您在虚拟机中运行 Linux,则可能需要 重新启动虚拟机以使更改生效。

    您还可以运行以下命令来激活对组的更改:

    $ newgrp docker
    
  4. 验证是否可以在没有 .docker``sudo

    $ docker run hello-world
    

    此命令下载测试映像并在容器中运行它。当 容器运行,它会打印一条消息并退出。

    如果您最初在添加用户之前运行了 Docker CLI 命令 对于该组,您可能会看到以下错误:sudo``docker

    WARNING: Error loading config file: /home/user/.docker/config.json -
    stat /home/user/.docker/config.json: permission denied
    

    此错误表示目录的权限设置不正确,因为之前使用了该命令。~/.docker/``sudo

    若要解决此问题,请删除目录(已重新创建) 自动,但任何自定义设置都将丢失),或更改其所有权和 使用以下命令的权限:~/.docker/

    $ sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
    $ sudo chmod g+rwx "$HOME/.docker" -R
    

4、将 Docker 配置为使用 systemd 启动启动

许多现代 Linux 发行版使用 systemd 来 管理系统引导时启动哪些服务。在 Debian 和 Ubuntu 上, 默认情况下,Docker 服务在启动时启动。要自动启动 Docker 和 对于使用 systemd 的其他 Linux 发行版,在引导时运行 以下命令:

$ sudo systemctl enable docker.service
$ sudo systemctl enable containerd.service

若要停止此行为,请改用。disable

$ sudo systemctl disable docker.service
$ sudo systemctl disable containerd.service

如果需要添加 HTTP 代理,请为 Docker 运行时文件,或进行其他自定义,请参阅自定义 systemd Docker 守护程序选项。

5、配置默认日志记录驱动程序

Docker 提供日志记录驱动程序 从主机上运行的所有容器收集和查看日志数据。这 默认日志记录驱动程序 ,将日志数据写入 JSON 格式的文件 主机文件系统。随着时间的推移,这些日志文件的大小会扩大,导致 磁盘资源可能耗尽。json-file

为避免过度使用磁盘存储日志数据的问题,请考虑以下事项之一 选项:

  • 配置日志记录驱动程序以启用日志轮换json-file
  • 使用备用日志记录驱动程序,例如默认执行日志轮换的“本地”日志记录驱动程序
  • 使用将日志发送到远程日志记录聚合器的日志记录驱动程序。

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

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

相关文章

Matlab 多项式拟合点法线(二维)

文章目录 一、简介二、实现代码三、实现效果一、简介 这个思路其实很简单,假设我们有一组曲线点,我们可以对其拟合曲线并计算其导数来获取每个点的法向量,当然这一思路也可以扩展至三维。具体过程如下所示: 二、实现代码 %% *********

DeepSeek-R1 论文阅读总结

1. QA问答&#xff08;我的笔记&#xff09; Q1: DeepSeek如何处理可读性问题&#xff1f; 通过构建冷启动数据&#xff08;数千条长CoT数据&#xff09;微调基础模型&#xff0c;结合多阶段训练流程&#xff08;RL训练、拒绝采样生成SFT数据&#xff09;&#xff0c;并优化输…

Manus AI:多语言手写识别的技术革命与未来图景

摘要&#xff1a;在全球化浪潮下&#xff0c;跨语言沟通的需求日益迫切&#xff0c;但手写文字的多样性却成为技术突破的难点。Manus AI凭借其多语言手写识别技术&#xff0c;将潦草笔迹转化为精准数字文本&#xff0c;覆盖全球超百种语言。本文从技术原理、应用场景、行业价值…

Flutter——最详细原生交互(MethodChannel、EventChannel、BasicMessageChannel)使用教程

MethodChannel&#xff08;方法通道&#xff09; 用途&#xff1a;实现 双向通信&#xff0c;用于调用原生平台提供的 API 并获取返回结果。 场景&#xff1a;适合一次性操作&#xff0c;如调用相机、获取设备信息等。 使用步骤&#xff1a; Flutter 端&#xff1a;通过 Meth…

Python控制语句-循环语句-while

1.若k为整形,下述while循环执行的次数为()。 k=1000 while k>1: print(k) k=k/2 A、9 B、10 C、11 D、100 答案:A。k=k/2意味着每循环一次,k的值就会变为原来的一半,直到k的值不大于1。 2.下面的代码,哪些会输出1,2,3三个数字( )。 A、 for i in range(3): print(i) …

十二天-双指针技术:链表问题的高效解法

一、双指针技术分类 1. 同速双指针&#xff08;同向移动&#xff09; 特点&#xff1a;两个指针以相同速度移动适用场景&#xff1a; 链表逆序查找倒数第 k 个元素删除倒数第 n 个节点 2. 快慢双指针&#xff08;异速移动&#xff09; 特点&#xff1a;一个指针每次移动 1 步…

【vllm】Qwen2.5-VL-72B-AWQ 部署记录

版本&#xff1a;0.7.2 注意事项&#xff1a; export LD_LIBRARY_PATH/home/xxxxx/anaconda3/envs/xxxxx/lib/python3.10/site-packages/nvidia/nvjitlink/lib:$LD_LIBRARY_PATH # 如果报错可能需要Also pip install --force-reinstall githttps://github.com/huggingface/tra…

深度学习与大模型-张量

大家好&#xff01;今天我们来聊聊张量&#xff08;Tensor&#xff09;。别被这个词吓到&#xff0c;其实它没那么复杂。 什么是张量&#xff1f; 简单来说&#xff0c;张量就是一个多维数组。你可以把它看作是一个装数据的容器&#xff0c;数据的维度可以是一维、二维&#…

【前端面试题】Vu3常见的面试题

1.Vue3与 Vue2的核心区别有哪些&#xff1f; ‌ 响应式系统 ‌&#xff1a; ‌ Vue2&#xff1a;通过Object.defineProperty 实现响应式。这种方式在处理对象属性的添加和删除时存在局限性&#xff0c;且无法直接监控数组的变化 ‌;‌Vue3&#xff1a;采用Proxy 实现响应式&…

Android 粘包与丢包处理工具类:支持多种粘包策略的 Helper 实现

在Android开发中&#xff0c;处理TCP/UDP通信时&#xff0c;粘包和丢包是常见的问题。粘包是指多个数据包被接收方一次性接收&#xff0c;导致数据包之间的界限不清晰&#xff1b;丢包则是指数据包在传输过程中丢失。为了处理这些问题&#xff0c;我们可以编写一个帮助类 Packe…

【C++11】移动语义

回顾 const int c的c是可以被取地址的&#xff0c;尽管是常量。所以以是否为常量来判断是否为右值是错误的。 左值与右值正确的区分方法是是否能够被取地址。&#xff08;能被取地址也就代表着是一个持久状态&#xff0c;即有持久的存储空间的值&#xff09; 常见的左值有我们…

LangChain教程 - Agent -之 ZERO_SHOT_REACT_DESCRIPTION

在构建智能 AI 助手时&#xff0c;我们希望模型能够智能地调用工具&#xff0c;以便提供准确的信息。LangChain 提供了 AgentType.ZERO_SHOT_REACT_DESCRIPTION&#xff0c;它结合了 ReAct&#xff08;Reasoning Acting&#xff09;策略&#xff0c;使得 LLM 可以基于工具的描…

移动Android和IOS自动化中常见问题

APP测试逻辑 在app编写自动化测试用例时&#xff0c;通常会出现只是简单的点点点过程&#xff0c;然而却忽略了在实际的自动化实现过程中&#xff0c;软件是对app元素的判断来执行测试脚本。所以会出现在后期已经写好自动化脚本之后还会对测试用例的更新。 App在测试时&#…

python高效试用17---两个字符串组成一个新的字符串和两个字符串组成元组作为key哪个更高效

在 Python 中&#xff0c;使用字符串连接 (str1 str2) 作为 key 和使用元组 ((str1, str2)) 作为 key 的效率差异&#xff0c;主要受以下因素影响&#xff1a; 哈希计算速度&#xff1a; 字符串连接 (str1 str2)&#xff1a;会创建一个新的字符串对象&#xff0c;并计算哈希…

深入浅出Java try-with-resources:告别资源泄漏的烦恼

一、为什么需要try-with-resources&#xff1f; 在Java开发中&#xff0c;我们经常需要处理各种资源&#xff1a;文件流、数据库连接、网络套接字等。这些资源都有一个共同特点——必须在使用后正确关闭。传统的资源管理方式存在三大痛点&#xff1a; 代码臃肿&#xff1a;每…

Python+DeepSeek:开启AI编程新次元——从自动化到智能创造的实战指南

文章核心价值 技术热点:结合全球最流行的编程语言与国产顶尖AI模型实用场景:覆盖代码开发/数据分析/办公自动化等高频需求流量密码:揭秘大模型在编程中的创造性应用目录结构 环境搭建:5分钟快速接入DeepSeek场景一:AI辅助代码开发(智能补全+调试)场景二:数据分析超级助…

Linux tcpdump -any抓的包转换成标准的pcap

在 Linux 中使用 tcpdump -any 抓包并转换为标准 pcap 文件时出现额外字段,通常与 链路层协议头部的差异 以及 pcap 文件格式的兼容性 有关。以下是详细原因和解决方案: 一、问题原因分析 -any 选项的局限性 tcpdump -any 会自动猜测链路层协议类型(如 Ethernet、IEEE 802…

【SpringMVC】深入解析使用 Postman 在请求中传递对象类型、数组类型、参数类型的参数方法和后端参数重命名、及非必传参数设置的方法

SpringMVC—请求传参 1. 传递对象 如果参数比较多时&#xff0c;方法声明就需要有很多形参&#xff1b;并且后续每次新增一个参数&#xff0c;也需要修改方法声明. 我们不妨把这些参数封装为一个对象&#xff1b; Spring MVC 也可以自动实现对象参数的赋值&#xff0c;比如 Us…

一个差劲的软件设计

项目概况&#xff1a; 之前自己设计并开发了一个用C#开发的上位机软件&#xff0c;整个软件只有一个Form&#xff0c;一个TabControl&#xff0c;3个TabControlPanel&#xff0c;总共100多个lable、textbox、ListBox等控件都放在这3个TabControlPanel里。 问题&#xff1a; 1.…

Linux练级宝典->进程控制详解(进程替换,fork函数)

目录 进程创建 fork函数 写时拷贝 进程终止 进程退出码 exit函数 _exit函数 return&#xff0c;exit _exit之间的区别和联系 进程等待 进程等待的必要性 获取子进程status 进程等待的方法 wait waipid 多子进程创建理解 非阻塞轮询检测子进程 进程程序替换 替…