在 CentOS 上安装 Docker:构建容器化环境全攻略

一、引言

在当今的软件开发与运维领域,Docker 无疑是一颗璀璨的明星。它以轻量级虚拟化的卓越特性,为应用程序的打包、分发和管理开辟了崭新的高效便捷之路。无论是开发环境的快速搭建,还是生产环境的稳定部署,Docker 都展现出了无与伦比的优势。本文将带领您深入探索在 CentOS 系统上安装 Docker 的详细流程,涵盖从前期准备到安装、配置、常用命令以及卸载等全方位的知识,助力您顺利驾驭这一强大的容器化技术。

二、前期准备

更新系统

  • 在着手安装 Docker 之前,务必确保您的 CentOS 系统处于最新状态。使用以下命令进行系统更新:
sudo yum update -y
  • 此命令将升级所有软件包,同时也会对系统内核进行升级(在生产环境中执行此操作需格外谨慎)。若您只想升级软件包而不涉及系统内核,可使用 yum -y upgrade 命令。

检查系统版本与内核版本

  • 确认您的 CentOS 版本以保障与 Docker 的兼容性,执行命令:
cat /etc/os-release
  • 同时,检查当前的 Linux 内核版本,官方建议内核版本在 3.10 以上。使用命令:
uname -r
  • 例如,输出可能为 3.10.0 - 1160.36.2.el7.x86_64,表明内核版本符合要求。

系统要求核对

  • 确保系统为 64 位架构。
  • 内存方面,至少具备 2GB RAM(推荐 4GB)。
  • 另外,可选择禁用 SELinux(虽为可选但推荐操作),关闭防火墙(同样为可选但推荐),以减少潜在的安装与运行干扰因素。

三、安装 Docker

(一)卸载旧版本(若存在)

如果系统之前安装过旧版本的 Docker,为避免冲突,应先将其卸载。执行以下命令:

sudo yum remove docker docker - common docker - selinux docker - engine

(二)安装依赖包

安装一些必要的软件包,其中 yum - utils 可提供 yum - config - manager 功能,另外两个是 devicemapper 驱动依赖:

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

(三)设置 yum 源

可选择添加 Docker 的中央仓库或国内的阿里仓库。

  • 添加中央仓库
sudo yum-config-manager --add-repo http://download.docker.com/linux/centos/docker-ce.repo
  • 添加阿里仓库
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

(四)选择并安装 Docker 版本

  • 查看可用版本
    • 执行以下命令可列出所有可用的 Docker CE 版本:
sudo yum list docker-ce --showduplicates | sort -r
  • 安装指定版本
    • 从列出的版本中选择一个并进行安装,例如:
sudo yum -y install docker-ce-18.06.3.ce-3.el7

四、启动与测试 Docker

启动 Docker 服务

安装完成后,使用以下命令启动 Docker 服务:

sudo systemctl start docker

设置开机自启

为确保 Docker 在系统每次启动时自动运行,执行命令:

sudo systemctl enable docker
  • 您还可以通过systemctl is-enabled docker 命令来确认是否设置成功,若返回 enabled,则表示设置无误。

重启

重启docker命令

sudo systemctl restart docker

显示 docker 服务当前的状态信息

systemctl status docker.service

验证安装

通过运行一个简单的 hello - world 容器来检验 Docker 是否安装成功并正常运行:

docker pull hello-world
sudo docker run hello-world
  • 如果看到欢迎消息,如 Hello from Docker! This message shows that your installation appears to be working correctly.,则表明 Docker 已经正确安装并可以投入使用。

五、常用 Docker 命令

  • 查看 Docker 版本
docker --version
  • 列出所有容器
docker ps -a
  • 启动容器
docker start <container_id>
  • 停止容器
docker stop <container_id>
  • 删除容器
docker rm <container_id>

六、允许非 root 用户运行 Docker

为了使非 root 用户能够执行 Docker 命令,需要将其添加到 docker 组中。执行以下步骤:

  1. 如果 docker 组不存在,则创建该组:
sudo groupadd docker
  1. 将当前用户添加到 docker 组:
sudo usermod - aG docker $USER
  • 注意,使组成员资格更改生效后,需要注销并重新登录才能正常使用 Docker 命令。

七、卸载 Docker

若因某些原因需要完全卸载 Docker,可执行以下命令:

  • 卸载 Docker 相关软件包:
sudo yum remove docker-ce docker-ce - cli containerd.io - y
  • 删除 Docker 相关数据目录:
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

