安装 docker 详解
在平常的开发工作中,我们经常需要部署项目。随着 Docker 容器的出现,大大提高了部署效率。Docker 容器包含了应用程序运行所需的所有依赖,避免了换环境运行问题。可以在短时间内创建、启动和停止容器,大大提高了应用的部署速度,能够快速响应业务需求的变化。那么,应该如何安装 docker 呢,下面总结一下 Docker 安装的基本步骤。
Docker 支持多种 Linux 系统,对于 CentOS 系统,通常建议使用 CentOS 7 及以上版本,以确保系统能提供良好的兼容性和性能支持。可以使用 cat /etc/redhat-release 命令或者 lsb_release -a 查看 Linux 系统的发行版本。下面总结下Centos 7 下安装 Docker的基本步骤。
1:卸载旧版 Docker
如果未安装 Docker,那么移步到步骤2开始安装。如果已经安装 Docker,需要卸载旧版本 Docker,那么使用如下命令:
sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine
卸载包括 docker
、docker-client
、docker-client-latest
、docker-common
、docker-latest
、docker-latest-logrotate
、docker-logrotate
和 docker-engine
。彻底移除旧版本 Docker 相关的程序和配置。
2:设置 Docker 存储库
安装 Docker ,需要先设置 Docker 的存储库,便于获取 Docker 相关软件包。
# 安装 yum-utils 包,它提供了 yum-config-manager 工具,yum-utils 提供的各种实用工具来更高效地管
# 理 yum 软件仓库和软件包
sudo yum install -y yum-utils
# 使用 yum-config-manager 添加 Docker 官方存储库
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
3:安装 Docker 引擎
通过yum
包管理工具安装了docker-ce
、docker-ce-cli
和containerd.io
这三个组件,搭建起 Docker 运行环境,使用户能够方便地进行容器化应用的部署和管理工作。
# 安装 Docker 社区版(Docker CE)及其 命令行界面工具 和 containerd
sudo yum install docker-ce docker-ce-cli containerd.io
4:启动 Docker 服务并设置开机自启
启动 Docker、停止 Docker
# 启动 Docker 服务
sudo systemctl start docker
# 停止 Docker 服务
sudo systemctl stop docker
# 设置 Docker 服务开机自启
sudo systemctl enable docker
# 查看开机自启是否设置成功
# 如果输出信息为 enabled,则表示 Docker 服务已成功设置为开机自启
# 如果输出信息为 disabled,则表示 Docker 服务未设置为开机自启
# 如果输出信息为 masked,表示该服务被禁用且无法启动
sudo systemctl is-enabled docker
5:设置镜像加速器
编辑 /etc/docker/daemon.json
配置文件,如果不存在则手动创建,内容如下,如果修改了配置文件文件,需要重新加载配置文件并重启 Docker。
{"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn","https://dockerproxy.com","https://docker.nju.edu.cn","https://mirror.aliyuncs.com","https://docker.m.daocloud.io","https://hub.rat.dev","https://hub-mirror.c.163.com","https://mirror.ccs.tencentyun.com","https://mirror.baidubce.com","https://docker.mirrors.sjtug.sjtu.edu.cn","https://github.com/ustclug/mirrorrequest","https://registry.docker-cn.com"]
}
重新加载 Docker 配置文件:systemctl daemon-reload
重启 Docker:systemctl restart Docker
6:验证 Docker 安装
# 查看 docker 运行状态
sudo systemctl status docker
# 测试拉取镜像是否能拉取镜像
docker run --rm hello-world
运行systemctl status docker,查看信息,如果输出中包含 Active: active (running),则说明 Docker 服务已经成功启动,并且 dockerd 进程正在持续运行。可以使用 Docker 来创建、运行和管理容器
docker run --rm hello-world 命令的主要功能是从 Docker Hub 拉取 hello-world 镜像(如果本地不存在该镜像),并基于此镜像创建一个新的容器来运行,运行结束后自动删除该容器。这个命令常被用于验证 Docker 是否正确安装和配置。
在执行命令后,首先提示 Unable to find image 'hello-world:latest' locally ,然后显示拉取镜像,最后显示 Status: Downloaded newer image for hello-world:latest,这表明 Docker 能够正常访问镜像仓库并下载镜像。如果 Docker 安装的有问题,可能会出现报错,导致无法拉取镜像。页面如下,则表面 Docker 安装成功。
7:Docker Compose 容器编排
Docker Compose 主要是容器编排,定义和运行多容器的工具。我们可以定义一个docker-compose.yml 文件,在里面可以定义多个服务,定义每个服务的镜像、容器名称、环境配置、端口信息、数据挂载、网络设置、重启方式等,里面可以定义多服务。文件编排完成后,可以通过
docker compose up -d 命令启动,可以看到具体的启动信息,命令后面带上 -d 命令窗口是非阻塞的,不阻塞当前命令窗口,不带 -d 可以在当前窗口查看容器启动的具体日志信息。关键命令如下:
启动所有容器:docker compose up -d
停止容器:docker stop 容器id / 容器名称
启动单个容器:docker compose up -d 服务名
删除容器:docker rm 容器id / 容器名称
删除镜像:docker rmi 镜像id
在 Docker 20.10 版本之前,安装完 Docker 之后,使用 Docker compose 需要进行单独安装。在 Docker 20.10 版本之后,Docker Compose 以插件的形式集成到 Docker 中,Docker安装完成,默认安装了 Docker Compose,使用 docker compose version 查看是否成功安装。
以上为安装 Docker 的基本步骤,主要是设置 Docker 存储库、安装 Docker 引擎 和 设置镜像加速器。使用 Docker Compose 容器编排,可以方便快捷的管理容器,进行容器的启动、停止等操作。
相关文章:

