首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

CentOS 7安装Docker详细教程

  • 25-02-18 11:41
  • 3827
  • 13754
blog.csdn.net

本文以 CentOS7.8 为例安装 Docker 26.1.4 、Docker Compose、以及 Docker 镜像仓库。

安装方式1:自动安装(使用官方脚本)
使用官网一键安装命令:
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

或

使用国内 daocloud 一键安装命令:
curl -sSL https://get.daocloud.io/docker | sh

安装方式2:手动安装步骤如下

1.安装Docker社区版
1.1 安装准备
1.1.1 检查系统环境

Docker 不支持32位的 CentOS 7 系统,要求系统内核版本为3.10 以上,可以通过命令 uname -r 来查看当前系统的内核版本。

  1. [root@Docker ~]# uname -r
  2. 3.10.0-1127.el7.x86_64
  3. [root@Docker ~]# 
1.1.2卸载旧版本的Docker

如果系统中已经安装了旧版本的Docker,建议卸载后再安装新版本。可以使用命令yum remove来卸载旧版本的Docker及其相关组件。

  1. yum remove docker \
  2.                   docker-client \
  3.                   docker-client-latest \
  4.                   docker-common \
  5.                   docker-latest \
  6.                   docker-latest-logrotate \
  7.                   docker-logrotate \
  8.                   docker-selinux \
  9.                   docker-engine-selinux \
  10.                   docker-engine \
  11.                   docker-ce
1.1.3更新yum源

这里更新为阿里云 yum 源,更新之前先做备份:

  1. [root@Docker ~]# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
  2. [root@Docker ~]# 

然后,下载新的 CentOS-Base.repo 到 /etc/yum.repos.d/:

wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

图片

  1. [root@Docker ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
  2. --2024-12-19 09:59:12--  https://mirrors.aliyun.com/repo/Centos-7.repo
  3. 正在解析主机 mirrors.aliyun.com (mirrors.aliyun.com)... 124.236.28.176, 124.236.28.180, 124.238.244.131, ...
  4. 正在连接 mirrors.aliyun.com (mirrors.aliyun.com)|124.236.28.176|:443... 已连接。
  5. 已发出 HTTP 请求,正在等待回应... 200 OK
  6. 长度:2523 (2.5K) [application/octet-stream]
  7. 正在保存至: “/etc/yum.repos.d/CentOS-Base.repo”
  8. 100%[=======================================================================================================================================================================>] 2,523       --.-K/s 用时 0s      
  9. 2024-12-19 09:59:17 (115 MB/s) - 已保存 “/etc/yum.repos.d/CentOS-Base.repo” [2523/2523])
  10. [root@Docker ~]# 

最后,运行 yum makecache 生成缓存:

[root@Docker ~]# yum makecache

图片

1.2安装Docker
1.2.1安装依赖包

Docker 的安装需要一些依赖包,包括 yum-utils、device-mapper-persistent-data 和 lvm2 等。可以使用命令yum install -y yum-utils device-mapper-persistent-data lvm2来安装这些依赖包。

  1. yum install -y yum-utils \
  2.            device-mapper-persistent-data \
  3.            lvm2 --skip-broken

图片

1.2.2 配置Docker的yum源

