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"]
}
🌺🌺🌺撒花!
如果本文对你有帮助,就点关注或者留个👍
如果您有任何技术问题或者需要更多其他的内容,请随时向我提问。