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 运行容器


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 vim

vim 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 镜像,并运行一个容器来验证镜像。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/51514.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

多节点网络流量对比分析在业务性能分析中的应用

在现代企业网络环境中&#xff0c;网络流量分析已成为确保业务连续性和优化性能的关键工具。特别是多节点网络流量对比分析&#xff0c;通过对比不同节点间的流量&#xff0c;能有效发现潜在问题&#xff0c;提高网络运维效率。本文将探讨多节点网络流量对比分析在业务性能分析…

【数据结构】哈希表二叉搜索树详解

&#x1f48e; 欢迎大家互三&#xff1a;2的n次方_ &#x1f48e;所属专栏&#xff1a;数据结构与算法学习 &#x1f341;1. 二叉搜索树 二叉搜索树也称为二叉查找树或二叉排序树&#xff0c;是一种特殊的二叉树结构&#xff0c;它的特点是&#xff1a; 1. 若左树不为空&am…

顺序表的代码实现

顺序表的代码实现 1.认识什么是顺序表1.1顺序表的优缺点 2.实现顺序表代码准备3.顺序表的代码实现3.1 顺序表结构体的定义3.2 顺序表的初始化3.3 顺序表的销毁3.4 顺序表的输出打印3.5顺序表的扩容3.6 顺序表的头部插入(头插)3.7 顺序表的头部删除(头删)3.8 顺序表的尾部插入(尾…

2种常用的取消word文档”打开密码“方法

在日常工作中&#xff0c;我们有时会遇到需要取消Word文档“打开密码”的情况。无论是因为忘记密码&#xff0c;还是出于文档共享的需要&#xff0c;掌握几种有效的取消密码方法都显得尤为重要。以下是2种常用的方法来取消Word文档的“打开密码”。 方法一&#xff1a;文件另存…

二叉树--堆(上卷)

二叉树–堆&#xff08;上卷&#xff09; 树 树的概念与结构 树是⼀种⾮线性的数据结构&#xff0c;它是由 n&#xff08;n>0&#xff09; 个有限结点组成⼀个具有层次关系的集合。把它叫做 树是因为它看起来像⼀棵倒挂的树&#xff0c;也就是说它是根朝上&#xff0c;⽽…

智慧医院信息系统思维导图

智慧医院信息系统 "思维导图智慧医院信息系统, 用一张图解析智慧医疗信息系统 本文转载&#xff1a;有了这个智慧医院信息系统思维导图&#xff0c;没人不明医疗信息化

探索大数据分析的未来:一名学生的成长之路

探索大数据分析的未来&#xff1a;一名学生的成长之路 引言 在信息爆炸的时代&#xff0c;数据成为了无形但至关重要的资源。每一次点击、每一次购买、每一次心跳都可能被记录下来&#xff0c;形成海量数据。这些数据若能被有效地分析和解读&#xff0c;就能揭示隐藏在其中的…

Kylin系列(一)入门

Kylin系列(一)入门 一、概述 1.1 Kylin定义 Apache Kylin是一个开源的分布式分析引擎&#xff0c;最初由eBay开发并贡献至开源社区。它提供Hadoop/Spark之上的SQL查询接口及多维分析&#xff08;OLAP&#xff09;能力&#xff0c;旨在解决大数据系统中TB级别数据的分析需求。…

是时候学习Grid布局了

一、序言 先说什么&#xff1f;当然先说大家最关心的兼容性了 CanIUse 嗯&#xff0c;对于非要兼容IE的开发者&#xff0c;我建议&#xff0c;量力而行&#xff01;兼容性还是不如Flex 当然&#xff0c;如果你flex够熟悉了&#xff0c;但却被一些布局有时候难倒&#xff0c;我…

学习react-登录状态验证

1.创建三个页面LoginPage, HomePage,NotFoundPage用于Router 创建LoginPage.tsx用于做登录页面 // LoginPage.tsx const LoginPage (props:LoginProp) > {const navigate useNavigate();return( <h1 onClick{ ()>{navigate("/");}}>Hello Login, {pr…

昇思25天学习打卡营第1天 | 快速入门教程

昇思大模型平台&#xff0c;就像是AI学习者和开发者的超级基地&#xff0c;这里不仅提供丰富的项目、模型和大模型体验&#xff0c;还有一大堆经典数据集任你挑。 AI学习有时候就像找不到高质量数据集的捉迷藏游戏&#xff0c;而且本地跑大数据集训练模型简直是个折磨&#xf…

JQuery简单实现ul li点击菜单项被选中的菜单项保持高亮状态(导航ul li点击切换样式)

效果&#xff1a; JS&#xff1a; $(function () {//遍历list&#xff08;一般为ul li&#xff09;$("#menu a").each(function () {//给当前项添加点击事件&#xff08;点击后切换样式&#xff09;$(this).bind(click,function () {// 移除其他所有项的active类$(&…

if [ $? -ne 0 ]; then

$?是shell变量,表示"最后一次执行命令"的退出状态.0为成功,非0为失败. -ne 表示 不等于 ./test.sh if [ $? -ne 0 ]; then 就是 如果 test.sh 退出状态 不等于0 &#xff08;即中间有报错&#xff09;

Unity Rigidbody组件实现动画:物理驱动的角色动作

在Unity中&#xff0c;Rigidbody组件是物理引擎的核心&#xff0c;它为游戏对象&#xff08;GameObject&#xff09;添加了质量、阻力和碰撞响应等物理属性。通过Rigidbody&#xff0c;开发者可以创建受物理定律影响的动画效果&#xff0c;使角色动作更加逼真和自然。本文将探讨…

解决运行pip install时提示错误:error: externally-managed-environment

新版ubuntu使用pip时发生错误&#xff1a; error: externally-managed-environment This environment is externally managed ╰─> To install Python packages system-wide, try apt install python3-xyz, where xyz is the package you are trying to instal…

挑战房市预测领头羊:KNN vs. 决策树 vs. 线性回归

挑战房市预测领头羊&#xff08;KNN&#xff0c;决策树&#xff0c;线性回归&#xff09; 1. 介绍1.1 K最近邻&#xff08;KNN&#xff09;&#xff1a;与邻居的友谊1.1.1 KNN的基础1.1.2 KNN的运作机制1.1.3 KNN的优缺点 1.2 决策树&#xff1a;解码房价的逻辑树1.2.1 决策树的…

算法(查找算法---二分查找/索引查找/哈希表查找)

二、查找算法 什么是查找算法&#xff1a; 在一个数据序列中&#xff0c;查找某个数据是否存在或存在的位置&#xff0c;在实际开发过程中使用的频率非常高&#xff0c;例如对数据常见的操作有增、删、改、查&#xff0c;增加数据时需要查询新增加的数据是否重复&#xff0c;…

【日常设计案例分享】通道对账

今天跟同事们讨论一个通道对账需求的技术设计。鉴于公司业务线有好几个&#xff0c;为避免不久的将来各业务线都重复竖烟囱&#xff0c;因此&#xff0c;我们打算将通道对账做成系统通用服务&#xff0c;以降低各业务线的开发成本。 以下文稿&#xff08;草图&#xff09;&…

驾驭Mojo模型:处理大规模数据集的艺术

驾驭Mojo模型&#xff1a;处理大规模数据集的艺术 引言 在现代的数据分析和机器学习领域&#xff0c;处理大规模数据集是一个常见且具有挑战性的任务。Mojo&#xff08;Model-as-a-Service&#xff09;模型&#xff0c;作为一种提供模型服务化的工具&#xff0c;允许开发者和…

vue中,当数据更之后,视图没有对应的更新

异步更新队列&#xff1a;Vue.js中对数据的更改是异步的&#xff0c;当你修改数据时&#xff0c;Vue并不会立即更新DOM&#xff0c;而是将更改放入一个队列中&#xff0c;然后在下一个事件循环中才会更新视图。这是为了优化性能。如果在同一个事件循环中进行多次数据修改&#…