为了安装 Docker,需要配置 Docker 的 yum 源。可以使用命令yum-config-manager --add-repo来添加Docker的官方源或国内镜像源(如阿里云镜像源)。添加后,使用命令yum makecache fast来更新 yum 缓存。

  1. [root@Docker ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  2. 已加载插件:fastestmirror, langpacks
  3. adding repo from: https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  4. grabbing file https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
  5. repo saved to /etc/yum.repos.d/docker-ce.repo
  6. [root@Docker ~]# 

查看内容:

  1. [root@Docker ~]# cat /etc/yum.repos.d/docker-ce.repo
  2. [docker-ce-stable]
  3. name=Docker CE Stable - $basearch
  4. baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/$basearch/stable
  5. enabled=1
  6. gpgcheck=1
  7. gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
  8. [docker-ce-stable-debuginfo]
  9. name=Docker CE Stable - Debuginfo $basearch
  10. baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/debug-$basearch/stable
  11. enabled=0
  12. gpgcheck=1
  13. gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
  14. [docker-ce-stable-source]
  15. name=Docker CE Stable - Sources
  16. baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/source/stable
  17. enabled=0
  18. gpgcheck=1
  19. gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
  20. [docker-ce-test]
  21. name=Docker CE Test - $basearch
  22. baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/$basearch/test
  23. enabled=0
  24. gpgcheck=1
  25. gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
  26. [docker-ce-test-debuginfo]
  27. name=Docker CE Test - Debuginfo $basearch
  28. baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/debug-$basearch/test
  29. enabled=0
  30. gpgcheck=1
  31. gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
  32. [docker-ce-test-source]
  33. name=Docker CE Test - Sources
  34. baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/source/test
  35. enabled=0
  36. gpgcheck=1
  37. gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
  38. [docker-ce-nightly]
  39. name=Docker CE Nightly - $basearch
  40. baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/$basearch/nightly
  41. enabled=0
  42. gpgcheck=1
  43. gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
  44. [docker-ce-nightly-debuginfo]
  45. name=Docker CE Nightly - Debuginfo $basearch
  46. baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/debug-$basearch/nightly
  47. enabled=0
  48. gpgcheck=1
  49. gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
  50. [docker-ce-nightly-source]
  51. name=Docker CE Nightly - Sources
  52. baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/source/nightly
  53. enabled=0
  54. gpgcheck=1
  55. gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
  56. [root@Docker ~]# 

然后更新 yum 缓存:

[root@Docker ~]# yum makecache fast

图片

1.2.3安装Docker社区版

输入 yum install -y docker-ce 命令开始安装:

  1. [root@Docker ~]# yum install -y docker-ce
  2. 已加载插件:fastestmirror, langpacks
  3. Loading mirror speeds from cached hostfile
  4.  * base: mirrors.aliyun.com
  5.  * extras: mirrors.aliyun.com
  6.  * updates: mirrors.aliyun.com
  7. 正在解决依赖关系
  8. --> 正在检查事务
  9. ---> 软件包 docker-ce.x86_64.3.26.1.4-1.el7 将被 安装
  10. --> 正在处理依赖关系 container-selinux >= 2:2.74,它被软件包 3:docker-ce-26.1.4-1.el7.x86_64 需要
  11. ……
  12. 已安装:
  13.   docker-ce.x86_64 3:26.1.4-1.el7                                                                                                                                                                                
  14. 作为依赖被安装:
  15.   container-selinux.noarch 2:2.119.2-1.911c772.el7_8         containerd.io.x86_64 0:1.6.33-3.1.el7               docker-buildx-plugin.x86_64 0:0.14.1-1.el7         docker-ce-cli.x86_64 1:26.1.4-1.el7        
  16.   docker-ce-rootless-extras.x86_64 0:26.1.4-1.el7            docker-compose-plugin.x86_64 0:2.27.1-1.el7         fuse-overlayfs.x86_64 0:0.7.2-6.el7_8              fuse3-libs.x86_64 0:3.6.1-4.el7            
  17.   slirp4netns.x86_64 0:0.4.3-4.el7_8                        
  18. 完毕!
  19. [root@Docker ~]# 

安装过程截图如下:

图片

1.3启动Docker

先关闭并禁用防火墙随机启动:

  1. [root@Docker ~]# systemctl stop firewalld
  2. [root@Docker ~]# systemctl disable firewalld
  3. Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
  4. Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
  5. [root@Docker ~]# 

启动之前,输入docker images:

  1. [root@Docker ~]# docker images
  2. Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
  3. [root@Docker ~]# 

说明 docker 没有启动,现在启动并查看状态:

  1. [root@Docker ~]# systemctl start docker
  2. [root@Docker ~]# systemctl status docker
  3. ● docker.service - Docker Application Container Engine
  4.    Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
  5.    Active: active (running) since 四 2024-12-19 10:29:47 CST; 7s ago
  6.      Docs: https://docs.docker.com
  7.  Main PID: 26341 (dockerd)
  8.     Tasks: 10
  9.    Memory: 35.1M
  10.    CGroup: /system.slice/docker.service
  11.            └─26341 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
  12. 12月 19 10:29:45 Docker systemd[1]: Starting Docker Application Container Engine...
  13. 12月 19 10:29:45 Docker dockerd[26341]: time="2024-12-19T10:29:45.888362136+08:00" level=info msg="Starting up"
  14. 12月 19 10:29:46 Docker dockerd[26341]: time="2024-12-19T10:29:46.224219879+08:00" level=info msg="Loading containers: start."
  15. 12月 19 10:29:46 Docker dockerd[26341]: time="2024-12-19T10:29:46.898469964+08:00" level=info msg="Loading containers: done."
  16. 12月 19 10:29:47 Docker dockerd[26341]: time="2024-12-19T10:29:47.005955247+08:00" level=info msg="Docker daemon" commit=de5c9cf containerd-snapshotter=false storage-driver=overlay2 version=26.1.4
  17. 12月 19 10:29:47 Docker dockerd[26341]: time="2024-12-19T10:29:47.006599035+08:00" level=info msg="Daemon has completed initialization"
  18. 12月 19 10:29:47 Docker dockerd[26341]: time="2024-12-19T10:29:47.169172927+08:00" level=info msg="API listen on /run/docker.sock"
  19. 12月 19 10:29:47 Docker systemd[1]: Started Docker Application Container Engine.
  20. [root@Docker ~]# 

图片

查看 docker 版本:

  1. [root@Docker ~]# docker -v
  2. Docker version 26.1.4, build 5650f9b
  3. [root@Docker ~]# 

或者同时可以查看到服务端和客户端信息:

  1. [root@Docker ~]# docker version
  2. Client: Docker Engine - Community
  3.  Version:           26.1.4
  4.  API version:       1.45
  5.  Go version:        go1.21.11
  6.  Git commit:        5650f9b
  7.  Built:             Wed Jun  5 11:32:04 2024
  8.  OS/Arch:           linux/amd64
  9.  Context:           default
  10. Server: Docker Engine - Community
  11.  Engine:
  12.   Version:          26.1.4
  13.   API version:      1.45 (minimum version 1.24)
  14.   Go version:       go1.21.11
  15.   Git commit:       de5c9cf
  16.   Built:            Wed Jun  5 11:31:02 2024
  17.   OS/Arch:          linux/amd64
  18.   Experimental:     false
  19.  containerd:
  20.   Version:          1.6.33
  21.   GitCommit:        d2d58213f83a351ca8f528a95fbd145f5654e957
  22.  runc:
  23.   Version:          1.1.12
  24.   GitCommit:        v1.1.12-0-g51d5e94
  25.  docker-init:
  26.   Version:          0.19.0
  27.   GitCommit:        de40ad0
  28. [root@Docker ~]# 
1.4配置镜像加速

由于 Docker 默认从官方镜像源下载镜像,速度可能较慢。可以配置国内镜像源(如阿里云镜像源)来加速镜像的下载。

编辑 /etc/docker/daemon.json 文件内容,如下:

  1. [root@Docker ~]# vim /etc/docker/daemon.json
  2. [root@Docker ~]# cat /etc/docker/daemon.json 
  3. {
  4.   "registry-mirrors": [
  5.     "https://registry.docker-cn.com",
  6.     "http://hub-mirror.c.163.com",
  7.     "https://docker.mirrors.ustc.edu.cn",
  8.     "https://dockerhub.azk8s.cn",
  9.     "https://mirror.ccs.tencentyun.com",
  10.     "https://registry.cn-hangzhou.aliyuncs.com",
  11.     "https://docker.mirrors.ustc.edu.cn",
  12.     "https://docker.1panel.live",
  13.     "https://atomhub.openatom.cn/",
  14.     "https://hub.uuuadc.top",
  15.     "https://docker.anyhub.us.kg",
  16.     "https://dockerhub.jobcher.com",
  17.     "https://dockerhub.icu",
  18.     "https://docker.ckyl.me",
  19.     "https://docker.awsl9527.cn"
  20.   ]
  21. }

图片

重载 systemd 服务和重启 docker :

  1. [root@Docker ~]# systemctl daemon-reload
  2. [root@Docker ~]# systemctl restart docker
  3. [root@Docker ~]# 
2.安装Docker compose

Docker Compose 是一个用于定义和运行多容器应用程序的工具。它是实现流畅、高效开发和部署体验的关键。

Compose 简化了对整个应用程序堆栈的控制,使得在单个、易于理解的 YAML 配置文件中管理服务、网络和卷变得轻而易举。然后,只需一个命令,您就可以从配置文件中创建并启动所有服务。

Compose 适用于所有环境,包括生产环境、暂存环境、开发环境、测试环境以及持续集成(CI)工作流。它还提供了管理应用程序整个生命周期的命令:

  • 启动、停止和重建服务

  • 查看运行服务的状态

  • 实时查看运行服务的日志输出

  • 在服务上运行一次性命令

2.1下载docker-compose文件

通过curl命令下载,并指定保存到 /usr/local/bin/docker-compose 目录下:

curl -L https://github.com/docker/compose/releases/download/v2.32.1/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose

如下:

  1. [root@Docker ~]# curl -L https://github.com/docker/compose/releases/download/v2.32.1/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
  2.   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
  3.                                  Dload  Upload   Total   Spent    Left  Speed
  4.   0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  5. 100 61.6M  100 61.6M    0     0  2078k      0  0:00:30  0:00:30 --:--:-- 2153k
  6. [root@Docker ~]# 

图片

2.2增加文件执行权限
  1. [root@Docker ~]# chmod +x /usr/local/bin/docker-compose
  2. [root@Docker ~]# 

查看版本:

  1. [root@Docker ~]# docker-compose version
  2. Docker Compose version v2.32.1
  3. [root@Docker ~]# 
3.Docker镜像仓库搭建

搭建镜像仓库可以基于Docker官方提供的DockerRegistry来实现。

https://docs.docker.com/registry/

图片

3.1搭建简化版的镜像仓库

Docker 官方提供了一个简化版的 Docker Registry 镜像,具备完整的仓库管理功能,但缺乏图形化界面。下面是一个简单的搭建命令:

  1. docker run -d \
  2.     --restart=always \
  3.     --name registry \
  4.     -p 5000:5000 \
  5.     -v registry-data:/var/lib/registry \
  6.     registry

这个命令中的参数说明:

  • -d: 后台运行容器。

  • --restart=always: 设置容器总是在 Docker 启动时重新启动。

  • --name registry: 为容器指定一个名字,这里是 registry。

  • -p 5000:5000: 将主机的 5000 端口映射到容器的 5000 端口。

  • -v registry-data:/var/lib/registry: 挂载数据卷 registry-data 到容器内的 /var/lib/registry 目录,用于持久化存储镜像数据。

  • registry: 使用的镜像名称。

图片

通过上述命令,就成功运行了一个 Docker Registry 服务。访问:

http://192.168.250.22:5000/v2/_catalog

可以查看当前私有镜像服务中包含的镜像:

图片

暂为空。

3.2搭建带有图形化界面的镜像仓库

通过 Docker Compose,可以很容易地搭建一个带有图形化界面的 Docker Registry 服务。

以下是一个简单的 docker-compose.yml 文件:

  1. version: '3.0'
  2. services:
  3.   registry:
  4.     image: registry
  5.     volumes:
  6.       - ./registry-data:/var/lib/registry
  7.   ui:
  8.     image: joxit/docker-registry-ui:static
  9.     ports:
  10.       - 8080:80
  11.     environment:
  12.       - REGISTRY_TITLE=我的私有仓库
  13.       - REGISTRY_URL=http://registry:5000
  14.     depends_on:
  15.       - registry
3.3 配置 Docker 信任地址

这里采用的是 http 协议,默认不被 Docker 信任,所以需要做一个配置:

编辑 /etc/docker/daemon.json文件:

  1. [root@Docker ~]# vim /etc/docker/daemon.json
  2. [root@Docker ~]# 

然后添加:

"insecure-registries": ["http://192.168.250.22:8080"]

  1. [root@Docker ~]# cat /etc/docker/daemon.json
  2. {
  3.   "registry-mirrors": [
  4.     "https://registry.docker-cn.com",
  5.     "http://hub-mirror.c.163.com",
  6.     "https://docker.mirrors.ustc.edu.cn",
  7.     "https://dockerhub.azk8s.cn",
  8.     "https://mirror.ccs.tencentyun.com",
  9.     "https://registry.cn-hangzhou.aliyuncs.com",
  10.     "https://docker.mirrors.ustc.edu.cn",
  11.     "https://docker.1panel.live",
  12.     "https://atomhub.openatom.cn/",
  13.     "https://hub.uuuadc.top",
  14.     "https://docker.anyhub.us.kg",
  15.     "https://dockerhub.jobcher.com",
  16.     "https://dockerhub.icu",
  17.     "https://docker.ckyl.me",
  18.     "https://docker.awsl9527.cn"
  19.   ],
  20.   "insecure-registries": ["http://192.168.250.22:8080"]
  21. }

图片

然后重载 Docker 守护进程配置并重启 Docker:

  1. [root@Docker ~]# systemctl daemon-reload
  2. [root@Docker ~]# systemctl restart docker

这样,就成功搭建了一个简化版的 Docker 镜像仓库,并且还可以使用 Docker Compose 部署一个带有图形化界面的 Docker Registry。

然后运行命令:docker-compose up -d

  1. [root@Docker ~]# docker-compose up -d
  2. WARN[0000] /root/docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion 
  3. [+] Running 12/12
  4.  ✔ ui Pulled                                                                                                                                                                                               50.9s 
  5.    ✔ 540db60ca938 Pull complete                                                                                                                                                                            15.1s 
  6.    ✔ 197dc8475a23 Pull complete                                                                                                                                                                            16.7s 
  7.    ✔ 39ea657007e5 Pull complete                                                                                                                                                                            16.9s 
  8.    ✔ 37afbf7d4c3d Pull complete                                                                                                                                                                            17.0s 
  9.    ✔ 0c01f42c3df7 Pull complete                                                                                                                                                                            17.3s 
  10.    ✔ d590d87c9181 Pull complete                                                                                                                                                                            17.4s 
  11.    ✔ 3333c94ae44f Pull complete                                                                                                                                                                            17.6s 
  12.    ✔ 33d7cca6fc9f Pull complete                                                                                                                                                                            17.9s 
  13.    ✔ 076b2dd9bdd1 Pull complete                                                                                                                                                                            18.0s 
  14.    ✔ b70198f04ee7 Pull complete                                                                                                                                                                            18.2s 
  15.    ✔ 1fb6c5acc953 Pull complete                                                                                                                                                                            18.3s 
  16. [+] Running 3/3
  17.  ✔ Network root_default       Created                                                                                                                                                                       0.2s 
  18.  ✔ Container root-registry-1  Started                                                                                                                                                                       1.6s 
  19.  ✔ Container root-ui-1        Started                                                                                                                                                                       2.0s 
  20. [root@Docker ~]# 

然后输入仓库地址:

http://192.168.250.22:8080/

就可以看到私有镜像查看的 UI 界面,如下:

图片

注:本文转载自blog.csdn.net的架构师之路魂的文章"https://blog.csdn.net/a1010256340/article/details/144828982"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

122
操作系统
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top