Docker安装(Docker Engine安装)

一、Docker Engine和Desktop区别

Docker Engine

  • 核心组件:Docker Engine是Docker的核心运行时引擎,负责构建、运行和管理容器。它包括守护进程(dockerd)、API和命令行工具客户端(docker)。
  • 适用环境:Docker Engine适用于没有图形界面的设备,如服务器或虚拟机。它通过命令行界面进行操作,适合需要高度定制化和高性能的生产环境。
  • 特点:Docker Engine提供灵活的API和工具集,支持高级功能如自定义网络配置和安全设置,适合对性能和安全性要求较高的场景。支持常见的Linux平台(未直接提供Mac、Window版)

Docker Desktop

  • 桌面应用:Docker Desktop是一个桌面应用程序,提供了图形界面,支持三类平台:Mac、Windows、带图形界面的Linux,为用户提供了直观地管理容器。
  • 集成特性:它除了包含Docker Engine外,还集成了以下功能:
    • Docker Engine
    • Docker CLI client
    • Docker Scout (additional subscription may apply)
    • Docker Build
    • Docker Extensions
    • Docker Compose
    • Docker Content Trust
    • Kubernetes
    • Credential Helper

总结下:

    Docker Engine是核心,提供命令方式,适合生产服务器环境(也称为Docker CE)。

    Docker Desktop不仅包含Engine还集成有其他功能,提供图形操作界面。

二、安装Docker

     我们以CentOS 7.9 64bit为例,安装Docker Engine。

     其官方说明文档链接:https://docs.docker.com/engine/

     

    注意:对于CentOS 8或者CentOS 9使用dnf包管理器,对于CentOS使用yum包管理器。dnf与yum两者命令参数大致类似。

    1、安装docker如下:

# 移除Linux上可能存在的旧版本docker
sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine# 配置docker的yum源。因官方提供https://download.docker.com/linux/centos/docker-ce.repo的比较慢,因此配置为国内阿里源
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo# (二选一)安装最新docker软件
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin# (二选一)安装某个指定版本docker软件(先列出,再选择版本安装)
yum list docker-ce --showduplicates | sort -r
sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io docker-buildx-plugin docker-compose-plugin# 安装后,查看docker版本号
docker version

    注意:以上安装docker时,会自动创建名为“docker”的Linux组。

   2、启动docker

# 设置:随Linux开机而自动启动docker
sudo systemctl enable docker# 启动docker(若在上步enable命令最后增加“ --now”,则无需再执行以下start)
sudo systemctl start docker

   3、启动docker后,通过docker info查看信息

三、配置Docker Image国内镜像源

     Docker默认的镜像源是DockerHub,访问较慢。因此我们配置国内镜像源。

     1、在/etc/docker/daemon.json文件(若不存该文件则新建),增加以下内容(其中国内源URL可能失效则自行搜索寻找):

{"registry-mirrors": ["https://docker.m.daocloud.io","https://docker.rainbond.cc","https://docker.1panelproxy.com"]
}

     2、重启docker守护进程,使配置的国内镜像源生效。

# 重启Docker守护进程
sudo systemctl daemon-reload
sudo systemctl restart docker

     3、重启docker后,通过docker info查看信息。可以看到最后的Registry Mirrors信息

     4、执行“sudo docker run hello-world”下载image并运行。正常结果如下,可以看到提示本地没有该image则从网上pull镜像,最后运行容器,显示“Hello from Docker!”。

 自此,Docker在Linux上安装成功!

四、赋权非root用户

     默认只能root用户才能执行docker命令,为了让Linux上普通用户也能执行,可把指定用户加入至“docker”组中,这样该用户也可以执行docker命令了。

sudo usermod -aG docker 用户名

附:内网离线方式

  • 安装

     以上安装docker是联机在线方式,不适合内网。 对于内网离线,可以手工下载rpm包并拷贝进内网Linux服务器,然后通过yum安装本地rpm包方式进行安装。

     具体可参加官网:https://docs.docker.com/engine/install/centos/#install-from-a-package

  • image获取

     以上docker run或者docker pull是联机在线方式,不适合内网。 对于内网离线,可以分两步:

     ①先在外网获取image后,然后通过以下命令导出保存为tar文件

        docker save -o myimage.tar IMAGE_NAME:TAG

     ②将tar文件拷贝进内网Linux服务器,然后本地从tar文件加载作为image

        docker load -i /path/myimage.tar

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

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

