当前位置: 首页 > news >正文

安装 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

        卸载包括 dockerdocker-clientdocker-client-latestdocker-commondocker-latestdocker-latest-logrotatedocker-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-cedocker-ce-clicontainerd.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 等&#xf…...

创作三载·福启新章2025

写在前面:本博客仅作记录学习之用,部分图片来自网络,如需引用请注明出处,同时如有侵犯您的权益,请联系删除! 文章目录 前言机缘收获日常憧憬 总结 前言 在2022年01月26日,我踏上了技术创作的征…...

RoboMaster- RDK X5能量机关实现案例(一)识别

作者:SkyXZ CSDN:https://blog.csdn.net/xiongqi123123 博客园:https://www.cnblogs.com/SkyXZ 在RoboMaster的25赛季,我主要负责了能量机关的视觉方案开发,目前整体算法已经搭建完成,实际方案上我使用的上…...

Python帝王學集成-母稿

引用:【【全748集】这绝对是2024最全最细的Python全套教学视频,七天看完编程技术猛涨!别再走弯路了,从零基础小白到Python全栈这一套就够了!-哔哩哔哩】 https://b23.tv/lHPI3XV 语法基础 Python解释器与pycharm编辑器安装 - 定义:Python解释器负责将Python代码转换为计…...

安全漏洞扫描与修复系统的高质量技术详解

安全漏洞扫描与修复系统的高质量技术详解 在当今的数字化时代,网络安全已成为企业和个人不可忽视的重要议题。安全漏洞扫描与修复系统作为保障网络安全的关键环节,其重要性日益凸显。本文将深入探讨安全漏洞扫描与修复系统的原理、流程、工具选择以及实…...

JavaScript反爬技术解析与应对

JavaScript 反爬技术解析与应对 前言 在当今 Web 爬虫与数据抓取的生态环境中,网站运营方日益关注数据安全与隐私保护,因此逐步采用多种反爬技术来限制非授权访问。本文从 JavaScript 角度出发,深入剖析主流反爬策略的技术原理,…...

[NOIP2007]矩阵取数游戏

点我写题 题目描述 帅帅经常跟同学玩一个矩阵取数游戏:对于一个给定的n*m的矩阵,矩阵中的每个元素aij均为非负整数。游戏规则如下: 1.每次取数时须从每行各取走一个元素,共n个。m次后取完矩阵所有元素; 2.每次取走的…...

在Linux系统上安装.NET

测试系统:openKylin(开放麒麟) 1.确定系统和架构信息: 打开终端(Ctrl Alt T),输入cat /etc/os-release查看系统版本相关信息。 输入uname -m查看系统架构。确保你的系统和架构符合.NET 的要求,如果架构…...

PCB Editor层叠文件(Gerber文件输出-01)

先看底层和表层,如下图 钢网表层和底层,如下图 丝印表层和底层,如下图 阻焊表层和底层,如下图 下面来添加钻孔层,先提取钻孔表 点击OK后钻孔表会挂在鼠标上...

labelimg闪退的解决办法

其实就是你的python版本太高不稳定不支持labelimg 标记时出现闪退 问题原因:python版本过高 解决方案 第一步: 在python3.9以上的版本运行软件会闪退,这个时候我们需要创建一个3.9或者及以下的虚拟环境 conda cr…...

【开源免费】基于Vue和SpringBoot的在线文档管理系统(附论文)

本文项目编号 T 038 ,文末自助获取源码 \color{red}{T038,文末自助获取源码} T038,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 查…...