Centos7.8服务器在线安装配置Docker

23 阅读9分钟

1.安装Docker社区版 1.1 安装准备 1.1.1 检查系统环境 Docker 不支持32位的 CentOS 7 系统,要求系统内核版本为3.10 以上,可以通过命令 uname -r 来查看当前系统的内核版本。

[root@Docker ~]# uname -r 3.10.0-1127.el7.x86_64 [root@Docker ~]#

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

yum remove docker
docker-client
docker-client-latest
docker-common
docker-latest
docker-latest-logrotate
docker-logrotate
docker-selinux
docker-engine-selinux
docker-engine
docker-ce

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

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

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

wget -O /etc/yum.repos.d/CentOS-Base.repo mirrors.aliyun.com/repo/Centos… Centos7.8 安装配置Docker_docker-compose

[root@Docker ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo mirrors.aliyun.com/repo/Centos… --2024-12-19 09:59:12-- mirrors.aliyun.com/repo/Centos… 正在解析主机 mirrors.aliyun.com (mirrors.aliyun.com)... 124.236.28.176, 124.236.28.180, 124.238.244.131, ... 正在连接 mirrors.aliyun.com (mirrors.aliyun.com)|124.236.28.176|:443... 已连接。 已发出 HTTP 请求,正在等待回应... 200 OK 长度:2523 (2.5K) [application/octet-stream] 正在保存至: “/etc/yum.repos.d/CentOS-Base.repo”

100%[=======================================================================================================================================================================>] 2,523 --.-K/s 用时 0s

2024-12-19 09:59:17 (115 MB/s) - 已保存 “/etc/yum.repos.d/CentOS-Base.repo” [2523/2523])

[root@Docker ~]#

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

[root@Docker ~]# yum makecache

Centos7.8 安装配置Docker_linux_02

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

yum install -y yum-utils
device-mapper-persistent-data
lvm2 --skip-broken

Centos7.8 安装配置Docker_docker-compose_03

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

[root@Docker ~]# yum-config-manager --add-repo mirrors.aliyun.com/docker-ce/l… 已加载插件:fastestmirror, langpacks adding repo from: mirrors.aliyun.com/docker-ce/l… grabbing file mirrors.aliyun.com/docker-ce/l… to /etc/yum.repos.d/docker-ce.repo repo saved to /etc/yum.repos.d/docker-ce.repo [root@Docker ~]#

查看内容:

[root@Docker ~]# cat /etc/yum.repos.d/docker-ce.repo [docker-ce-stable] name=Docker CE Stable - basearchbaseurl=https://mirrors.aliyun.com/dockerce/linux/centos/basearch baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/releasever/$basearch/stable enabled=1 gpgcheck=1 gpgkey=mirrors.aliyun.com/docker-ce/l…

[docker-ce-stable-debuginfo] name=Docker CE Stable - Debuginfo basearchbaseurl=https://mirrors.aliyun.com/dockerce/linux/centos/basearch baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/releasever/debug-$basearch/stable enabled=0 gpgcheck=1 gpgkey=mirrors.aliyun.com/docker-ce/l…

[docker-ce-stable-source] name=Docker CE Stable - Sources baseurl=mirrors.aliyun.com/docker-ce/l… enabled=0 gpgcheck=1 gpgkey=mirrors.aliyun.com/docker-ce/l…

[docker-ce-test] name=Docker CE Test - basearchbaseurl=https://mirrors.aliyun.com/dockerce/linux/centos/basearch baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/releasever/$basearch/test enabled=0 gpgcheck=1 gpgkey=mirrors.aliyun.com/docker-ce/l…

[docker-ce-test-debuginfo] name=Docker CE Test - Debuginfo basearchbaseurl=https://mirrors.aliyun.com/dockerce/linux/centos/basearch baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/releasever/debug-$basearch/test enabled=0 gpgcheck=1 gpgkey=mirrors.aliyun.com/docker-ce/l…

[docker-ce-test-source] name=Docker CE Test - Sources baseurl=mirrors.aliyun.com/docker-ce/l… enabled=0 gpgcheck=1 gpgkey=mirrors.aliyun.com/docker-ce/l…

[docker-ce-nightly] name=Docker CE Nightly - basearchbaseurl=https://mirrors.aliyun.com/dockerce/linux/centos/basearch baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/releasever/$basearch/nightly enabled=0 gpgcheck=1 gpgkey=mirrors.aliyun.com/docker-ce/l…

[docker-ce-nightly-debuginfo] name=Docker CE Nightly - Debuginfo basearchbaseurl=https://mirrors.aliyun.com/dockerce/linux/centos/basearch baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/releasever/debug-$basearch/nightly enabled=0 gpgcheck=1 gpgkey=mirrors.aliyun.com/docker-ce/l…

[docker-ce-nightly-source] name=Docker CE Nightly - Sources baseurl=mirrors.aliyun.com/docker-ce/l… enabled=0 gpgcheck=1 gpgkey=mirrors.aliyun.com/docker-ce/l… [root@Docker ~]#

然后更新 yum 缓存:

[root@Docker ~]# yum makecache fast

Centos7.8 安装配置Docker_yum_04

1.2.3安装Docker社区版 输入 yum install -y docker-ce 命令开始安装:

[root@Docker ~]# yum install -y docker-ce 已加载插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile

  • base: mirrors.aliyun.com
  • extras: mirrors.aliyun.com
  • updates: mirrors.aliyun.com 正在解决依赖关系 --> 正在检查事务 ---> 软件包 docker-ce.x86_64.3.26.1.4-1.el7 将被 安装 --> 正在处理依赖关系 container-selinux >= 2:2.74,它被软件包 3:docker-ce-26.1.4-1.el7.x86_64 需要 …… 已安装: docker-ce.x86_64 3:26.1.4-1.el7

