在 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
组中。执行以下步骤:
- 如果
docker
组不存在,则创建该组:
sudo groupadd docker
- 将当前用户添加到
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 的有力指南,若您在过程中遇到任何问题或有相关建议,欢迎随时留言交流。
相关文章:
在 CentOS 上安装 Docker:构建容器化环境全攻略
一、引言 在当今的软件开发与运维领域,Docker 无疑是一颗璀璨的明星。它以轻量级虚拟化的卓越特性,为应用程序的打包、分发和管理开辟了崭新的高效便捷之路。无论是开发环境的快速搭建,还是生产环境的稳定部署,Docker 都展现出了…...
Python练习(2)
重复元素判定续。利用集合的无重复性来编写一个程序如果有一个元素出现了不止一次则返回true但不要改变原来列表的值: 一: def has_duplicates(lst): # 使用集合来存储已经见过的元素 seen set() for item in lst: if item in seen: # 如果元素已经在…...

如何实现一套键盘鼠标控制两台计算机(罗技Options+ Flow功能快速实现演示)
需求背景 之前我写过一篇文章如何实现一套键盘鼠标控制两台计算机(Mouse Without Borders快速上手教程)_一套键鼠控制两台电脑-CSDN博客 当我们在局域网内有两台计算机,想使用一套键鼠操控时,可以安装Mouse Without Borders软件…...
现代应用程序中基于 Cell 架构的安全防护之道
在飞速发展的软件开发领域,基于 Cell 的架构日益流行起来。其概念源自船舶舱壁的设计准则,即单独的水密舱室能允许故障孤立存在。通过将这个概念应用于软件,我们创建了一个架构,将应用程序划分为离散的、可管理的组件,…...

【导航查询】.NET开源 ORM 框架 SqlSugar 系列
.NET开源 ORM 框架 SqlSugar 系列 【开篇】.NET开源 ORM 框架 SqlSugar 系列【入门必看】.NET开源 ORM 框架 SqlSugar 系列【实体配置】.NET开源 ORM 框架 SqlSugar 系列【Db First】.NET开源 ORM 框架 SqlSugar 系列【Code First】.NET开源 ORM 框架 SqlSugar 系列【数据事务…...
【基础分析】——Qt 信号和槽的机制 优点
QT信号和槽机制的优点包括: 1、类型安全: 信号和槽的签名必须是等同的,即信号的参数类型和参数个数必须与接收该信号的槽的参数类型和参数个数相同。 2、松散耦合: 信号和槽机制减弱了Qt对象的耦合度。激发信号的Qt对象无须知道…...

Vue3学习宝典
1.ref函数调用的方式生成响应式数据,可以传复杂和简单数据类型 <script setup> // reactive接收一个对象类型的数据 import { reactive } from vue;// ref用函数调用的方式生成响应式数据,可以传复杂和简单数据类型 import { ref } from vue // 简…...

