在ubuntu、centos、openEuler安装Docker
目录
ubuntu、centos、openEuler安装Docker
1.在 Ubuntu 上安装 Docker
1. 1 更新软件包
1. 2 安装必要的依赖
1.3 添加 Docker 的 GPG 密钥
1.4 添加 Docker 仓库
1.5 更新软件包
1.6 安装 Docker
1.7 启动并启用 Docker 服务
1.8 验证安装
1.9 运行测试容器
1.10 非 root 用户运行 Docker
2.在 CentOS 上安装 Docker
2.1 更新软件包
2.2 安装必要的依赖
2.3 添加 Docker 仓库
2.4 安装 Docker
2.5 启动并启用 Docker 服务
2.6 验证安装
2.7 运行测试容器
2.8 非 root 用户运行 Docker
3.在 CentOS 9 上安装 Docker (使用 dnf)
3.1 更新软件包
3.2 安装必要的依赖
3.3 添加 Docker 仓库
3.4 安装 Docker
3.5 启动并启用 Docker 服务
3.6 验证安装
3.7 运行测试容器
3.8 非 root 用户运行 Docker
4.在 openEuler 上安装 Docker
4.1 更新软件包
4.2 安装 Docker
4.3 启动并启用 Docker 服务
4.4 验证安装
4.5 运行测试容器
4.6 非 root 用户运行 Docker
5.配置国内镜像源(加速)
5.1 创建或编辑 /etc/docker/daemon.json 文件
5.2 重新启动 Docker 服务
6.示例:构建一个简单的 Nginx 镜像
6.1 创建项目目录
6.2 创建 Dockerfile
6.3 index.html
6.4 构建 Docker 镜像
6.5 验证镜像
6.6 运行容器
ubuntu、centos、openEuler安装Docker
1.在 Ubuntu 上安装 Docker
1. 1 更新软件包
sudo apt-get update
1. 2 安装必要的依赖
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
1.3 添加 Docker 的 GPG 密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# 阿里云的,上下选一个
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
1.4 添加 Docker 仓库
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"sudo add-apt-repository "deb [arch=amd64]
# 推荐使用国内仓库(阿里云)
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
1.5 更新软件包
这一步可以跳过的,也可以更新一下
sudo apt-get update
1.6 安装 Docker
sudo apt-get install -y docker-ce
1.7 启动并启用 Docker 服务
sudo systemctl start docker
sudo systemctl enable docker
1.8 验证安装
sudo docker --version
1.9 运行测试容器
sudo docker run hello-world
1.10 非 root 用户运行 Docker
sudo usermod -aG docker $USER
然后注销并重新登录以使更改生效,或者重启一下。
2.在 CentOS 上安装 Docker
2.1 更新软件包
sudo yum update -y
2.2 安装必要的依赖
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
2.3 添加 Docker 仓库
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 推荐使用国内仓库(阿里云)
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
2.4 安装 Docker
sudo yum install -y docker-ce docker-ce-cli containerd.io
2.5 启动并启用 Docker 服务
sudo systemctl start docker
sudo systemctl enable docker
2.6 验证安装
sudo docker --version
2.7 运行测试容器
sudo docker run hello-world
2.8 非 root 用户运行 Docker
sudo usermod -aG docker $USER
然后注销并重新登录以使更改生效。
3.在 CentOS 9 上安装 Docker (使用 dnf)
centos9中实际使用的是dnf,但是yum和他做了链接,也可以使用yum。
3.1 更新软件包
sudo dnf update -y
3.2 安装必要的依赖
sudo dnf install -y dnf-plugins-core
3.3 添加 Docker 仓库
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 推荐使用国内仓库(阿里云)
sudo dnf config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3.4 安装 Docker
sudo dnf install -y docker-ce docker-ce-cli containerd.io
3.5 启动并启用 Docker 服务
sudo systemctl start docker
sudo systemctl enable docker
3.6 验证安装
sudo docker --version
3.7 运行测试容器
sudo docker run hello-world
3.8 非 root 用户运行 Docker
sudo usermod -aG docker $USER
然后注销并重新登录以使更改生效。
4.在 openEuler 上安装 Docker
4.1 更新软件包
sudo dnf update
4.2 安装 Docker
sudo dnf install docker
4.3 启动并启用 Docker 服务
sudo systemctl start docker
sudo systemctl enable docker
4.4 验证安装
sudo docker --version
4.5 运行测试容器
sudo docker run hello-world
4.6 非 root 用户运行 Docker
sudo usermod -aG docker $USER
然后注销并重新登录以使更改生效。
5.配置国内镜像源(加速)
如果下载太慢,为了提高下载速度,可以配置 Docker 使用国内镜像源,比如阿里云镜像。以下是在 /etc/docker/daemon.json 文件中添加国内镜像源的方法:
5.1 创建或编辑 /etc/docker/daemon.json 文件
sudo vim /etc/docker/daemon.json
添加以下内容
{
"registry-mirrors": [
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com"
]
}
5.2 重新启动 Docker 服务
sudo systemctl daemon-reload
sudo systemctl restart docker
6.示例:构建一个简单的 Nginx 镜像
假设我们有一个简单的 Dockerfile,用于构建一个带有自定义 HTML 文件的 Nginx 镜像。
6.1 创建项目目录
首先,创建一个目录来存放 Dockerfile 和其他相关文件:
mkdir my-nginx
cd my-nginx
6.2 创建 Dockerfile
在项目目录中创建一个名为 Dockerfile 的文件,并添加以下内容:
# 如果没有vim,先下载一下
sudo apt install vimvim Dockerfile
添加下面内容:
# 使用官方的 Nginx 基础镜像
FROM nginx:latest# 维护者信息
LABEL maintainer="you@example.com"# 将自定义的 HTML 文件复制到 Nginx 默认的 HTML 目录
COPY index.html /usr/share/nginx/html/# 暴露端口 80
EXPOSE 80# 启动 Nginx 服务
CMD ["nginx", "-g", "daemon off;"]
6.3 index.html
在同一目录中创建一个名为 index.html 的文件,并添加一些简单的 HTML 内容:
vim index.html
<!DOCTYPE html>
<html>
<head>
<title>Welcome to My Nginx!</title>
</head>
<body>
<h1>Hello, Docker!</h1>
<p>This is a custom Nginx server.</p>
</body>
</html>
6.4 构建 Docker 镜像
在终端中运行以下命令来构建 Docker 镜像:
docker build -t my-nginx:custom .

