安装 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 等…...
轻量级文本处理引擎Tokely:从分词到模型推理的部署与优化实战
1. 项目概述与核心价值最近在折腾一些个人项目,经常需要处理文本生成、内容摘要这类任务。市面上现成的API服务虽然方便,但成本、隐私和定制化程度总让人不太放心。于是,我开始寻找一个能自己部署、轻量且功能聚焦的文本处理工具。在这个过程…...
AI编码工作流实战:从工具整合到工程落地的系统指南
1. 项目概述:从“AI编码工作流”说起 最近在GitHub上看到一个挺有意思的项目,叫 nicksp/ai-coding-workflow 。光看名字,你可能觉得这又是一个关于“如何用AI写代码”的泛泛而谈。但作为一个在软件工程一线摸爬滚打了十多年的老码农&#x…...
这个内核 bug 潜伏了 9 年。
TL;DR — Linux 内核加密子系统的一行 sg_chain() 调用,让 page cache 页被放进了可写的 scatterlist。任何普通用户通过 splice() AF_ALG 就能精准覆盖 setuid 二进制的内存映像,5 秒 root。潜伏 9 年,影响 2017 年以来几乎所有主流发行版。…...
C++头文件和cpp文件的原理分析
通常,在一个C程序中,只包含两类文件——.cpp文件和.h文件。 .cpp文件被称作C源文件,里面放的都是C的源代码.h文件则被称作C头文件,里面放的也是C的源代码,头文件不用被编译 C语言支持“分别编译”(separa…...
【51单片机倒计时清翔的板子2片573驱动数码管】2023-10-28
缘由51单片机模拟定时炸弹_编程语言-CSDN问答 用矩阵键盘在数码管上输入数字作为炸弹的倒计时,独立键盘控制倒计时开始,暂停,提前引爆键,倒计时最后三秒蜂鸣器随倒计时响,求源码。 以下代码演示相关功能实现。 #inc…...
Python-ADB协议实现原理:深入理解ADB和Fastboot通信机制
Python-ADB协议实现原理:深入理解ADB和Fastboot通信机制 【免费下载链接】python-adb Python ADB Fastboot implementation 项目地址: https://gitcode.com/gh_mirrors/py/python-adb Python-ADB是一个强大的开源项目,提供了ADB(Andr…...
Vue 3调试新利器:vibe-devtools实现运行时状态热更新与代码注入
1. 项目概述:一个为前端开发者量身定制的调试利器最近在折腾一个Vue 3 Vite的项目,调试组件状态时,总感觉Chrome DevTools里的Vue Devtools用起来有点“隔靴搔痒”。状态变化是能看见,但想快速模拟个特定数据、或者临时注入一段逻…...
GitHub PR全流程实战:从创建、自动化测试到代码审查与合并
1. 项目概述与核心价值 如果你参与过开源项目,或者在公司内部使用GitHub进行团队协作,那么“Pull Request”(PR)这个流程你一定不陌生。它不仅仅是把代码从一个分支合并到另一个分支那么简单,而是一整套围绕代码质量、…...
0.2mm间距测试探针技术解析与应用指南
1. 0.2mm间距测试探针的技术突破与应用价值在半导体测试领域,随着芯片封装尺寸的持续缩小和信号频率的不断提升,传统测试探针已难以满足高密度互连与高频测试的双重需求。Aries Electronics最新推出的0.2mm间距测试探针,采用镀金铍铜材料和特…...
Sealos云操作系统:基于Kubernetes内核的桌面化云原生平台实践
1. 项目概述:从“集群”到“桌面”的云原生新范式如果你和我一样,长期在云原生领域摸爬滚打,那么对“Kubernetes集群”的部署和管理一定不会陌生。从早期的kubeadm手动搭建,到后来各种发行版和托管服务,我们一直在追求…...