相关文章

图片验证码

1.图片验证码意义 验证码可以防止恶意破解密码、刷票、论坛灌水&#xff0c;有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登录尝试。由于验证码技术具有随机性随机性较强、简单的特点&#xff0c;能够在一定程度上阻碍网络上恶意行为的访问&#xf…

网络编程基础:连接Java的秘密网络

1 网络编程的重要性 网络编程允许Java应用程序与其他计算机或设备进行通信。这包括从简单的数据传输到复杂的分布式系统和Web服务。 2 Java网络编程的核心类 Java提供了多个类来支持网络编程&#xff1a; InetAddress&#xff1a;表示网络上的IP地址。 URL&#xff1a;表示统…

SQLite 实际案例研究与创新应用

SQLite 作为一种强大而简单的数据库实现&#xff0c;应用于各类场景&#xff0c;从移动应用到物联网设备&#xff0c;再到边缘计算。在本章中&#xff0c;我们将通过几个典型案例&#xff0c;探讨 SQLite 如何在实际中解决复杂问题&#xff0c;并研究其创新应用的可能性。 案例…

解析 SQL 中的 NULL 与比较操作:NULL 值与任何值的比较会返回 UNKNOWN

在 SQL 查询中&#xff0c;我们经常会遇到 NULL 值。NULL 值的行为与其他数据类型的值是不同的&#xff0c;尤其是在进行条件比较时。NULL 与其他值的比较结果是什么&#xff1f; 1. NULL 的特殊性&#xff1a;三值逻辑 首先&#xff0c;我们需要理解 SQL 中的三值逻辑&#…

20241231 机器学习ML -(2)KNN(scikitlearn)

1. build DKTree 递推创建Tree&#xff1b;当前维度找中位数分割 数据集 left set&#xff0c;Node(mid), right set. * 循环维度&#xff08;当log(Nsample)>featureSize) 2. DKTree KNN search * 理论部分向量几何有介绍。 每个维度列中&#xff0c;中位数对应的数据点…

CSS 学习之正确看待 CSS 世界里的 margin 合并

一、什么是 margin 合并 块级元素的上外边距(margin-top)与下外边距(margin-bottom)有时会合并为单个外边距&#xff0c;这样的现象称为“margin 合并”。从此定义上&#xff0c;我们可以捕获两点重要的信息。 块级元素&#xff0c;但不包括浮动和绝对定位元素&#xff0c;尽…

渗透测试--Web基础漏洞利用技巧

渗透测试--Web基础漏洞利用技巧 本文章写了Web基础漏洞中一些不那么常见的利用技巧&#xff0c;而不谈及漏洞的原理以及常见用法。 SQL 俺是SQLmap党&#xff0c;哈哈&#xff0c;所以这块就不多讲了。详情可见文章《渗透测试--SQLmap_渗透测试sqlmap-CSDN博客》 XXE XXE组成…

Jmeter进阶篇(32)Jmeter 在 MySQL 数据库压测中的应用

一、引言 在当今数字化时代,数据库性能的优化对于企业的发展至关重要。随着业务量的不断增长,数据库需要承受越来越大的压力。MySQL作为一种广泛使用的开源数据库,其性能和稳定性备受关注。为了确保数据库在高负载情况下能够正常运行,进行压测是必不可少的环节。Jmeter作为…

【git】git stash相关指令

目录 git stashgit stash save “”git stash list&#xff1a; 获取stash列表git stash pop&#xff1a;恢复最近一次stash缓存git stash apply stash{index}: 恢复指定缓存在这里插入图片描述git stash drop stash{1}&#xff1a;删除指定缓存 git stash clear :删除stash gi…

Linux 基础 6.进程

文章目录 6.1 进程和程序1. **程序 (Program)**2. **进程 (Process)**3. **程序与进程的区别**4. **进程的创建与执行**5. **总结** 6.2 进程号和父进程号1. **进程号 (PID)**2. **进程号的分配**3. **父进程号 (PPID)**4. **进程树结构**5. **进程号的限制与调整**6. **总结**…