在这个命令中:
-t my-nginx:custom指定了镜像的名称为my-nginx,标签为custom。.指定了 Dockerfile 的路径为当前目录。
6.5 验证镜像
构建完成后,可以通过以下命令验证镜像是否成功创建:
docker images
你应该会看到类似以下的输出:

6.6 运行容器
最后,可以使用以下命令运行一个基于新镜像的容器:
docker run -d -p 8080:80 my-nginx:custom

在这个命令中:
-d后台运行容器。-p 8080:80将主机的 8080 端口映射到容器的 80 端口。
现在,你可以在浏览器中访问 http://localhost:8080,应该会看到你自定义的 HTML 页面。
这个示例演示了如何使用 Dockerfile 构建一个新的 Nginx 镜像,并运行一个容器来验证镜像。

相关文章:
在ubuntu、centos、openEuler安装Docker
目录 ubuntu、centos、openEuler安装Docker 1.在 Ubuntu 上安装 Docker 1. 1 更新软件包 1. 2 安装必要的依赖 1.3 添加 Docker 的 GPG 密钥 1.4 添加 Docker 仓库 1.5 更新软件包 1.6 安装 Docker 1.7 启动并启用 Docker 服务 1.8 验证安装 1.9 运行测试容器 1.10…...
公共命名空间的例子3
有这样一个句子 用x语言解释[12*3]。 在x语言中,不符合“先乘除后加减”,这个句子应该怎样解释呢? 第一步,进行词法分析,目的是识别出注释和字符串,其中可能包括任意符号,干扰编译过程。 第二步…...
【云存储】SDS软件定义存储,数据存储的类型与技术方案(块/文件/对象,Ceph、RBD等)
【云存储】SDS软件定义存储,数据存储的类型与技术方案(块/文件/对象,Ceph、RBD等) 文章目录 1、分布式存储架构(软件定义存储SDS,超融合基础架构HCI)2、存储类型(块存储,…...
第31课 Scratch入门篇:小画家(舞台上画画)
小画家(舞台上画画) 故事背景: 在舞台上选择画笔和颜色,进行画画 程序原理: 这节课我们继续练习画笔功能,通过画笔功能我们设计一个小画板,碰到哪种颜色画笔就切换成哪种颜色。 开始编程 1、绘制一大一小的黑色圆形,小的命名为画笔,大的圆形命名为black(黑色) 2、鼠…...
QT UI界面之ListView
文章目录 概述源码怎么用代码qt design 小结 概述 本来把布局文件那块写了一遍,但是看看都跟之前那篇差不多,就换了一个稍微有点难度的,也很常用的listview来写了。来看看,有什么好玩的。 源码 先看下源码,如下&…...
freeRTOS互斥量(mutex)
目录 前言 一、互斥量概述 二、互斥量函数 1.创建 2.其他函数 三、优先级反转示例 1.概念 2.代码示例 四、优先级继承 1.概念 2.代码示例 五、递归锁 1.死锁的概念 2.自我死锁 3.函数 4.递归锁代码示例 前言 在之前的信号量中,我们想要实现互斥的…...
基于GeoTools使用JavaFx进行矢量数据可视化实战
目录 前言 一、JavaFx展示原理说明 二、GeoTools的Maven依赖问题 三、引入Geotools相关的资源包 四、创建JavaFx的Canvas实例 五、JavaFx的Scene和Node的绑定 六、总结 前言 众所周知,JavaFx是Java继Swing之后的又一款用于桌面应用的开发利器。当然࿰…...
zabbix的setup无法进入第二步
注意-部署时,报错要看的日志不止一个,php日志的报错也要看的,nginx接收到请求后是转发到php-fpm的 [rootweb01-84-41 ~]# chmod -R 777 /var/lib/php/session chmod: 无法访问"/var/lib/php/session": 没有那个文件或目录 [rootweb…...
代码随想录算法训练营第四十六天 | 115. 不同的子序列、583. 两个字符串的删除操作、72. 编辑距离、编辑距离总结篇
一、115. 不同的子序列 题目链接:115. 不同的子序列 - 力扣(LeetCode) 文章讲解:代码随想录 (programmercarl.com)——115. 不同的子序列 视频讲解:动态规划之子序列,为了编辑距离做铺垫 | LeetCode&#x…...
宝塔安装nginx失败报错“检测到系统组件wget不存在,无法继续安装”
宝塔安装nginx失败报错“检测到系统组件wget不存在,无法继续安装” 问题描述解决方案 问题描述 在宝塔中安装lnmp环境时,安装nginx失败报错:检测到系统组件wget不存在,无法继续安装 如下图所示 通过检查发现系统是已经安装了wge…...
C++之运算符重载系列深入学习:从入门到精通!
为什么需要对运算符进行重载 C预定义中的运算符的操作对象只局限于基本的内置数据类型,但是对于我们自定义的类型是没有办法操作的。但是大多时候我们需要对我们定义的类型进行类似的运算,这个时候就需要我们对这么运算符进行重新定义,赋予其…...
国赛分析。。。。
山东 6散落2两元素 浙江 8散落两元素 安徽不公布 4散落2元素 120s 华南 8散落两元素 西部 8散落两元素 华北 8 2.。。。 华东 东北 路边6张两元素...
无缝融入,即刻智能[一]:Dify-LLM大模型平台,零编码集成嵌入第三方系统,42K+星标见证专属智能方案
无缝融入,即刻智能[一]:Dify-LLM大模型平台,零编码集成嵌入第三方系统,42K+星标见证专属智能方案 1.Dify 简介 1.1 功能情况 Dify,一款引领未来的开源大语言模型(LLM)应用开发平台,革新性地融合了后端即服务(Backend as a Service,BaaS)与LLMOps的精髓,为开发者铺…...
PLSQL导入导出ORACLE数据提示失败问题修改PLSQL配置
oracle中plsql导入提示无法导入问题 1.首先看下是否环境变量已经配置(具体配置看下面环境变量配置) 2.plsql数据导入中tools-->Preferences中配置如下框中的内容 3.设置 tnsnames.ora文件中看下是否设置有问题 4.PLSQL乱码问题 NLS_LANG SIMPLIFIED CHINESE_CHINA.ZHS16…...
从Shift+F6到雪花算法:IDEA开发中的那些坑与解法
在日常开发中,提升代码质量和开发效率是每个开发者追求的目标。作为 Java 开发者常用的集成开发环境,IntelliJ IDEA 提供了丰富的功能与快捷键,帮助我们更快速、更高效地完成日常工作。然而,即便是如此强大的工具,也会…...
Linux知识点总结
学习目标 常见的快捷键 Linux 是一个开源的类 Unix 操作系统,广泛应用于服务器、桌面和嵌入式系统。以下是一些重要的 Linux 知识点总结: 基础概念 文件系统:Linux 使用层次化的文件系统结构,根目录为 /,其他目录如 …...
Gradio 快速开发网页应用
Gradio 是一个开源的 Python 框架,可以快速开发页面,Gradio 主要用于 AI 模型 Demo 的开发,通过几行代码可以快速生成一个 Web Demo,由于 AI 算法工程师使用的都是 Python 语言,使用 Python 开发 Demo 会相对简单&…...
spring使用validation参数及全局异常检测
1.validation参数验证工具 1.1.validation-api技术链 validation-api是一个Java的数据校验规范,它定义了一套用于校验Java Bean的API。它是JSR 303规范的一部分,也被称为Bean Validation。validation-api提供了一系列的注解,用于在Java类的…...
学习笔记 韩顺平 零基础30天学会Java(2024.8.8)
P492 第三代日期使用 P493 第三代日期方法 P495 String翻转 作业代码见chapter12homework 对于需要异常处理的情况,可以通过这种想法得到: P495 注册处理题 P496 字符串统计 P497 String内存布局测试题 P498 常见类阶段梳理 P499 集合介绍 集合的使用并不…...
45.跳跃游戏
:双层for。复杂度n*n n class Solution {public int jump(int[] nums) {// 找到所有的条约方法,返回其中的最小次数// 从后向前,依次记录到最后的次数int n nums.length;if(n 1) return 0;// int[] temp new int[n];// temp[n-1] 0;fo…...
KubeSphere 容器平台高可用:环境搭建与可视化操作指南
Linux_k8s篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...
Python|GIF 解析与构建(5):手搓截屏和帧率控制
目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...
[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解
突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 安全措施依赖问题 GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...
Vue记事本应用实现教程
文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展:显示创建时间8. 功能扩展:记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...
PHP和Node.js哪个更爽?
先说结论,rust完胜。 php:laravel,swoole,webman,最开始在苏宁的时候写了几年php,当时觉得php真的是世界上最好的语言,因为当初活在舒适圈里,不愿意跳出来,就好比当初活在…...
QMC5883L的驱动
简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...
Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...
深入理解JavaScript设计模式之单例模式
目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式(Singleton Pattern&#…...
【项目实战】通过多模态+LangGraph实现PPT生成助手
PPT自动生成系统 基于LangGraph的PPT自动生成系统,可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析:自动解析Markdown文档结构PPT模板分析:分析PPT模板的布局和风格智能布局决策:匹配内容与合适的PPT布局自动…...
