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

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"]
}

🌺🌺🌺撒花!

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

相关文章:

  • 【windows操作技巧】设置应用的开机自启动
  • C++入门☞关于类的一些特殊知识点
  • AI跑得快,MCP来加速——模型计算平台在训练与推理中的硬核作用
  • 2025信息安全网络安全意识培训资料汇编(24份)
  • QT下根据深度信息计算物体尺寸并UI显示的简单方案
  • 只用Prettier进行格式化项目
  • TS 类型断言
  • 百度「心响」:左手“多智能体”右手“保姆级服务”,C端用户能看懂这技术告白吗?
  • C#方法返回值全解析:从基础语法到实战技巧
  • C++ STL简介:构建高效程序的基石
  • 实时在线状态
  • Android 输入控件事件使用示例
  • Nx 智能分发机制(Nx Agents + Nx Cloud)
  • 【程序+论文】大规模新能源并网下的火电机组深度调峰经济调度
  • lombok详解
  • 人工智能《文章10:AI未来已来》
  • 详解迁移学习,模型参数冻结,优化器参数定义
  • 蘑菇管理——AI与思维模型【94】
  • 【运维】构建基于Python的自动化运维平台:用Flask和Celery打造高效管理工具
  • TensorFlow 多卡训练 tf多卡训练
  • 局势紧张之际,伊朗外长下周访问巴基斯坦和印度
  • 国铁集团:全国铁路旅客发送量连续3天同比增幅超10%
  • 澳大利亚联邦选举投票正式开始
  • 中国公民在日本被机动车碾压身亡,我使馆发布提醒
  • 郭继孚被撤销全国政协委员资格,此前为北京交通发展研究院长
  • 招行一季度净利372.86亿降2.08%,营收降逾3%