Docker安装与配置(CentOS)
本文最后更新于:2025年2月12日 晚上
1 删除历史版本
如果之前系统上安装过旧版本的Docker,使用下面命令卸载:
1 |
|
2 安装Docker
2.1 安装yum工具
1 |
|
2.2 配置本地镜像源
1 |
|
2.3 利用yum安装Docker
1 |
|
PS: docker-ce、docker-ce-cli和containerd.io是Docker架构中的关键组件,三者关系:
(1)docker-ce(Docker Community Edition,即Docker社区版,核心引擎)
Docker引擎是容器的核心管理组件,包含以下核心模块:
- Docker守护进程(dockerd):常驻后台的服务,负责监听API请求(如创建/删除容器)。
- REST API:提供标准接口供客户端(如CLI或其他工具)与守护进程交互。
- 镜像构建工具:支持通过Dockerfile构建镜像。
docker-ce本身不直接操作容器,而是依赖containerd.io处理底层容器操作(如启动容器、管理存储卷等)。
(2)docker-ce-cli(Docker的命令行工具)
提供docker命令(如docker run、docker build等),是用户与Docker引擎交互的入口。
它通过REST API向docker-ce发送指令(如创建容器等),并接收返回结果。
CLI工具本身不依赖containerd.io,但需要docker-ce正常运行才能执行命令(例如:如果Docker引擎未启动,docker ps会直接报错)。
(3)containerd.io(容器运行时工具)
负责容器的底层操作,是Docker引擎的底层依赖,包括:
- 镜像管理(拉取、存储、挂载镜像)。
- 容器生命周期管理(创建、启动、停止、删除容器)。
- 存储卷和网络配置(与操作系统内核交互)。
containerd.io是通用的容器运行时工具,Kubernetes等其他工具也可直接使用它(无需Docker)。
(4)协作流程
1 |
|
3 启动Docker
Docker应用会需要用到各种端口,需要逐一修改防火墙。
可以通过以下命令关闭防火墙:
1 |
|
1 |
|
4 配置Docker
可以通过修改daemon配置文件/etc/docker/daemon.json
来配置镜像加速、日志文件等
1 |
|
示例配置:
1 |
|
上述以腾讯云镜像源为例,参考文档
日志相关选项:
max-size:为文件最大大小
max-file:为最多保持几个文件
除了json-file还支持很多logging driver:
日志驱动 | 描述 |
---|---|
none | 容器没有日志可用,docker logs 什么都不返回 |
local | 日志以自定义格式存储,设计这种格式的目的是将开销降到最低。 |
syslog | 将日志消息写入 syslog 工具,syslog 守护程序必须在主机上运行。 |
journald | 将日志消息写入 journald,journald 守护程序必须在主机上运行。 |
gelf | 将日志消息写入 Graylog Extended Log Format (GELF) 终端,例如 Graylog 或 Logstash。 |
fluentd | 将日志消息写入 fluentd(forward input),fluentd |
awslogs | 将日志消息写入 Amazon CloudWatch Logs。 |
splunk | 使用HTTP事件收集器将日志消息写入splunk。 |
etwlogs | 将日志消息写为 Windows 的 Event Tracing 事件,仅在Windows平台上可用。 |
gcplogs | 将日志消息写入 Google Cloud Platform (GCP) Logging。 |
logentries | 将日志消息写入 Rapid7 Logentries。 |
json-file | 日志格式化为 JSON,这是 Docker 默认的日志驱动程序。 |
重新加载配置:
1 |
|
5 安装docker-compose
在线下载对应版本docker-compose文件进行安装
(建议点击此处去github查看版本号)1
sudo curl -L https://github.com/docker/compose/releases/download/1.29.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
也可以去github下载文件上传到服务器上进行安装
找到带有docker-compose-linux-x86_64
的版本,把这个包下载下来上传到服务器/usr/local/bin目录下面,再将其名称修改为docker-compose
1
mv docker-compose-linux-x86_64 docker-compose
添加可执行权限
1
sudo chmod +x /usr/local/bin/docker-compose
测试docker-compose安装
1
docker-compose --version
6 修改Docker默认存储位置(可选)
有很多方法修改docker的默认存储位置,可以参考博文:
6.1 直接复制
停掉docker服务
1
systemctl stop docker
创建新的docker目录,如
home/work/docker_root
df -h 可查看磁盘目录空间大小
1
mkdir -p /home/work/docker_root
把/var/lib/docker目录下面的文件复制到新目录下面
1
cp -R /var/lib/docker/* /home/work/docker_root
修改docker配置文件(
/etc/docker/daemon.json
)
在文件中添加或修改以下内容,使之指向新的目录:1
"data-root": "/home/work/docker_root"
启动服务
1
systemctsystemctl status docker
可用
docker info
查看Docker Root Dir是否修改成功确认稳定无误后,可以删除原先路径内容
1
sudo rm -rf /var/lib/docker
6.2 软链接方式实现
查看docker存放的具体位置(默认情况下为:/var/lib/docker)
1
sudo docker info | grep "Docker Root Dir"
停掉docker服务
1
systemctl stop docker或者service docker stop
然后移动整个/var/lib/docker目录到目的路径
1
2
3mv /var/lib/docker /home/work/docker_root
ln -s /home/work/docker_root /var/lib/docker这时候启动Docker时发现存储目录依旧是/var/lib/docker,但是实际上是存储在数据盘的,可以在数据盘上看到容量变化。