Go语言的 的泛型(Generics)核心知识

Go语言的泛型&#xff08;Generics&#xff09;核心知识 引言 在编程语言的发展历程中&#xff0c;泛型是一项重要的特性。它使得程序员能够编写更加灵活和可重用的代码&#xff0c;减少了代码重复&#xff0c;提高了类型安全性和性能。从最初的C和Java&#xff0c;到现代的R…

用公网服务代理到本地电脑笔记

参考&#xff1a; 利用frp 穿透到内网的http/https网站&#xff0c;实现对外开放&#xff08;这篇博客有点老&#xff0c;需要改动&#xff0c;不能照抄&#xff09;&#xff1a;https://www.cnblogs.com/hahaha111122222/p/8509150.html frp内网穿透(windows和服务器)&#xf…

uni-app:实现普通选择器,时间选择器,日期选择器,多列选择器

效果 选择前效果 1、时间选择器 2、日期选择器 3、普通选择器 4、多列选择器 选择后效果 代码 <template><!-- 时间选择器 --><view class"line"><view classitem1><view classleft>时间</view><view class"right&quo…

Java接口中的默认方法(Default Methods)

前言 在Java 8发布之后&#xff0c;接口的功能得到了显著增强&#xff0c;其中最引人注目的特性之一就是默认方法。默认方法允许接口提供带有实现的方法&#xff0c;这不仅不会破坏现有代码的兼容性&#xff0c;还能为所有实现了该接口的类直接提供新功能。 默认方法的基础知…

GAN对抗生成网络(二)——算法及Python实现

1 算法步骤 上一篇提到的GAN的最优化问题是&#xff0c;本文记录如何求解这一问题。 首先为了表示方便&#xff0c;记&#xff0c;这里让最大的可视作常量。 第一步&#xff0c;给定初始的&#xff0c;使用梯度上升找到 ,最大化。关于梯度下降&#xff0c;可以参考笔者另一篇…

[读书日志]从零开始学习Chisel 第二篇:Scala的变量与函数(敏捷硬件开发语言Chisel与数字系统设计)

第一篇https://blog.csdn.net/m0_74021449/article/details/144887921 2.2 Scala的变量及函数 2.2.1变量定义与基本类型 变量声明 变量首次定义必须使用关键字var或者val&#xff0c;二者的区别是val修饰的变量禁止被重新赋值&#xff0c;它是一个只读的变量。首次定义变量时…

Spring Boot - 日志功能深度解析与实践指南

文章目录 概述1. Spring Boot 日志功能概述2. 默认日志框架&#xff1a;LogbackLogback 的核心组件Logback 的配置文件 3. 日志级别及其配置配置日志级别3.1 配置文件3.2 环境变量3.3 命令行参数 4. 日志格式自定义自定义日志格式 5. 日志文件输出6. 日志归档与清理7. 自定义日…

NVIDIA DLI课程《NVIDIA NIM入门》——学习笔记

先看老师给的资料&#xff1a; NVIDIA NIM是 NVIDIA AI Enterprise 的一部分&#xff0c;是一套易于使用的预构建容器工具&#xff0c;目的是帮助企业客户在云、数据中心和工作站上安全、可靠地部署高性能的 AI 模型推理。这些预构建的容器支持从开源社区模型到 NVIDIA AI 基础…

JOIN 和 OUTER JOIN,SQL中常见的连接方式

1. INNER JOIN&#xff08;简称 JOIN&#xff09; INNER JOIN 是 SQL 中最常用的一种连接方式&#xff0c;默认的 JOIN 就是 INNER JOIN。它返回两个表中满足连接条件的匹配记录。 作用&#xff1a;返回两个表中所有满足 ON 条件的记录。特性&#xff1a;如果表中的某些行在连…

【HF设计模式】05-单例模式

声明&#xff1a;仅为个人学习总结&#xff0c;还请批判性查看&#xff0c;如有不同观点&#xff0c;欢迎交流。 摘要 《Head First设计模式》第5章笔记&#xff1a;结合示例应用和代码&#xff0c;介绍单例模式&#xff0c;包括遇到的问题、采用的解决方案、以及达到的效果。…