在ubuntu、centos、openEuler安装Docker、构建一个简单的 Nginx 镜像

news2024/9/22 7:28:06

目录

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 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.coloradmin.cn/o/2037175.html

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

相关文章

【NXP-MCXA153】SPI驱动移植

介绍 SPI总线由摩托罗拉公司开发&#xff0c;是一种全双工同步串行总线&#xff0c;由四个IO口组成&#xff1a;CS、SCLK、MISO、MOSI&#xff1b;通常用于CPU和外设之间进行通信&#xff0c;常见的SPI总线设备有&#xff1a;TFT LCD、QSPI FLASH、时钟模块、IMU等&#xff1b…

假如萝卜快跑撞了人,谁来负责?

引言 自动驾驶时代来临&#xff0c;司机的身影消失。但没有了司机&#xff0c;交通事故谁来负责&#xff1f;在AI刚爆火时&#xff0c;有个半调侃的笑话很出名&#xff1a;AI肯定不能替代会计和律师&#xff0c;因为一旦出了事&#xff0c;AI负不了责&#xff0c;但会计和律师…

Nest.js 实战 (九):使用拦截器记录用户 CURD 操作日志

前言 有一天&#xff0c;公司的产品经理提了一个需求&#xff1a;系统需要记录每个用户的 CURD 操作&#xff0c;也就是说用户新增、编辑或者删除了什么数据&#xff0c;都需要记录下来&#xff0c;这个在 Nest.js 中如何实现呢&#xff1f; 这时候我们可以考虑使用 拦截器 来…

《书生大模型实战营第3期》进阶岛 第一关: 探索 InternLM 模型能力边界

文章大纲 OpenCompass 评测体验大模型对比评测 - Bad caseBad Case 1Bad Case 2Bad Case 3Bad Case 4Bad Case 5 大模型对比评测 - Good caseGood case 1Good Case 2 任务其他学习内容参考文献本人学习系列笔记第二期第三期 课程资源论文其他参考 OpenCompass 评测体验 https:…

opencv-python图像增强七:图像亮度对比度饱和度调整

文章目录 一&#xff0c;简介二&#xff0c;图像亮度对比度修改三&#xff0c;对比度增强&#xff1a; 一&#xff0c;简介 在图像处理领域&#xff0c;对比度、亮度和饱和度是影响图像视觉效果的重要因素。合理调整这三个参数&#xff0c;可以使图像更具表现力&#xff0c;满…

北斗短报文通信原理

短报文通信原理主要基于北斗卫星导航系统&#xff0c;其过程可以分为以下几个步骤&#xff1a;用户机将包含接收方ID号和通讯内容的通讯申请信号加密后通过卫星转发入站;地面中心站接收到通讯申请信号后&#xff0c;进行脱密和再加密处理&#xff0c;然后将其加入持续广播的出站…

WindowsAPI 查阅笔记:线程、多个线程互同步

