Linux安装Docker、Docker-Compose(解决网络问题)
一、本文内容概述
主要总结Linux系统部署docker、Docker-Compose的操作步骤:
- 部署过程
- 配置网络加速(解决链接超时问题)
Docker官网:Docker Docs
二、安装Docker
2.1 卸载历史版本docker
1. 停止服务
systemctl stop docker# 查看已经安装的docker软件包
yum list installed | grep docker
2. 卸载已经安装的docker软件包
# 以 docker* 开头
# -y 避免后面重复确认
yum remove containerd.io.x86_64 docker* -y3. 删除docker数据和配置文件
# 存放容器)镜像)网络)卷的配置
rm -rf /var/lib/docker
# 管理 Docker 容器生命周期的组件(Docker容器的运行环境)
rm -rf /var/lib/containerd
# docker 的配置文件
rm -rf /etc/docker4.最后查看是否卸载成功
#查看docker的状态
systemctl status docker
2.2 安装所需的软件包
# 安装所需的软件包 yum-utils,device-mapper-persistent-data和lvm2
yum install -y yum-utils device-mapper-persistent-data lvm2
包名介绍:
yum-utils 是一组为 YUM(Yellowdog Updater Modified)包管理器提供额外功能的工具。它包括了多个实用程序,如 yum-config-manager,这个工具可以用来方便地添加和管理 YUM 软件源。需要使用 yum-config-manager 来设置 Docker 的官方仓库。
device-mapper-persistent-data:
这个软件包提供了支持设备映射器(device mapper)驱动的工具,特别是用于持久化数据的逻辑卷管理。Docker 使用 device mapper 作为存储驱动之一,用于管理容器的文件系统层。device-mapper-persistent-data 包含了必要的工具来处理这些底层的文件系统操作,确保容器的数据能够被正确且高效地管理。
lvm2:
LVM (Logical Volume Manager) 是 Linux 下的一种磁盘分区管理技术,允许创建、调整大小和管理磁盘分区,即逻辑卷。LVM 提供了灵活性,例如可以在不丢失数据的情况下调整分区大小。lvm2 包含了管理和配置 LVM 所需的命令行工具。Docker 可以利用 LVM 和 device mapper 驱动来更有效地管理容器的存储空间,特别是在需要频繁创建和删除容器的环境中。
四、安装docker
# 安装docker,docker-cli
sudo yum -y install docker-ce docker-ce-cli containerd.io
# 验证
docker -v
五、配置docker加速
配置方案
- 使用docker官方 -国外地址一般无法访问
- 配置国内镜像源 -一般可以解决访问超时问题
- 配置加速地址:设置registry mirror -正对国内镜像源,访问也超时,可以尝试使用
5.1 常规方案(优先尝试)
现在配置阿里云容器镜像加速需要是阿里云设备,其它设备参考官网说明,这里以阿里云加速器为例
阿里云访问地址:阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台 找到如图位置
#针对Docker客户端版本大于 1.10.0 的用户
#您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://5nkcn10r.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
5.2 配置加速地址:设置registry mirror
# 创建docker文件夹
sudo mkdir -p /etc/docker
# 填写内容(一起复制执行即可)
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://do.nark.eu.org",
"https://dc.j8.work",
"https://docker.m.daocloud.io",
"https://dockerproxy.com",
"https://docker.mirrors.ustc.edu.cn",
"https://docker.nju.edu.cn"
]
}
EOF
# 依次执行命令
sudo systemctl daemon-reload
sudo systemctl restart docker
systemctl status docker
重启完docker之后检查registry mirror刚刚配置的加速地址是否成功
[root@xiangzp20250305 ~]# docker info
Client: Docker Engine - Community
Version: 26.1.4
Context: default
Debug Mode: false
Plugins:
buildx: Docker Buildx (Docker Inc.)
Version: v0.14.1
Path: /usr/libexec/docker/cli-plugins/docker-buildx
compose: Docker Compose (Docker Inc.)
Version: v2.27.1
Path: /usr/libexec/docker/cli-plugins/docker-compose
Server:
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 0
Server Version: 26.1.4
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Using metacopy: false
Native Overlay Diff: true
userxattr: false
Logging Driver: json-file
Cgroup Driver: cgroupfs
Cgroup Version: 1
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local splunk syslog
Swarm: inactive
Runtimes: io.containerd.runc.v2 runc
Default Runtime: runc
Init Binary: docker-init
containerd version: d2d58213f83a351ca8f528a95fbd145f5654e957
runc version: v1.1.12-0-g51d5e94
init version: de40ad0
Security Options:
seccomp
Profile: builtin
Kernel Version: 3.10.0-1160.102.1.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 3.834GiB
Name: xiangzp20250305
ID: d8fe5ba9-d9ff-4609-a0e2-768815f7f1ab
Docker Root Dir: /var/lib/docker
Debug Mode: false
Experimental: false
Insecure Registries:
127.0.0.0/8
Registry Mirrors:
https://do.nark.eu.org/
https://dc.j8.work/
https://docker.m.daocloud.io/
https://dockerproxy.com/
https://docker.mirrors.ustc.edu.cn/
https://docker.nju.edu.cn/
Live Restore Enabled: false
可以看到我们已经配置成功:
六、验证及Docker常用命令
# 启动docker
sudo systemctl start docker
# docker 开机自启
systemctl enable docker
# 拉取测试镜像 验证
docker pull mysql:5.7.33
// 执行mysql
sudo docker run mysql
拉取成功,并却能查看到镜像已存在,表示配置已OK!
访问问题会提示:Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
七、安装Docker-Compose
1、安装 Docker Compose(官方方式)
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
2、授权文件权限
sudo chmod +x /usr/local/bin/docker-compose
3、验证
docker-compose --version
参考文章:
Docker的安装_fedora 安装docker-CSDN博客
【Linux】下载安装Docker及docker-compose_docker下载-CSDN博客
安装Docker Compose失败参考:采用离线安装compose安装命令 docker docker-compose安装失败_mob6454cc6c1f4a的技术博客_51CTO博客
解决Docker拉取镜像报错:Get https://registry-1.docker.io/v2/: 报错-CSDN博客