1. 运行环境描述
操作系统版本:Rocky Linux 9.2
系统内核版本:5.14.0
Docker 版本:24.0.7
Docker Compose 版本:2.23.0
2. 基础环境配置
2.1 禁用系统交换分区
2.1.1 禁用 swap 交换分区
使用 swapoff -a
命令关闭swap分区。
2.1.2 永久禁用 swap 交换分区
使用以下命令禁用系统启动自动挂载 swap 交换分区。
sed -ri 's/.*swap.*/#&/' /etc/fstab
2.1.3 检查配置
通过 free -m
命令查看当前系统情况,交换分区大小为“0”。
查看系统配置
cat /etc/fstab
, 交换分区挂载分区已被注释。
2.2 更换国内YUM源
这里使用阿里提供的源,Rocky Linux 镜像链接
2.2.1 修改配置
sed -e 's|^mirrorlist=|#mirrorlist=|g' \
-e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.aliyun.com/rockylinux|g' \
-i.bak \
/etc/yum.repos.d/[Rr]ocky-*.repo
2.2.2 生成缓存
通过 dnf makecache
生成缓存
2.3 禁用 SELinux
2.3.1 修改配置
# 立即关闭
[root@localhost ~]# setenforce 0
# 永久关闭
[root@localhost ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
2.3.2 配置修改确认
cat /etc/selinux/config
2.4 防火墙配置
2.4.1 设置防火墙开机启动
通过以下命令设置防火墙默认开机启动并开启。
systemctl enable firewalld && systemctl start firewalld
2.4.2 查看防火墙状态
命令:systemctl status firewalld
防火墙当前为active(running)状态,表示当前防火墙正常启动且运行。
2.5 配置时间同步
系统默认已安装了 chrony
,这里使用它来进行时间同步。
2.5.1 查看当前系统时区
通过命令 timedatectl status
,查看当前系统时区是否被正确
如果输出不是“Asia/Shanghai”,则需要通过如下命令进行修改,修改后请再次确认。
设置时区命令:timedatactl set-timezone Asia/Shanghai
2.5.2 修改配置文件
# 修改配置文件
vi /etc/chrony.conf
# 注释原来地址池,增加以下行
server ntp1.aliyun.com iburst
server ntp2.aliyun.com iburst
# 保存配置
2.5.3 设置时间服务开机启动
systemctl enable chronyd
2.5.4 重启时间服务
systemctl restart chronyd
2.5.5 查看服务状态
systemctl status chronyd
2.5.6 查看时间同步状态
chronyc sources
检查chrony来源,列出有关chronyd使用的当前时间源的信息
默认情况下,NTP 客户端每64秒执行一次时间同步。但是,您可以手动调整时钟而无需等待下一次同步轮询。
[root@localhost ~]# chronyc makestep
200 OK
2.6 常用软件安装
dnf install -y vim zip unzip tree net-tools lrzsz rsync wget telnet
2.7 系统补丁更新
如果要保持当前系统更新,请使用
dnf update
命令更新当前系统到最新。
3. Docker 安装配置
3.1 设置 Docker-CE YUM 源
dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
3.2 安装 Docker
# 先更新下YUM源
dnf update
# 安装docker
dnf install -y docker-ce
3.3 启动 Docker 服务
sudo systemctl start docker && sudo systemctl status docker
3.4 设置开机自启动
sudo systemctl enable docker
3.5 创建Docker服务运行普通用户
sudo usermod -aG docker $USER
3.6 生效组用户变更配置
newgrp docker
3.7 查看 Docker 信息
docker info
[root@localhost ~]# docker info
Client: Docker Engine - Community
Version: 24.0.7
Context: default
Debug Mode: false
Plugins:
buildx: Docker Buildx (Docker Inc.)
Version: v0.11.2
Path: /usr/libexec/docker/cli-plugins/docker-buildx
compose: Docker Compose (Docker Inc.)
Version: v2.21.0
Path: /usr/libexec/docker/cli-plugins/docker-compose
Server:
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 0
Server Version: 24.0.7
Storage Driver: overlay2
Backing Filesystem: xfs
Supports d_type: true
Using metacopy: false
Native Overlay Diff: true
userxattr: false
Logging Driver: json-file
Cgroup Driver: systemd
Cgroup Version: 2
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: io.containerd.runc.v2 runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 61f9fd88f79f081d64d6fa3bb1a0dc71ec870523
runc version: v1.1.9-0-gccaecfc
init version: de40ad0
Security Options:
seccomp
Profile: builtin
cgroupns
Kernel Version: 5.14.0-284.11.1.el9_2.x86_64
Operating System: Rocky Linux 9.2 (Blue Onyx)
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 15.37GiB
Name: localhost.localdomain
ID: 0812dfa9-90a1-4fc0-8738-57f2166c8aa5
Docker Root Dir: /var/lib/docker
Debug Mode: false
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
可以正常输出Docker服务版本信息等,表示Docker服务运行正常。
4. Compose 安装配置
4.1 下载 docker-compose
[root@localhost ~]# curl -L "https://github.com/docker/compose/releases/download/v2.23.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
可以通过 GitHub release 查看所需要的具体版本进行下载。
日期:2023年11月13日,截止本文档编辑时间最新的版本是v2.23.0。
4.2 执行程序权限修改
[root@localhost ~]# chmod +x /usr/local/bin/docker-compose
4.3 创建软链接
[root@localhost ~]# ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
4.4 运行测试验证
[root@localhost ~]# docker-compose -v
Docker Compose version v2.23.0
至此,docker及docker-compose环境配置结束。
通过以上步骤即可完成在 Rocky Linux 9.2 操作系统上完成 docker及 docker-compose 环境的配置,之后即可进行镜像的下载以及服务的部署了。
5. 运行环境参数优化
5.1 docker 参数优化
配置文件:/etc/docker/daemon.json
cat > /etc/docker/daemon.json << EOF
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"],
"insecure-registries":["dockerhub.rockylinux.cn"],
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "10"
},
"storage-driver": "overlay2",
"live-restore": true,
"default-shm-size": "128M",
"max-concurrent-downloads": 10,
"max-concurrent-uploads": 10,
"debug": false
}
EOF
参数解析:
1. registry-mirrors:
- 作用: 指定Docker镜像仓库的镜像地址。
- 说明: 在拉取Docker镜像时,守护进程会按顺序尝试这些镜像地址,以提高镜像检索速度。
2. insecure-registries:
- 作用: 定义一组不安全的Docker镜像仓库。
- 说明: Docker将不使用HTTPS的镜像仓库视为不安全。此选项允许与指定的镜像仓库进行通信,而不强制使用加密。
3. exec-opts:
- 作用: 为容器执行设置选项。
- 说明: 在这种情况下,将本地的cgroup驱动程序设置为systemd。cgroups(控制组)用于限制、记录和隔离进程组的资源使用(CPU、内存、磁盘I/O等)。
4. log-driver:
- 作用: 为容器设置日志记录驱动程序。
- 说明: 指定用于容器日志的记录驱动程序。在这里,设置为“json-file”,表示日志将被写入JSON格式的文件。
5. log-opts:
- 作用: 为所选的日志记录驱动程序设置选项。
- 说明: 配置特定于JSON文件日志驱动程序的选项,如日志文件的最大大小("max-size")和保留的日志文件的最大数量("max-file")。
6. storage-driver:
- 作用: 设置用于管理镜像和容器存储的存储驱动程序。
- 说明: 在这里,它设置为“overlay2”,这是一种现代的存储驱动程序,支持分层文件系统,是大多数安装的推荐选择。
7. live-restore:
- 作用: 启用或禁用容器的实时恢复功能。
- 说明: 当设置为true时,允许Docker守护进程在重新启动后从先前的状态恢复容器。
8. default-shm-size:
- 作用: 设置/dev/shm的默认大小,这是容器用于通信的共享内存。
- 说明: 容器使用共享内存进行进程间通信。此选项设置每个容器的共享内存的默认大小。
9. max-concurrent-downloads 和 max-concurrent-uploads:
- 作用: 限制Docker镜像的并发下载和上传数量。
- 说明: 有助于控制资源使用,并防止过多的并行下载和上传。
10. oom-score-adjust:
- 作用: 调整Docker守护进程进程的OOM(内存不足)分数。
- 说明: 此参数影响在系统内存不足条件发生时Linux OOM killer选择Docker守护进程的可能性。
11. debug:
- 作用: 启用或禁用调试模式。
- 说明: 当设置为true时,启用Docker守护进程的调试日志,提供更详细的信息以进行故障排除。
评论