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

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Teamcenter RAC开发,创建Item的两种方式
  • 解密阿里大神写的天书般的Tree工具类,轻松搞定树结构!
  • 【总结】前端JQuery获取Java后端文件流实现常规附件预览功能
  • Qt基础 | QSqlQueryModel 的使用 | QSqlQuery的使用
  • 深入理解计算机系统 CSAPP 家庭作业11.7
  • SMA 内孔 弯头——KH-SMA-K513-G
  • SQL进阶:解锁高级特性,深化数据洞察
  • MySQL零散拾遗(七)--- 突发奇想的一些疑虑
  • 力扣SQL50 上级经理已离职的公司员工 一题双解
  • Python | Leetcode Python题解之第283题移动零
  • 按图搜索新体验:阿里巴巴拍立淘API返回值详解
  • 代码实践思考:ROS1和ROS2
  • 反转链表 - 力扣(LeetCode)C语言
  • 成为git砖家(2): gitk 介绍
  • 模拟实现c++中的string
  • 2017-08-04 前端日报
  • canvas实际项目操作,包含:线条,圆形,扇形,图片绘制,图片圆角遮罩,矩形,弧形文字...
  • JAVA SE 6 GC调优笔记
  • Java编程基础24——递归练习
  • magento 货币换算
  • Python 使用 Tornado 框架实现 WebHook 自动部署 Git 项目
  • python 学习笔记 - Queue Pipes,进程间通讯
  • rabbitmq延迟消息示例
  • Sequelize 中文文档 v4 - Getting started - 入门
  • uva 10370 Above Average
  • vagrant 添加本地 box 安装 laravel homestead
  • Vue2 SSR 的优化之旅
  • 阿里云ubuntu14.04 Nginx反向代理Nodejs
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  • 浮现式设计
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 快速体验 Sentinel 集群限流功能,只需简单几步
  • 前端每日实战:70# 视频演示如何用纯 CSS 创作一只徘徊的果冻怪兽
  • 融云开发漫谈:你是否了解Go语言并发编程的第一要义?
  • 入口文件开始,分析Vue源码实现
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • 一起参Ember.js讨论、问答社区。
  • 在electron中实现跨域请求,无需更改服务器端设置
  • 不要一棍子打翻所有黑盒模型,其实可以让它们发挥作用 ...
  • ​ArcGIS Pro 如何批量删除字段
  • ​Spring Boot 分片上传文件
  • ​ssh免密码登录设置及问题总结
  • # Python csv、xlsx、json、二进制(MP3) 文件读写基本使用
  • #{}和${}的区别是什么 -- java面试
  • #Datawhale AI夏令营第4期#AIGC方向 文生图 Task2
  • (8)Linux使用C语言读取proc/stat等cpu使用数据
  • (echarts)echarts使用时重新加载数据之前的数据存留在图上的问题
  • (Python) SOAP Web Service (HTTP POST)
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (十六)视图变换 正交投影 透视投影
  • (转)四层和七层负载均衡的区别
  • ***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结...
  • .MSSQLSERVER 导入导出 命令集--堪称经典,值得借鉴!
  • .net core IResultFilter 的 OnResultExecuted和OnResultExecuting的区别
  • .NET DataGridView数据绑定说明