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* -y

3. 删除docker数据和配置文件

# 存放容器)镜像)网络)卷的配置
rm -rf /var/lib/docker
# 管理 Docker 容器生命周期的组件(Docker容器的运行环境)
rm -rf /var/lib/containerd
# docker 的配置文件
rm -rf /etc/docker

4.最后查看是否卸载成功

#查看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-优快云博客

【Linux】下载安装Docker及docker-compose_docker下载-优快云博客

安装Docker Compose失败参考:采用离线安装compose安装命令 docker docker-compose安装失败_mob6454cc6c1f4a的技术博客_51CTO博客

解决Docker拉取镜像报错:Get https://registry-1.docker.io/v2/: 报错-优快云博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值