作为依赖被安装: 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
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
slirp4netns.x86_64 0:0.4.3-4.el7_8

完毕! [root@Docker ~]#

安装过程截图如下:

Centos7.8 安装配置Docker_linux_05

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

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

启动之前,输入docker images:

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

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

[root@Docker ~]# systemctl start docker [root@Docker ~]# systemctl status docker ● docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled) Active: active (running) since 四 2024-12-19 10:29:47 CST; 7s ago Docs: docs.docker.com Main PID: 26341 (dockerd) Tasks: 10 Memory: 35.1M CGroup: /system.slice/docker.service └─26341 /usr/bin/dockerd -H fd:// --cnotallow=/run/containerd/containerd.sock

12月 19 10:29:45 Docker systemd[1]: Starting Docker Application Container Engine... 12月 19 10:29:45 Docker dockerd[26341]: time="2024-12-19T10:29:45.888362136+08:00" level=info msg="Starting up" 12月 19 10:29:46 Docker dockerd[26341]: time="2024-12-19T10:29:46.224219879+08:00" level=info msg="Loading containers: start." 12月 19 10:29:46 Docker dockerd[26341]: time="2024-12-19T10:29:46.898469964+08:00" level=info msg="Loading containers: done." 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 versinotallow=26.1.4 12月 19 10:29:47 Docker dockerd[26341]: time="2024-12-19T10:29:47.006599035+08:00" level=info msg="Daemon has completed initialization" 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" 12月 19 10:29:47 Docker systemd[1]: Started Docker Application Container Engine. [root@Docker ~]#

Centos7.8 安装配置Docker_Docker_06

查看 docker 版本:

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

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

[root@Docker ~]# docker version Client: Docker Engine - Community Version: 26.1.4 API version: 1.45 Go version: go1.21.11 Git commit: 5650f9b Built: Wed Jun 5 11:32:04 2024 OS/Arch: linux/amd64 Context: default

Server: Docker Engine - Community Engine: Version: 26.1.4 API version: 1.45 (minimum version 1.24) Go version: go1.21.11 Git commit: de5c9cf Built: Wed Jun 5 11:31:02 2024 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.6.33 GitCommit: d2d58213f83a351ca8f528a95fbd145f5654e957 runc: Version: 1.1.12 GitCommit: v1.1.12-0-g51d5e94 docker-init: Version: 0.19.0 GitCommit: de40ad0 [root@Docker ~]#

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

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

[root@Docker ~]# vim /etc/docker/daemon.json [root@Docker ~]# cat /etc/docker/daemon.json { "registry-mirrors": [ "registry.docker-cn.com", "hub-mirror.c.163.com", "docker.mirrors.ustc.edu.cn", "dockerhub.azk8s.cn", "mirror.ccs.tencentyun.com", "registry.cn-hangzhou.aliyuncs.com", "docker.mirrors.ustc.edu.cn", "docker.1panel.live", "atomhub.openatom.cn/", "hub.uuuadc.top", "docker.anyhub.us.kg", "dockerhub.jobcher.com", "dockerhub.icu", "docker.ckyl.me", "docker.awsl9527.cn" ] }

Centos7.8 安装配置Docker_yum_07

重载 systemd 服务和重启 docker :

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

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

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

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

启动、停止和重建服务 查看运行服务的状态 实时查看运行服务的日志输出 在服务上运行一次性命令 2.1下载docker-compose文件 通过curl命令下载,并指定保存到 /usr/local/bin/docker-compose 目录下:

curl -L github.com/docker/comp… -o /usr/local/bin/docker-compose 1. 如下:

[root@Docker ~]# curl -L github.com/docker/comp… -o /usr/local/bin/docker-compose % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 100 61.6M 100 61.6M 0 0 2078k 0 0:00:30 0:00:30 --:--:-- 2153k [root@Docker ~]#

Centos7.8 安装配置Docker_linux_08

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

查看版本:

[root@Docker ~]# docker-compose version Docker Compose version v2.32.1 [root@Docker ~]#

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

docs.docker.com/registry/

Centos7.8 安装配置Docker_centos_09

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

docker run -d
--restart=always
--name registry
-p 5000:5000
-v registry-data:/var/lib/registry
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: 使用的镜像名称。 Centos7.8 安装配置Docker_linux_10

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

http://192.168.250.22:5000/v2/_catalog

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

Centos7.8 安装配置Docker_centos_11

暂为空。

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

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

version: '3.0' services: registry: image: registry volumes: - ./registry-data:/var/lib/registry ui: image: joxit/docker-registry-ui:static ports: - 8080:80 environment: - REGISTRY_TITLE=我的私有仓库 - REGISTRY_URL=http://registry:5000 depends_on: - registry

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

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

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

然后添加:

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

[root@Docker ~]# cat /etc/docker/daemon.json { "registry-mirrors": [ "registry.docker-cn.com", "hub-mirror.c.163.com", "docker.mirrors.ustc.edu.cn", "dockerhub.azk8s.cn", "mirror.ccs.tencentyun.com", "registry.cn-hangzhou.aliyuncs.com", "docker.mirrors.ustc.edu.cn", "docker.1panel.live", "atomhub.openatom.cn/", "hub.uuuadc.top", "docker.anyhub.us.kg", "dockerhub.jobcher.com", "dockerhub.icu", "docker.ckyl.me", "docker.awsl9527.cn" ], "insecure-registries": ["http://192.168.250.22:8080"] }

Centos7.8 安装配置Docker_docker-compose_12

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

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

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

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

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

然后输入仓库地址:

http://192.168.250.22:8080/

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

Centos7.8 安装配置Docker_linux_13

文章来源:ximaonetwork.cn