1. 线程的创建 HANDLE CreateThread(LPSECURITY_ATTRIBUTES lpThreadAttributes, //线程安全属性 SIZE_T dwStackSize, //线程堆栈大小 LPTHREAD_START_ROUTINE lpStartAddress, //重要: 线程函数指针 LPVOID lpParameter, //重要: 启动线程函数 DWORD dwC…

分布式知识总结(一致性Hash算法)

文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 一致性Hash算法 假如有三台服务器编号node0、node1、node2&…

若依项目改造-sqlserver(2)

目前启动时&#xff0c;不需要配置数据库 1、启动时&#xff0c;不用检查数据库连接 2、可以在线导出数据库备份bak文件 3、实现不用配置jdk环境启动 4、实现启动没有控制台窗口

排序【归并排序和计数排序】

1.归并排序 1.1 基本思想 并归排序&#xff1a;是建立在归并操作上的一种有效的排序算法,该算法是采用分治法&#xff08;Divide and Conquer&#xff09;的一个非常典型的应用。将已有序的子序列合并&#xff0c;得到完全有序的序列&#xff1b;即先使每个子序列有序&#x…

【代理模式】设计模式系列:实现与最佳实践(掌控访问的艺术)

文章目录 Java中的代理模式引言1. 代理模式概念1.1 代理模式定义1.2 代理模式的参与者1.3 代理模式的基本工作原理1.4 代理模式的优点与缺点 2. Java代理模式实现方式2.1 静态代理2.2 动态代理2.2.1 JDK动态代理2.2.2 CGLIB动态代理 2.3 两者之间的区别与选择 3. 使用案例分析3…

Mariadb数据库本机无密码登录的问题解决

Mariadb数据库本机无密码登录的问题解决 安装了mariadb后&#xff0c;发现Mariadb本机无密码才能登录 百度了很多文章&#xff0c;发现很多人是因为root的plugin设置的值不正确导致的&#xff0c;unix_socket可以不需要密码&#xff0c;mysql_native_password 是正常的。 解…

Codeforces Round 965 (Div. 2)

前言 有人在过七夕&#xff0c;我在打 cf &#xff0c;还有某人独自一人在学校机房&#xff0c;凌晨一点骑上共享单车回宿舍欣赏沿途的秋风扫落叶。 Standings&#xff1a;2166 题目链接&#xff1a;Dashboard - Codeforces Round 965 (Div. 2) - Codeforces A. Find K Distin…

未来能源技术

未来能源技术正处于全球焦点的中心&#xff0c;旨在应对气候变化、资源枯竭和能源安全的挑战。未来能源技术的发展方向集中在可再生能源、能源储存技术、智能电网、核聚变以及新材料的应用等多个领域。 1. 可再生能源技术 1.1 太阳能技术 太阳能技术是未来能源发展的核心领域之…

精密Δ-Σ ADC的有效噪声带宽

1 简介 即使对最有经验的模拟设计工程师来说&#xff0c;理解ADC噪声也是一项挑战。Δ-Σ ADC具有量化噪声和热噪声&#xff0c;其变化取决于ADC的分辨率、参考电压和输出数据速率。在系统层面上&#xff0c;噪声分析因附加的信号链组件而变得更加复杂&#xff0c;这些组件中的…

NLP_情感分类_序列模型方案

文章目录 项目背景代码导包读取数据文本预处理举例查看分词器数据集调整进一步剖析&#xff1a;对应Step [{i1}/{len(train_loader)}] 里的train_loader进一步剖析&#xff1a;Step [{i1}/{len(train_loader)}] 里的train_loader&#xff0c;原始的train_df 计算数据集中最长文…

Java 并发(四)—— volatile 和 synchronized

一、volatile 关键字 1.概念 如果我们将一个变量使用 volatile 修饰&#xff0c;这就指示 编译器&#xff0c;这个变量是共享且不稳定的&#xff0c;每次使用它都到主存中进行读取。 2.作用 保证变量对所有线程的可见性。但不能保证数据的原子性。因此不能完全保证线程安全…

STP(生成树)的概述和工作原理

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:Linux运维老纪的首页…

PHPStorm 环境配置与应用详解

​ 大家好&#xff0c;我是程序员小羊&#xff01; 前言&#xff1a; PHPStorm 是 JetBrains 出品的一款专业 PHP 集成开发环境&#xff08;IDE&#xff09;&#xff0c;凭借其智能的代码补全、调试功能、深度框架支持和前端开发工具&#xff0c;为用户提供了丰富的功能和工具…

简单的敏感词提示功能

简单的敏感词提示功能 1. 需求 公司现在接到通知&#xff0c;部分接口的部分手动输入字段&#xff0c;需要新增敏感词报红提示&#xff0c;敏感词汇现在应该是7000多个左右&#xff0c;需要我们提供一个敏感词校验接口&#xff0c;如果前端输入敏感词&#xff0c;则前端提示出…