在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…...
AI智能体到底强在哪?为什么大家开始从“养龙虾”转向“养马”
那么AI智能体的核心能力是什么? 1、理解需求 它能分析你的真实意图,而不是只看表面的文字,比如让它整理这个月的消费情况,它明白之后,会读取账单,做分类统计,生成总结,最后输出图表。…...
亚马逊卖家公开信息数据提取:反爬攻防战与 Python 批量采集实战
摘要: 批量获取亚马逊(Amazon)第三方卖家的商业名称、信用代码和注册地址等信息,对于跨境 B2B 拓客和供应链分析具有重要意义。然而,亚马逊的 Cloudflare 盾和 Robot 验证码构成了极高的反爬门槛。本文将深度解析亚马逊…...
硬件答辩问题总结
一、电源纹波是什么,为什么LDO的小,DCDC的大1.电源纹波电源纹波 是指直流电源输出电压上叠加的 交流波动成分,表现为电压在理想直流值附近上下波动。2.LDO 纹波小原理LDO 内部是一个 调整管(可变电阻) 串联在输入和输出…...
DeepSeek基准测试避坑手册:92%开发者忽略的4大陷阱——硬件配置偏差、tokenizer不一致、batch size幻觉、温度值污染
更多请点击: https://codechina.net 第一章:DeepSeek基准测试避坑手册:92%开发者忽略的4大陷阱——硬件配置偏差、tokenizer不一致、batch size幻觉、温度值污染 硬件配置偏差:GPU显存与计算精度的隐性干扰 在A100(8…...
Vulnhub-DC-1
1.信息收集 使用工具nmap扫描主机端口 这是Drupal是使用PHP语言编写的开源内容管理框架(CMF),它由内容管理系统(CMS)和PHP开发框架(Framework)共同构成 Web指纹扫描 发现是:drupal…...
一次搞懂内存取证:用Volatility3和Cobalt Strike分析工具复现VNCTF‘来一把紧张刺激的CS’
实战内存取证:从Volatility3到Cobalt Strike信标分析全解析 在网络安全事件响应中,内存取证往往是发现高级威胁的最后一道防线。当攻击者使用文件无落地的技术时,传统的磁盘取证可能一无所获,而内存中却保留着攻击行为的完整痕迹。…...
OpenClaw用户如何快速接入Taotoken并开始Agent工作流
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 OpenClaw用户如何快速接入Taotoken并开始Agent工作流 对于使用OpenClaw框架构建AI智能体的开发者而言,快速接入稳定、多…...
为什么软件开发偏爱 Linux?深度剖析 Linux 相较于 Windows 的核心优势
引言 在软件开发的世界里,一个有趣的现象是:无论是大型互联网公司的服务器集群,还是资深程序员的个人开发机,Linux 操作系统的身影无处不在。与之形成鲜明对比的是,尽管 Windows 在个人消费市场占据绝对主导地位&…...
Allegro PCB设计小技巧:如何让Route Keepout区域既能走线又能打过孔(附详细步骤图)
Allegro PCB设计实战:Route Keepout区域的灵活控制技巧 在高速PCB设计中,Route Keepout区域的管理常常让工程师陷入两难境地——元件封装自带的限制区域与实际布线需求产生冲突。特别是处理PCIE等高速信号时,这种矛盾尤为突出。传统做法要么完…...
同步带装配工艺要点与损伤防控策略
一、引言在工业精密传动系统中,盖茨同步带凭借高精度、高效率、无滑差的优势,成为自动化设备、精密机床、输送产线的核心传动部件。多数企业在运维中,普遍将同步带异常磨损、断齿、断带等故障归咎于工况恶劣或产品质量问题,却忽略…...