安装 docker 详解
在平常的开发工作中,我们经常需要部署项目。随着 Docker 容器的出现,大大提高了部署效率。Docker 容器包含了应用程序运行所需的所有依赖,避免了换环境运行问题。可以在短时间内创建、启动和停止容器,大大提高了应用的部署速度&am…...

【Rust自学】16.3. 共享状态的并发
喜欢的话别忘了点赞、收藏加关注哦(加关注即可阅读全文),对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 16.3.1. 使用共享来实现并发 还记得Go语言有一句名言是这么说的:Do not commun…...
开发者交流平台项目部署到阿里云服务器教程
本文使用PuTTY软件在本地Windows系统远程控制Linux服务器;其中,Windows系统为Windows 10专业版,Linux系统为CentOS 7.6 64位。 1.工具软件的准备 maven:https://archive.apache.org/dist/maven/maven-3/3.6.1/binaries/apache-m…...

【2024年华为OD机试】 (B卷,100分)- 乘坐保密电梯(JavaScriptJava PythonC/C++)
一、问题描述 问题描述 我们需要从0楼到达指定楼层m,乘坐电梯的规则如下: 给定一个数字序列,每次根据序列中的数字n,上升n层或下降n层。前后两次的方向必须相反,且首次方向向上。必须使用序列中的所有数字,不能只使用一部分。目标是到达指定楼层m,如果无法到达,则给出…...

maven的打包插件如何使用
默认的情况下,当直接执行maven项目的编译命令时,对于结果来说是不打第三方包的,只有一个单独的代码jar,想要打一个包含其他资源的完整包就需要用到maven编译插件,使用时分以下几种情况 第一种:当只是想单纯…...
solidity高阶 -- 线性继承
Solidity是一种面向合约的高级编程语言,用于编写智能合约。在Solidity中,多线继承是一个强大的特性,允许合约从多个父合约继承属性和方法。本文将详细介绍Solidity中的多线继承,并通过不同的实例展示其使用方法和注意事项。 在Sol…...
国内外大语言模型领域发展现状与预期
在数字化浪潮中,大语言模型已成为人工智能领域的关键力量,深刻影响着各个行业的发展轨迹。下面我们将深入探讨国内外大语言模型领域的发展现状以及未来预期。 一、发展现状 (一)国外进展 美国的引领地位:OpenAI 的 …...
【Leetcode 热题 100】416. 分割等和子集
问题背景 给你一个 只包含正整数 的 非空 数组 n u m s nums nums。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。 数据约束 1 ≤ n u m s . l e n g t h ≤ 200 1 \le nums.length \le 200 1≤nums.length≤200 1 ≤ n u m s [ i ] ≤ …...

C语言------数组从入门到精通
1.一维数组 目标:通过思维导图了解学习一维数组的核心知识点: 1.1定义 使用 类型名 数组名[数组长度]; 定义数组。 // 示例: int arr[5]; 1.2一维数组初始化 数组的初始化可以分为静态初始化和动态初始化两种方式。 它们的主要区别在于初始化的时机和内存分配的方…...

物管系统赋能智慧物业管理提升服务质量与工作效率的新风潮
内容概要 在当今的物业管理领域,物管系统的崛起为智慧物业管理带来了新的机遇和挑战。这些先进的系统能够有效整合各类信息,促进数字化管理,从而提升服务质量和工作效率。通过物管系统,物业管理者可以实时查看和分析各种数据&…...

2024年记 | 凛冬将至
放弃幻想,准备斗争! 考研or就业? 上大学以来,考研上名校在我的心里一直是一颗种子,2024年初,当时的想法是考研和就业两手抓。买了张宇的高数现代,想要死磕! 也记了挺多笔记... 如果…...
MySQL数据导入与导出
在现代软件开发中,数据管理是一个重要的核心环节,而数据库则是进行数据管理的主要工具。MySQL 作为一款开源的关系型数据库管理系统,被广泛应用于企业和个人开发项目中。对于学习编程的初学者或是自学者来说,掌握 MySQL 的基本操作尤为重要,尤其是数据的导入与导出功能。这…...

