在 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.mzph.cn/pingmian/62785.shtml

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

相关文章

Unity-Particle System属性介绍(一)基本属性

什么是ParticleSystem 粒子系统是Unity中用于模拟大量粒子的行为的组件。每个粒子都有一个生命周期&#xff0c;包括出生、运动、颜色变化、大小变化和死亡等。粒子系统可以用来创建烟雾、火焰、水、雨、雪、尘埃、闪电和其他各种视觉效果。 开始 在项目文件下创建一个Vfx文件…

.NET8/.NETCore 依赖注入:自动注入项目中所有接口和自定义类

.NET8/.NETCore 依赖接口注入&#xff1a;自动注入项目中所有接口和自定义类 目录 自定义依赖接口扩展类&#xff1a;HostExtensions AddInjectionServices方法GlobalAssemblies 全局静态类测试 自定义依赖接口 需要依赖注入的类必须实现以下接口。 C# /// <summary>…

Brain.js(二):项目集成方式详解——npm、cdn、下载、源码构建

Brain.js 是一个强大且易用的 JavaScript 神经网络库&#xff0c;适用于前端和 Node.js 环境&#xff0c;帮助开发者轻松实现机器学习功能。 在前文Brain.js&#xff08;一&#xff09;&#xff1a;可以在浏览器运行的、默认GPU加速的神经网络库概要介绍-发展历程和使用场景中&…

使用pyQT完成简单登录界面

import sysfrom PyQt6.QtGui import QMovie,QPixmap from PyQt6.QtWidgets import QApplication, QWidget, QLabel, QPushButton,QLineEdit#封装我的窗口类 class MyWidget(QWidget):#构造函数def __init__(self):#初始化父类super().__init__()# 设置窗口大小self.resize(330,…

理解 Python PIL库中的 convert(‘RGB‘) 方法:为何及如何将图像转换为RGB模式

理解 Python PIL库中的 convert(RGB) 方法&#xff1a;为何及如何将图像转换为RGB模式 在图像处理中&#xff0c;保持图像数据的一致性和可操作性是至关重要的。Python的Pillow库&#xff08;继承自PIL, Python Imaging Library&#xff09;提供了强大的工具和方法来处理图像&…

avcodec_alloc_context3,avcodec_open2,avcodec_free_context,avcodec_close

avcodec_alloc_context3 是创建编解码器上下文&#xff0c;需要使用 avcodec_free_context释放 需要使用avcodec_free_context 释放 /** * Allocate an AVCodecContext and set its fields to default values. The * resulting struct should be freed with avcodec_free_co…

linux安装部署mysql资料

安装虚拟机 等待检查完成 选择中文 软件选择 网络和主机名 开始安装 设置root密码 ADH-password 创建用户 等待安装完成 重启 接受许可证 Centos 7 64安装完成 安装mysql开始 Putty连接指定服务器 在 opt目录下新建download目录 将mysql文件传到该目录下 查看linux服务器的…

vscode 怎么下载 vsix 文件?

参考&#xff1a;https://marketplace.visualstudio.com/items?itemNameMarsCode.marscode-extension 更好的办法&#xff1a;直接去相关插件的 github repo 下载老版本 https://github.com/VSCodeVim/Vim/releases?page5 或者&#xff0c;去 open-vsx.org 下载老版本 点击这…

医院管理系统

私信我获取源码和万字论文&#xff0c;制作不易&#xff0c;感谢点赞支持。 医院管理系统 摘要 随着信息互联网信息的飞速发展&#xff0c;医院也在创建着属于自己的管理系统。本文介绍了医院管理系统的开发全过程。通过分析企业对于医院管理系统的需求&#xff0c;创建了一个计…

AWS账号提额

Lightsail提额 控制台右上角&#xff0c;用户名点开&#xff0c;选择Service Quotas 在导航栏中AWS服务中找到lightsail点进去 在搜索框搜索instance找到相应的实例类型申请配额 4.根据自己的需求选择要提额的地区 5.根据需求来提升配额数量,提升小额配额等大约1小时生效 Ligh…

SprinBoot整合KafKa的使用(详解)

