Docker:介绍与安装

Docker官网与仓库地址

  • docker官网:http://www.docker.comopen
  • Docker Hub官网: https://hub.docker.com/open

Docker三要素

镜像 (Image)

镜像是Docker的核心概念之一,它是不可变的、只读的,并包含了一套文件系统,里面包含了运行某个软件所需的所有内容,如代码、运行时、库、环境变量等。你可以将镜像想象成一个类Unix操作系统的快照。

容器 (Container)

容器是从镜像运行起来的一个实例,它可以被启动、停止、移动和删除。每一个容器都有自己的root文件系统、网络栈、进程空间等,因此它们之间是完全隔离的。

仓库 (Repository)

仓库是用来保存镜像的地方,你可以把它理解成一个代码仓库,只不过这里存放的是Docker镜像。Docker官方维护了一个公共的镜像仓库Docker Hub,任何人都可以在上面分享和下载镜像。

仓库分为公开仓库(Public)和私有仓库(Private)两种形式。

最大的公开仓库是 Docker Hub(https://hub.docker.com/open), 存放了数量庞大的镜像供用户下载。国内的公开仓库包括腾讯云

深入理解

容器 (Containers)

  • 容器是 Docker 中的运行时实体,它是一个独立的、隔离的环境,其中包含了应用程序及其所有依赖项。
  • 容器是基于镜像创建的,它使用镜像作为启动应用程序的蓝图,因此容器包括了操作系统、应用程序和配置等信息。
  • 容器提供了隔离和轻量级的虚拟化,允许应用程序在相同的主机上运行,但彼此之间相互隔离,不会相互干扰。

镜像 (Images)

  • 镜像是容器的模板,它是只读的,包含了操作系统、应用程序和所有依赖项的文件系统快照。
  • 镜像是不可变的,一旦创建,它不能被更改。如果需要对应用程序或环境进行更改,需要创建一个新的镜像。
  • 镜像可以从 Dockerfile 文件构建,Dockerfile 是一种文本文件,定义了如何构建一个镜像,包括基础镜像、应用程序的安装、配置等。

仓库 (Repository)

  • 仓库是用于存储和共享 Docker 镜像的地方,可以理解为集中的镜像存储库。
  • 仓库通常托管在 Docker 镜像仓库服务上,最著名的是 Docker Hub。这些服务允许用户上传、下载和分享镜像。
  • 仓库包含一个或多个具体的镜像标签,每个标签对应不同的镜像版本。

举例来说,假设想运行一个基于 CentOS 操作系统的 Web 服务器应用程序。可以按照以下步骤进行操作:

  1. 创建一个 Dockerfile,其中定义了如何基于 CentOS 镜像构建您的应用程序镜像,包括安装 Web 服务器和配置。
  2. 使用 Docker 镜像构建命令 (docker build) 来生成应用程序镜像。
  3. 将应用程序镜像上传到 Docker 仓库,这可以是公共的 Docker Hub 仓库或私有的镜像仓库。
  4. 在目标主机上运行容器,通过指定上传的镜像名称和标签,Docker 将下载镜像并在容器中运行应用程序。

仓库允许共享镜像,同时可以保存多个版本的镜像,以便轻松地回滚到旧版本或进行更新。容器和镜像则提供了应用程序的隔离和可移植性,使得可以在不同的环境中运行相同的应用程序。这些概念共同构成了 Docker 生态系统的核心。

请在此添加图片描述

Docker的安装与卸载

准备

在安装 Docker 之前,先说一下配置,我这里是Centos7 Linux 内核:官方建议 3.10 以上 。

查看当前的内核版本

uname -r

请在此添加图片描述

3.10.0-1160.95.1.el7.x86_64

3.10.0-1160.95.1.el7.x86_64 是 CentOS 7 操作系统内核的版本号。具体来说,它表示了以下信息:
3.10.0 是 Linux 内核的主版本号。
1160.95.1 是 CentOS 7 内核的次版本号和修订号。
el7 表示这个内核是为 CentOS 7 版本构建的。
x86_64 表示内核是为 64 位 x86 架构的计算机编译的。

这个版本号用于标识操作系统内核的特定版本,它对于系统管理员和开发人员来说是很重要的,因为不同的内核版本可能会带来不同的特性、改进和修复。如果需要详细了解此内核版本的内容或有特定的问题,可以查看 CentOS 官方文档或内核发布说明来获取更多信息。


基于Centos7官网教程

  • 英文:Install Docker Engine on CentOS
  • 中文:在CentOS上安装Docker Engine

安装docker服务

如果已经安装,则卸载旧的docker版本

$ sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine

安装仓库

sudo yum install -y yum-utils
#设置镜像仓库地址
sudo yum-config-manager \--add-repo \http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装Docker引擎

安装最新版本的Docker Engine和容器,或转到下一步以安装特定版本:

sudo yum install docker-ce docker-ce-cli containerd.io

这个命令是安装 Docker CE 和它的两个重要组件 docker-ce-clicontainerd.io

CE 是 Community Edition 的缩写,意思是社区版。

docker-ce 是 Docker 的核心组件,包括了运行 Docker 所需的各种二进制文件和配置文件。
docker-ce-cli 是 Docker 的命令行工具,用于和 Docker 服务器进行交互,例如运行容器、管理镜像等。
containerd.io 是 Docker 使用的一个底层容器运行时,它提供了一些关键的功能,如容器生命周期管理、镜像传输和存储等。

总的来说,这三个组件共同构成了 Docker CE,并且缺一不可。如果想在 CentOS 上安装 Docker,那么就需要运行上述命令。

注意:在安装前请确保 CentOS 版本支持 Docker CE,同时也需要确保有 root 权限才能运行此命令。如果 CentOS 版本较老,可能需要先更新系统版本再进行安装。

启动docker服务

systemctl start docker

设置docker自启

systemctl enable docker

查看docker版本

docker version 

或者

docker -v

请在此添加图片描述

测试docker容器

docker run hello-world

请在此添加图片描述

查看docker容器

docker images

请在此添加图片描述

配置镜像加速配置

请在此添加图片描述

vim /etc/docker/daemon.json

添加镜像地址

{   "registry-mirrors": ["https://xxx.xxx.xxx.com"] 
}    

或者

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{# 用你自己的镜像源!!!!!!"registry-mirrors": ["https://xxxxxxxxxxxxxxxxxxxxxx.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

重新加载配置文件

systemctl daemon-reload

重启docker服务

systemctl restart docker

卸载docker

先停止docker

systemctl stop docker

卸载Docker Engine,CLI和Containerd软件包

sudo yum remove docker-ce docker-ce-cli containerd.io

主机上的映像,容器,卷或自定义配置文件不会自动删除。要删除所有图像,容器和卷

sudo rm -rf /var/lib/docker 
sudo rm -rf /var/lib/containerd

必须手动删除所有已编辑的配置文件!!!

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

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

相关文章

Odoo:免费开源的医药流通行业信息化解决方案

文 / 开源智造Odoo亚太金牌服务 方案概述 开源智造Odoo免费开源ERP提供面向医药批发采、供、销业财一体化&#xff0c;及直接面向消费者的门店终端、全渠道管理、营销管理以及GSP合规管理解决方案&#xff0c;提升企业运营效率和全业务链条的数字化管控、追溯能力。 行业的最新…

HashMap 源码分析

HashMap 源码分析 1. 前置知识 1.1 什么是 Map 在实际需求中&#xff0c;我们常常会遇到这样的问题&#xff1a;在诸多数据中&#xff0c;通过其编号来寻找某些信息&#xff0c;从而进行查看或修改&#xff0c;例如通过学号查询学生信息。今天我们所介绍的 Map 集合就可以很…

Linux 常用安装软件

1、安装JDK 1.1、查看系统自带JDK yum search java|grep jdk 1.2、安装JDK yum install java-1.8.0-openjdk 输入Y 1.3、编辑环境变量配置 vim /etc/profile 添加一下配置 export JAVA_HOME/usr/lib/jvm/java-1.8.0-openjdk export PATH$JAVA_HOME/bin:$PATH export CLAS…

三傻排序和对数器

三傻排序、对数器 前置知识&#xff1a;无&#xff0c;三傻排序会的可以直接跳过&#xff0c;对数器一定要理解 三傻排序是所有排序中时间复杂度最差的&#xff08;时间复杂度请看后面的内容&#xff09;&#xff0c;在实际的工作中&#xff0c;插入排序在数据量小的时候还会…

库存管理内训课件|39页PPT

文件是一份关于库存管理的内训课件&#xff0c;内容涵盖了库存管理的定义、分类、作用、存在的问题、管控目标以及具体管控措施。以下是对课件内容的总结&#xff1a; 1. 定义及分类 库存&#xff1a;为满足未来需求而暂时闲置的有价值的资源&#xff0c;与物品是否处于运动状…

【WebRTC】WebRTC的简单使用

目录 1.下载2.官网上的使用3.本地的使用 参考&#xff1a; 【webRTC】一、windows编译webrtc Windows下WebRTC编译 1.下载 下载时需要注意更新python的版本和网络连接&#xff0c;可以先试试ping google。比较关键的步骤是 cd webrtc-checkout set https_proxy127.0.0.1:123…

【设计模式系列】组合模式(十二)

目录 一、什么是组合模式 二、组合模式的角色 三、组合模式的典型应用 四、组合模式在Mybatis SqlNode中的应用 4.1 XML映射文件案例 4.2 Java代码使用案例 一、什么是组合模式 组合模式&#xff08;Composite Pattern&#xff09;是一种结构型设计模式&#xff0c;其核…

API网关 - JWT认证 ; 原理概述与具体实践样例

API网关主要提供的能力&#xff0c;就是协议转换&#xff0c;安全&#xff0c;限流等能力。 本文主要是分享 如何基于API网关实现 JWT 认证 。 包含了JWT认证的流程&#xff0c;原理&#xff0c;与具体的配置样例 API网关认证的重要性 在现代Web应用和微服务架构中&#x…

ArcGIS 地理信息系统 任意文件读取漏洞复现

0x01 产品简介 ArcGIS是由美国Esri公司研发的地理信息系统(GIS)软件,它整合了数据库、软件工程、人工智能、网络技术、云计算等主流的IT技术,旨在为用户提供一套完整的、开放的企业级GIS解决方案,它包含了一套带有用户界面组件的Windows桌面应用。可以实现从简单到复杂的…

一文了解Android SELinux

在Android系统中&#xff0c;SELinux&#xff08;Security-Enhanced Linux&#xff09;是一个增强的安全机制&#xff0c;用于对系统进行强制访问控制&#xff08;Mandatory Access Control&#xff0c;MAC&#xff09;。它限制了应用程序和进程的访问权限&#xff0c;提供了更…

如何看待AI技术的应用前景?

文章目录 如何看待AI技术的应用前景引言AI技术的现状1. AI的定义与分类2. 当前AI技术的应用领域 AI技术的应用前景1. 经济效益2. 社会影响3. 技术进步 AI技术应用面临的挑战1. 数据隐私与安全2. 可解释性与信任3. 技能短缺与就业影响 AI技术的未来发展方向1. 人工智能的伦理与法…

Java | Leetcode Java题解之第539题最小时间差

题目&#xff1a; 题解&#xff1a; class Solution {public int findMinDifference(List<String> timePoints) {int n timePoints.size();if (n > 1440) {return 0;}Collections.sort(timePoints);int ans Integer.MAX_VALUE;int t0Minutes getMinutes(timePoint…

讲讲 kafka 维护消费状态跟踪的方法?

大家好&#xff0c;我是锋哥。今天分享关于【讲讲 kafka 维护消费状态跟踪的方法&#xff1f;】面试题&#xff1f;希望对大家有帮助&#xff1b; 讲讲 kafka 维护消费状态跟踪的方法&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 在 Kafka 中&#x…

多核架构的基本概念

目录 1.为什么使用多核 2.多核分类 2.1 同构和异构 2.2 SMP和AMP 3 小结 1.为什么使用多核 这个问题个人认为可以从两个方面来看&#xff1a; 性能问题 随着汽车ECU对集成化的要求越来越高&#xff0c;把多个ECU功能集中到一个多核MCU的需求也越来越明显。 以汽车制动…

GitHub | 发布到GitHub仓库并联文件夹的方式

推送到Github 推送步骤如果你只想更新单个文件&#xff0c;只需在第 4 步中指定该文件的路径即可。可能问题一 效果 推送步骤 更新 GitHub 仓库中的文件通常涉及以下步骤&#xff1a; 克隆仓库&#xff1a; 首先&#xff0c;你需要将 GitHub 上的仓库克隆到本地。使用 git …

【ArcGIS】绘制各省碳排放分布的中国地图

首先&#xff0c;准备好各省、自治区、直辖市及特别行政区&#xff08;包括九段线&#xff09;的shp文件&#xff1a; 通过百度网盘分享的文件&#xff1a;GS&#xff08;2022&#xff09;1873 链接&#xff1a;https://pan.baidu.com/s/1wq8-XM99LXG_P8q-jNgPJA 提取码&#…

【网络面试篇】HTTP(2)(笔记)——http、https、http1.1、http2.0

目录 一、相关面试题 1. HTTP 与 HTTPS 有哪些区别&#xff1f; 2. HTTPS 的工作原理&#xff1f;&#xff08;https 是怎么建立连接的&#xff09; &#xff08;1&#xff09;ClientHello &#xff08;2&#xff09;SeverHello &#xff08;3&#xff09;客户端回应 &a…

FastAPI 请求体解析:基础概念与综合应用

FastAPI 请求体解析&#xff1a;基础概念与综合应用 本文深入探讨了 FastAPI 中的请求体概念&#xff0c;强调使用 Pydantic 模型来声明请求体数据结构。通过具体示例&#xff0c;展示了如何定义请求体、可选参数及默认值&#xff0c;提升数据验证和类型提示的便利性。文章还说…

Python并发编程库:Asyncio的异步编程实战

Python并发编程库&#xff1a;Asyncio的异步编程实战 在现代应用中&#xff0c;并发和高效的I/O处理是影响系统性能的关键因素之一。Python的asyncio库是专为异步编程设计的模块&#xff0c;提供了一种更加高效、易读的并发编程方式&#xff0c;适用于处理大量的I/O密集型任务…

Golang--数组、切片、映射

1、数组 1.1 数组类型 var 数组名 [数组大小]数据类型 package main import "fmt"func main(){//1、定义一个数组var arr1 [5]intarr1[0] 100arr1[1] 200fmt.Println(arr1) //[100 200 0 0 0] } 1.2 数组的初始化方式 package main import "fmt" func …