当前位置: 首页 > web >正文

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.xdnf.cn/news/3782.html

相关文章:

  • 探秘 Git 底层原理:理解版本控制的基石
  • 计算方法实验六 数值积分
  • Docker安装Gitblit(图文教程)
  • TS typeof运算符
  • 深度学习学习笔记
  • 复刻低成本机械臂 SO-ARM100 标定篇
  • Granite 4.0 Tiny:IBM也开始卷大模型?
  • 234树和红黑树
  • 深入了解Linux系统—— 环境变量
  • 仓颉编程语言快速入门:从零构建全场景开发能力
  • 【Linux】命令行参数与环境变量
  • Spring MVC @CookieValue 注解怎么用?
  • 【前端】【面试】在 Vue-React 的迁移重构工作中,从状态管理角度来看,Vuex 迁移到 Redux 最大的挑战是什么,你是怎么应对的?
  • idea结合CopilotChat进行样式调整实践
  • 爬虫的应用
  • 测试基础笔记第十九天
  • CSS 变量与原生动态主题实现
  • 变更需求代价-影响分析过程
  • Hotspot分析(1):单细胞转录组识别信息基因(和基因模块)
  • 力扣面试150题--相同的树
  • windows鼠标按键自定义任意设置
  • 【中间件】brpc_基础_remote_task_queue
  • Oracle OCP认证考试考点详解083系列07
  • Vibe Coding 新时代:AI 辅助编程完全指南
  • 论企业集成平台的理解与应用
  • Linux时钟与时间API
  • 【MLLM】Qwen2.5-Omni-7B/3B模型
  • 【Mytais系列】缓存机制:一级缓存、二级缓存
  • 游戏代码C
  • python中的函数