leecode96.不同的二叉搜索树
在画的过程中发现规律,每次选择不同的节点作为根节点,左右两边的节点再排列组合一下就能求出总数 class Solution { public:int numTrees(int n) {vector<int> dp(n1,0);dp[0]1;for(int i1;i<n;i)for(int j0;j<i;j)dp[i]dp[i-j-1]*dp[j];ret…...

树莓派基本配置-基础配置配置
树莓派基本配置 文章目录 树莓派基本配置前言硬件准备树莓派刷机串口方式登录树莓派接入网络ssh方式登录树莓派更换国内源xrdp界面登录树莓派远程文件传输FileZilla 前言 树莓派是一款功能强大且价格实惠的小型计算机,非常适合作为学习编程、物联网项目、家庭自动化…...

手机卡限速丨中国移动5G变3G,网速500kb
以下猜测错误,又有新的猜测:河南移动的卡出省限速。可能是因为流量结算。 “2024年7月1日起,中国移动集团内部将开启跨省流量结算” 在深圳四五年了,之前没有过,就从上个月开始。11月底解除限速,12月刚开…...
SpringCloud之OpenFeign:OpenFeign与Feign谁更适合你的SpringCloud项目?
目录 一、OpenFeign简介1、OpenFeign是什么(1)核心概念(2)工作原理(3)主要特点(4)使用场景(5)与Feign的区别(6)总结 2、OpenFeign与Fe…...
yt6801 ubuntu有线连接驱动安装
耀世16pro的有线网卡驱动安装 下载地址: YT6801 千兆PCIE以太网控制器芯片 1. 创建安装目录 mkdir yt68012. 解压驱动文件 unzip yt6801-linux-driver-1.0.27.zip -d yt68013. 进入驱动目录 cd yt68014. 安装驱动 以 root 权限运行安装脚本: sudo su ./yt_ni…...

算法日记 36-38day 动态规划
今天把动态规划结束掉,包括子序列以及编辑距离 题目:最长公共子序列 1143. 最长公共子序列 - 力扣(LeetCode) 给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 &…...
hdlbits系列verilog解答(Dff16e-同步复位上升沿16位触发器)-85
文章目录 一、问题描述二、verilog源码三、仿真结果一、问题描述 本节学习如何创建16位D触发器。有时仅修改一组触发器一部分是有用的。字节使能控制16位寄存器的哪一个字节应当被修改,其中teena[1]控制高位字节[15:8],teena[0]控制低位字节[7:0]。restn是一个同步低电平有效…...

HTTPTomcatServlet
今日目标: 了解JavaWeb开发的技术栈理解HTTP协议和HTTP请求与响应数据的格式掌握Tomcat的使用掌握在IDEA中使用Tomcat插件理解Servlet的执行流程和生命周期掌握Servlet的使用和相关配置1,Web概述 1.1 Web和JavaWeb的概念 Web是全球广域网,也称为万维网(www),能够通过浏览…...

IDEA连接Apifox客户端
IDEA连接Apifox客户端 一、下载Apifox安装包二、IDEA配置三、配置Apifox和IDEA项目同步 一、下载Apifox安装包 Apifox官网,根据自己的操作系统下载对应的Apifox安装包,我是windows系统所以下载的是windows版。 下载 默认仅为我安装,点击下一…...

Linux的奇妙冒险——进程PCB第一讲
进程 1.进程的基本概念2.进程的描述3.查看进程4.通过系统调用获得pid和ppid5.通过fork()系统调用创建子进程6.进程状态1.浅度睡眠 S2.深度睡眠 D3 暂停状态T4.僵尸状态 Z5.死亡状态 X 7.僵尸进程8.孤儿进程9.进程优先级 1.进程的基本概念 任何计算机系统都包含一个基本的程序…...
阿里巴巴热土计划企划金:点燃贫困地区可持续发展的希望之火
在当今社会,扶贫工作已不再仅仅停留在简单的物质援助层面,而是更加注重通过资金支持和资源整合,推动贫困地区的可持续发展。阿里巴巴集团,作为全球领先的电子商务巨头,凭借其强大的影响力和社会责任感,推出…...

2-6 C浮点数指针运算案例
1.0 浮点数指针 float f 1.2f:如何将它对应的4个字节地址空间的数值以十六进制打印出来? 数据在所有计算机中都是以二进制形式存储的,然后以8个位为一个单元称作“字节”,作为计 量和运算处理单元,比如我们说一个文件大小是1MB,指…...

开源的跨平台SQL 编辑器Beekeeper Studio
一款开源的跨平台 SQL 编辑器,提供 SQL 语法高亮、自动补全、数据表内容筛选与过滤、连接 Web 数据库、存储历史查询记录等功能。该编辑器支持 SQLite、MySQL、MariaDB、Postgres 等主流数据库,并兼容 Windows、macOS、Linux 等桌面操作系统。 项目地址…...
RestClient
什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级ÿ…...
Android Wi-Fi 连接失败日志分析
1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分: 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析: CTR…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误
HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...
STM32+rt-thread判断是否联网
一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...

visual studio 2022更改主题为深色
visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中,选择 环境 -> 常规 ,将其中的颜色主题改成深色 点击确定,更改完成...

基于 TAPD 进行项目管理
起因 自己写了个小工具,仓库用的Github。之前在用markdown进行需求管理,现在随着功能的增加,感觉有点难以管理了,所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD,需要提供一个企业名新建一个项目&#…...
【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论
路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中(图1): mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...

GitFlow 工作模式(详解)
今天再学项目的过程中遇到使用gitflow模式管理代码,因此进行学习并且发布关于gitflow的一些思考 Git与GitFlow模式 我们在写代码的时候通常会进行网上保存,无论是github还是gittee,都是一种基于git去保存代码的形式,这样保存代码…...
MySQL 主从同步异常处理
阅读原文:https://www.xiaozaoshu.top/articles/mysql-m-s-update-pk MySQL 做双主,遇到的这个错误: Could not execute Update_rows event on table ... Error_code: 1032是 MySQL 主从复制时的经典错误之一,通常表示ÿ…...

论文阅读:LLM4Drive: A Survey of Large Language Models for Autonomous Driving
地址:LLM4Drive: A Survey of Large Language Models for Autonomous Driving 摘要翻译 自动驾驶技术作为推动交通和城市出行变革的催化剂,正从基于规则的系统向数据驱动策略转变。传统的模块化系统受限于级联模块间的累积误差和缺乏灵活性的预设规则。…...