八、总结

通过以上详尽的步骤,您已经成功在 CentOS 系统上安装了 Docker,并完成了诸如设置开机自启、了解常用命令以及掌握非 root 用户使用权限配置等重要操作。Docker 的强大功能将极大地提升您在应用部署与管理方面的效率和灵活性。无论是开发环境的快速迭代,还是生产环境的稳定运行,Docker 都将成为您得力的技术助手。希望本文能够成为您在 CentOS 上安装和使用 Docker 的有力指南,若您在过程中遇到任何问题或有相关建议,欢迎随时留言交流。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/483039.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

三种方式(oss、本地、minio)图片的上传下载

一、OSS 1、前期准备 1.1 注册阿里云账号&#xff0c;开启对象存储oss功能&#xff0c;创建一个bucket&#xff08;百度教程多的是&#xff0c;跟着创建一个就行&#xff0c;创建时注意存储类型是标准存储&#xff0c;读写权限是公共读&#xff09; 有的在创建桶时读写属性是…

Z2400032基于Java+Mysql+SSM的校园在线点餐系统的设计与实现 代码 论文

在线点餐系统 1.项目描述2. 技术栈3. 项目结构后端前端 4. 功能模块5. 项目实现步骤注意事项 6.界面展示7.源码获取 1.项目描述 本项目旨在开发一个校园在线点餐系统&#xff0c;通过前后端分离的方式&#xff0c;为在校学生提供便捷的餐厅点餐服务&#xff0c;同时方便餐厅和…

【前端】理解 JavaScript 中 typeof 操作符的独特行为

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: 前端 文章目录 &#x1f4af;前言&#x1f4af;typeof 操作符的基本使用&#x1f4af;为什么 typeof 数组是 "object"&#xff1f;&#x1f4af;为什么 typeof {} 返回 "object"&#xff1f;&…

Github提交Pull Request教程 Git基础扫盲(零基础易懂)

1 PR是什么&#xff1f; PR&#xff0c;全称Pull Request&#xff08;拉取请求&#xff09;&#xff0c;是一种非常重要的协作机制&#xff0c;它是 Git 和 GitHub 等代码托管平台中常见的功能&#xff0c;被广泛用于参与社区贡献&#xff0c;从而促进项目的发展。 PR的整个过…

C/C++ 数据结构与算法【线性表】 顺序表+链表详细解析【日常学习,考研必备】带图+详细代码

1&#xff09;线性表的定义 线性表&#xff08;List&#xff09;&#xff1a;零个或多个数据元素的有限序列。 线性表的数据集合为{a1,a2,…,an}&#xff0c;假设每个元素的类型均为DataType。其中&#xff0c;除第一个元素a1外&#xff0c;每一个元素有且只有一个直接前驱元素…

浏览器的数据六种存储方法比较 :LocalStorage vs. IndexedDB vs. Cookies vs. OPFS vs. WASM-SQLite

在构建该 Web 应用程序&#xff0c;并且希望将数据存储在用户浏览器中。也许您只需要存储一些小标志&#xff0c;或者甚至需要一个成熟的数据库。 我们构建的 Web 应用程序类型发生了显着变化。在网络发展的早期&#xff0c;我们提供静态 html 文件。然后我们提供动态渲染的 h…

【C++boost::asio网络编程】有关异步读写api的笔记

异步读写api 异步写操作async_write_someasync_send 异步读操作async_read_someasync_receive 定义一个Session类&#xff0c;主要是为了服务端专门为客户端服务创建的管理类 class Session { public:Session(std::shared_ptr<asio::ip::tcp::socket> socket);void Conn…

芯片测试-RF中的S参数,return loss, VSWR,反射系数,插入损耗,隔离度等

RF中的S参数&#xff0c;return loss, VSWR&#xff0c;反射系数&#xff0c;插入损耗&#xff0c;隔离度 &#x1f4a2;S参数&#x1f4a2;&#x1f4a2;S11与return loss&#xff0c;VSWR&#xff0c;反射系数&#x1f4a2;&#x1f4a2;S21&#xff0c;插入损耗和增益&#…

2024年Java面试八股文大全(附答案版)

很多人会问Java面试八股文有必要背吗&#xff1f; 我的回答是&#xff1a;很有必要。你可以讨厌这模式&#xff0c;但你一定要去背&#xff0c;因为不背你就进不了大厂。 国内的互联网面试&#xff0c;恐怕是现存的、最接近科举考试的制度。 而且&#xff0c;我国的八股文确…