前言 1. 高吞吐量&#xff08;High Throughput&#xff09; Kafka 设计的一个核心特性是高吞吐量。它能够每秒处理百万级别的消息&#xff0c;适合需要高频次、低延迟消息传递的场景。即使在大规模分布式环境下&#xff0c;它也能保持很高的吞吐量和性能&#xff0c;支持低延…

Day52 | 动态规划 :单调栈 每日温度下一个更大的元素I下一个更大元素II

Day52 | 动态规划 &#xff1a;单调栈 每日温度&&下一个更大的元素I&&下一个更大元素II 单调栈【基础算法精讲 26】_哔哩哔哩_bilibili 及时去掉无用数据&#xff0c;保证栈中元素有序 文章目录 Day52 | 动态规划 &#xff1a;单调栈 每日温度&&下一…

第30天:安全开发-JS 应用NodeJS 指南原型链污染Express 框架功能实现审计0

时间轴&#xff1a; 演示案例&#xff1a; 环境搭建-NodeJS-解析安装&库安装 功能实现-NodeJS-数据库&文件&执行 安全问题-NodeJS-注入&RCE&原型链 案例分析-NodeJS-CTF 题目&源码审计 开发指南-NodeJS-安全 SecGuide 项目、 环境搭建-NodeJ…

Java与AWS S3的文件操作

从零开始&#xff1a;Java与AWS S3的文件操作 一、什么是 AWS S3&#xff1f;AWS S3 的特点AWS S3 的应用场景 二、Java整合S3方法使用 MinIO 客户端操作 S3使用 AWS SDK 操作 S3 &#xff08;推荐使用&#xff09; 三、总结 一、什么是 AWS S3&#xff1f; Amazon Simple Sto…

Unity中的数学应用 之 插值函数处理角色朝向 (初中难度 +Matlab)

CodeMonkey教程&#xff1a; https://www.youtube.com/watch?vQDWlGOocKm8 Siki学院汉化教程&#xff1a;如何使用Unity开发分手厨房&#xff08;胡闹厨房&#xff09;-Unity2023 - SiKi学院|SiKi学堂 - unity|u3d|虚幻|ue4/5|java|python|人工智能|视频教程|在线课程 版本&am…

专业解析 .bashrc 中 ROS 工作空间的加载顺序及其影响 ubuntu 机器人

专业解析 .bashrc 中 ROS 工作空间的加载顺序及其影响 在使用 ROS&#xff08;Robot Operating System&#xff09;进行开发时&#xff0c;通常会涉及多个 Catkin 工作空间&#xff08;Catkin Workspace&#xff09;。这些工作空间包含不同的 ROS 包和节点&#xff0c;可能相互…

第三方Cookie的消亡与Google服务器端标记的崛起

随着互联网用户对隐私保护的关注日益增强&#xff0c;各大浏览器正在逐步淘汰第三方Cookie。这一变革深刻影响了广告商和数字营销人员的用户跟踪和数据分析方式。然而&#xff0c;Google推出的服务器端标记技术为这一挑战提供了新的解决方案。 什么是第三方Cookie&#xff1f; …

SQL注入利用方式(实战Hack World 1)

一、布尔盲注利用 假如注入的网页能返回1或0的提示信息&#xff0c;我们可以写如下代码: select password from admin where username 1 or 11;#11是我们利用的逻辑点&#xff0c;我们能在此处进行一个判断&#xff0c;比如判断某个数据字段第几位上的字符是否为’ 1’&#…

nlp培训重点

SGD梯度下降公式&#xff1a; 当梯度大于0时&#xff0c;变小&#xff0c;往左边找梯度接近0的值。 当梯度小于0时&#xff0c;减去一个负数会变大&#xff0c;往右边找梯度接近0的值&#xff0c;此时梯度从负数到0上升 #coding:utf8import torch import torch.nn as nn impo…

Qt5语法的connect指定多个重载信号槽函数中的具体某一个

Qt5新语法的connect函数&#xff0c;使用起来更加简洁明了&#xff0c;但如果信号槽有同名的多个重载函数&#xff0c;只用类名和函数名就无法绑定&#xff0c;这时&#xff0c;可以使用qOverload来指定参数类型&#xff0c;例如&#xff1a; connect(ui->comboBox, qOverlo…