NoSQL与SQL比较
1.认识NoSQL NoSql可以翻译做Not Only Sql(不仅仅是SQL),或者是No Sql(非Sql的)数据库。是相对于传统关系型数据库而言,有很大差异的一种特殊的数据库,因此也称之为非关系型数据库。 1.1.结构…...
Ceph:关于Ceph 中使用 RADOS 块设备提供块存储的一些笔记整理(12)
写在前面 准备考试,整理 ceph 相关笔记博文内容涉及使用 RADOS 块设备提供块存储理解不足小伙伴帮忙指正对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停息。所有其它的路都是不完整的,是人的逃避方式,是对大众理想的懦弱回归,是随波…...
Android SystemUI——最近任务列表启动(十八)
前面分析了初始化涉及到的关键类,系统启动后会启动 SystemUI 进程,然后进行一系列初始化,接下来看一下进入 Recents 的流程。我们主要分析最近任务应用列表的启动与显示。 一、最近任务启动 关于手势或 Key 按键触发这一块逻辑处理入口都是在 PhoneWindowManager,咱们从 R…...

数据结构课程设计(三)构建决策树
3 决策树 3.1 需求规格说明 【问题描述】 ID3算法是一种贪心算法,用来构造决策树。ID3算法起源于概念学习系统(CLS),以信息熵的下降速度为选取测试属性的标准,即在每个节点选取还尚未被用来划分的具有最高信息增益的…...

从ChatGPT热潮看智算崛起
2025年1月7日,科智咨询发布《2025年IDC产业七大发展趋势》,其中提到“ChatGPT开启生成式AI热潮,智能算力需求暴涨,算力供给结构发生转变”。 【图片来源于网络,侵删】 为何会以ChatGPT发布为节点呢?咱们一起…...
基于PyQt设计的智能停车管理系统
文章目录 一、前言1.1 项目介绍【1】项目开发背景【2】设计实现的功能【3】设计意义【4】国内外研究现状【6】摘要1.2 设计思路1.3 系统功能总结1.4 开发工具的选择【1】VSCODE【2】python【3】ptqt【4】HyperLPR31.5 参考文献二、安装Python环境1.1 环境介绍**1.2 Python版本介…...

http的请求体各项解析
一、前言 做Java开发的人员都知道,其实我们很多时候不单单在写Java程序。做的各种各样的系统,不管是PC的 还是移动端的,还是为别的系统提供接口。其实都离不开http协议或者https 这些东西。Java作为编程语言,再做业务开发时&#…...
【linux】Linux 常见目录特性、权限和功能
目录特性默认权限主要功能/用途/根目录,所有目录的起点755文件系统的顶层目录,包含所有其他子目录和文件/bin基础二进制命令目录(系统启动和修复必需的命令)755存放所有用户可用的基本命令(如 ls, cp, bash 等…...
【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表
1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...
Element Plus 表单(el-form)中关于正整数输入的校验规则
目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入(联动)2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...

STM32HAL库USART源代码解析及应用
STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...
深入理解Optional:处理空指针异常
1. 使用Optional处理可能为空的集合 在Java开发中,集合判空是一个常见但容易出错的场景。传统方式虽然可行,但存在一些潜在问题: // 传统判空方式 if (!CollectionUtils.isEmpty(userInfoList)) {for (UserInfo userInfo : userInfoList) {…...
LLaMA-Factory 微调 Qwen2-VL 进行人脸情感识别(二)
在上一篇文章中,我们详细介绍了如何使用LLaMA-Factory框架对Qwen2-VL大模型进行微调,以实现人脸情感识别的功能。本篇文章将聚焦于微调完成后,如何调用这个模型进行人脸情感识别的具体代码实现,包括详细的步骤和注释。 模型调用步骤 环境准备:确保安装了必要的Python库。…...

热烈祝贺埃文科技正式加入可信数据空间发展联盟
2025年4月29日,在福州举办的第八届数字中国建设峰会“可信数据空间分论坛”上,可信数据空间发展联盟正式宣告成立。国家数据局党组书记、局长刘烈宏出席并致辞,强调该联盟是推进全国一体化数据市场建设的关键抓手。 郑州埃文科技有限公司&am…...

Linux-进程间的通信
1、IPC: Inter Process Communication(进程间通信): 由于每个进程在操作系统中有独立的地址空间,它们不能像线程那样直接访问彼此的内存,所以必须通过某种方式进行通信。 常见的 IPC 方式包括&#…...
嵌入式面试常问问题
以下内容面向嵌入式/系统方向的初学者与面试备考者,全面梳理了以下几大板块,并在每个板块末尾列出常见的面试问答思路,帮助你既能夯实基础,又能应对面试挑战。 一、TCP/IP 协议 1.1 TCP/IP 五层模型概述 链路层(Link Layer) 包括网卡驱动、以太网、Wi‑Fi、PPP 等。负责…...

Copilot for Xcode (iOS的 AI辅助编程)
Copilot for Xcode 简介Copilot下载与安装 体验环境要求下载最新的安装包安装登录系统权限设置 AI辅助编程生成注释代码补全简单需求代码生成辅助编程行间代码生成注释联想 代码生成 总结 简介 尝试使用了Copilot,它能根据上下文补全代码,快速生成常用…...