我不是挂王-用python实现燕双鹰小游戏

一.准备工作 1.前言提要 作为程序员在浩瀚的数字宇宙中&#xff0c;常常感觉现实世界是一台精密运作的虚拟机&#xff0c;其底层的物理逻辑如同铁律般难以撼动。然而我们拥有在虚拟世界中自由驰骋、创造无限可能的独特力量。突发奇我想用Python写出燕双鹰的小游戏,这样想想就很…

Python语法基础(七)

&#x1f308;个人主页&#xff1a;羽晨同学 &#x1f4ab;个人格言:“成为自己未来的主人~” 我们今天的这篇文章&#xff0c;主要和大家讲一下函数重写的问题。 首先&#xff0c;我们要知道的是&#xff0c;函数重写是有前提条件的&#xff0c;那就是继承。 自定义函数…

NaviveUI框架的使用 ——安装与引入(图标安装与引入)

文章目录 概述安装直接引入引入图标样式库 概述 &#x1f349;Naive UI 是一个轻量、现代化且易于使用的 Vue 3 UI 组件库&#xff0c;它提供了一组简洁、易用且功能强大的组件&#xff0c;旨在为开发者提供更高效的开发体验&#xff0c;特别是对于构建现代化的 web 应用程序。…

神经网络入门实战:(九)分类问题 → 神经网络模型搭建模版和训练四步曲

(一) 神经网络模型搭建官方文档 每一层基本都有权重和偏置&#xff0c;可以仔细看官方文档。 pytorch 官网的库&#xff1a;torch.nn — PyTorch 2.5 documentation Containers库&#xff1a;用来搭建神经网络框架&#xff08;包含所有的神经网络的框架&#xff09;&#xff1b…

以AI算力助推转型升级,暴雨亮相CCF中国存储大会

2024年11月29日-12月1日&#xff0c;CCF中国存储大会&#xff08;CCF ChinaStorage 2024&#xff09;在广州市长隆国际会展中心召开。本次会议以“存力、算力、智力”为主题&#xff0c;由中国计算机学会&#xff08;CCF&#xff09;主办&#xff0c;中山大学计算机学院、CCF信…

Java中的“抽象类“详解

1.抽象类的定义 在面向对象的概念中,所有的对象都是通过,类来描述的,但是反过来,不是所有的类都是用来描述对象的,如果一个类中没有包含足够的信息来描述一个具体的对象,这样的类就是抽象类 抽象类的概念是比较抽象的,比如现在有一个"父类"是"动物类",继…

NVR监测软件EasyNVR多个NVR同时管理:录播主机的5条常见问题与解决办法

视频监控广泛应用于城市治安、交通管理、商业安保及家庭监控等领域。在使用EasyNVR平台管理多个NVR设备时&#xff0c;尤其是涉及到海康录播主机的场景中&#xff0c;使用者可能会遇到一些常见问题。本文将探讨海康录播主机的五个常见问题及其解决办法。 1、海康录播主机的5条常…

多级缓存设计实践

缓存是什么&#xff1f; 缓存技术是一种用于加速数据访问的优化策略。它通过将频繁访问的数据存储在高速存储介质&#xff08;如内存&#xff09;中&#xff0c;减少对慢速存储设备&#xff08;如硬盘或远程服务器&#xff09;的访问次数&#xff0c;从而提升系统的响应速度和…

Linux网络编程之---多线程实现并发服务器

下面我们来使用tcp集合多线程实现并发服务器 一.服务端 #include <stdio.h> #include <arpa/inet.h> #include <unistd.h> #include <stdlib.h> #include <string.h> #include <pthread.h>typedef struct sockinfo {char ip[16];unsigne…

Web API基本认知

作用和分类 作用&#xff1a;就是使用JS去操作html和浏览器 分类&#xff1a;DOM&#xff08;文档对象模型&#xff09;、BOM&#xff08;浏览器对象模型&#xff09; 什么是DOM DOM&#xff08;Document Object Model ——文档对象模型&#xff09;是用来呈现以及与任意 HTM…

《Python基础》之Numpy库

目录 简介 一、创建数组 1、根据列表创建数组 2、创建全0数组 3、创建全1数组 4、创建单位矩阵 5、创建随机数数组 二、查看数组的属性 三、 数组的操作 1、索引和切片 2、变形 3、拼接 &#xff08;1&#xff09;、vstack() 纵向拼接 &#xff08;2&#xff09;、hs…