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

news2024/12/26 22:34:07

一、引言

在当今的软件开发与运维领域,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.coloradmin.cn/o/2252467.html

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

相关文章

初识QT第一天

思维导图 利用Qt尝试做出原神登陆界面 import sys from PyQt6.QtGui import QIcon, QPixmap, QMovie from PyQt6.QtWidgets import QApplication, QWidget, QLabel, QPushButton, QLineEdit# 封装原神窗口类 class Genshin(QWidget):# 构造函数def __init__(self):# 初始化父类…

【Linux】线程池设计 + 策略模式

&#x1f308; 个人主页&#xff1a;Zfox_ &#x1f525; 系列专栏&#xff1a;Linux 目录 一&#xff1a;&#x1f525; 线程池 1-1 ⽇志与策略模式1-2 线程池设计1-3 线程安全的单例模式1-3-1 什么是单例模式1-3-2 单例模式的特点1-3-3 饿汉实现⽅式和懒汉实现⽅式1-3-4 饿汉…

vim插件管理器vim-plug替代vim-bundle

文章目录 vim-plug与vim-bundle对比vim-plug安装vim-plug管理安装插件相关文章 vim-plug与vim-bundle对比 vim-plug 和 vim-bundle 都是 Vim 的插件管理器&#xff0c;但它们有一些关键的区别。以下是两者的主要对比&#xff1a; 易用性和简洁性 vim-plug: 易用性: vim-plug …

107.【C语言】数据结构之二叉树求总节点和第K层节点的个数

目录 1.求二叉树总的节点的个数 1.容易想到的方法 代码 缺陷 思考:能否在TreeSize函数内定义静态变量解决size的问题呢? 其他写法 运行结果 2.最好的方法:分而治之 代码 运行结果 2.求二叉树第K层节点的个数 错误代码 运行结果 修正 运行结果 其他写法 1.求二…

【代码随想录day48】【C++复健】739. 每日温度;496.下一个更大元素 I;503.下一个更大元素II

739. 每日温度 一顿操作猛如虎&#xff0c;一看击败5%。一眼顶针&#xff0c;鉴定为在存栈的时候把值和下标一起存了&#xff0c;所以导致了问题。 class Solution { public:vector<int> dailyTemperatures(vector<int>& temperatures) {stack<vector<…

vscode + conda + qt联合开发

安装vscode 安装conda 清华大学开源软件镜像(Anaconda下载)_清华大学镜像-CSDN博客 conda create新建一个环境&#xff0c;激活这个环境&#xff0c;然后安装pyside6 pip install pyside6 -i https://pypi.tuna.tsinghua.edu.cn/simple 安装成功后输入 pip list查看是否安装…

第十一篇 绘图matplotlib.pyplot的使用

文章目录 摘要安装方法入门案例使用plt绘图使用ax绘图plt.figure参数plot参数案例一 绘制红色实心的点状图案例二 绘制红色的破折线图案例三 绘制两条线颜色总结设置标题、轴名称、图例使用plt实现绘图使用ax实现绘图legend()中loc设置刻度plt自定义刻度ax自定义刻度plt.title …

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

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

计算机的错误计算(一百七十二)

摘要 探讨 MATLAB 对于算式 的计算误差。 例1. 在 MATLAB 中计算 的值。 直接贴图吧&#xff1a; 这样&#xff0c;MATLAB 的输出中只有3位正确数字&#xff0c;有效数字的错误率为 (16-3)/16 81.25% . 因为16位的正确输出为 0.2971242332737277e-18&#xff08;ISReals…

Flink四大基石之CheckPoint(检查点) 的使用详解

目录 一、Checkpoint 剖析 State 与 Checkpoint 概念区分 设置 Checkpoint 实战 执行代码所需的服务与遇到的问题 二、重启策略解读 重启策略意义 代码示例与效果展示 三、SavePoint 与 Checkpoint 异同 操作步骤详解 四、总结 在大数据流式处理领域&#xff0c;Ap…

S4 UPA of AA :新资产会计概览

通用并行会计&#xff08;Universal Parallel Accounting&#xff09;可以支持每个独立的分类账与其他模块集成&#xff0c;UPA主要是为了支持平行评估、多货币类型、财务合并、多准则财务报告的复杂业务需求 在ML层面UPA允许根据不同的分类账规则对物料进行评估&#xff0c;并…

Vue3学习宝典

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

Linux——基础命令(2) 文件内容操作

目录 ​编辑 文件内容操作 1.Vim &#xff08;1&#xff09;移动光标 &#xff08;2&#xff09;复制 &#xff08;3&#xff09;剪切 &#xff08;4&#xff09;删除 &#xff08;5&#xff09;粘贴 &#xff08;6&#xff09;替换,撤销,查找 &#xff08;7&#xff…

openwrt利用nftables在校园网环境下开启nat6 (ipv6 nat)

年初写过一篇openwrt在校园网环境下开启ipv6 nat的文章&#xff0c;利用ip6tables控制ipv6的流量。然而从OpenWrt22版本开始&#xff0c;系统内置的防火墙变为nftables&#xff0c;因此配置方法有所改变。本文主要参考了OpenWRT使用nftables实现IPv6 NAT 这篇文章。 友情提示 …

go语言的成神之路-筑基篇-gin框架渲染模板

第一节-gin框架渲染模板 因为电脑打不开了&#xff0c;所以用朋友的电脑来写的&#xff0c;也是体验了一次从零开始用vscode配置环境&#xff0c;忙活了一上午才配置好环境。太难配置了。好了废话不多说开始今天的进修之旅。 今天开始gin框架的正式学习希望大家认真观看并检查…

【软考网工笔记】网络基础理论——网络层

文章目录 中断处理过程数据包组装RIPRSVPipv4RIPv1 & RIPv2HFC 混合光纤同轴电缆&#xff08;Hybrid Fiber Coax&#xff0c;简称HFC&#xff09;BGP (边界网关协议)BGP-4 协议的四种报文ICMP 协议数字语音电子邮件协议MPLS 多协议标记交换ipv6DHCPDNS名称解析过程查询顺序…

linux网络抓包工具

linux网络抓包工具 一、tcpdump1.1 基本用法1.2 龙芯平台实例操作 二、wireshark2.1 主要功能2.2 龙芯平台实例操作 一、tcpdump tcpdump 指令可列出经过指定网络界面的数据包文件头&#xff0c;可以将网络中传送的数据包的 “头” 完全截获下来提供分析。它支持针对网络层、协…

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

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

WPF DataGrid 列隐藏

Window节点加上下面的 <Window.Resources><FrameworkElement x:Key"ProxyElement" DataContext"{Binding}" /></Window.Resources>然后随便加一个隐藏控件 <ContentControl Content"{StaticResource ProxyElement}" Visi…

【Gitlab】CICD使用minio作为分布式缓存

1、安装minio 下载适合自己系统版本的安装文件https://dl.min.io/server/minio/release/windows-amd64/ yum install xxx.rpm 2、配置/etc/profile export MINIO_ACCESS_KEYroot [ui登录账号] export MINIO_SECRET_KEYminioDev001 [ui登录密码] export MINIO_OPTS"…