Docker相关介绍

Docker相关概念介绍 什么是Docker Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。 Docker起源 Docker 是 PaaS 提供商 dotCloud 开源的一个基于 LXC 的高级容器引擎,源代码托管在 Github 上, 基于g... 阅读详情

目录

Docker的应用场景

Docker的优缺点

Docker的优点

Docker的缺点

Docker的架构

补充:

        Docker命令

        进程命令:

        镜像命令:

        容器命令:


Docker 是一个开源的应用容器引擎,基于 Go语言并遵从 Apache2.0 协议开源。它可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化,它完全使用沙箱机制,相互之间不会有任何接口,而且容器性能开销极低。

docker与虚拟机的对比

打包、分发、部署

打包:就是把你软件运行所需的依赖、第三方库、软件打包到一起,变成一个安装包

分发:你可以把你打包好的“安装包”上传到一个镜像仓库,其他人可以非常方便的获取和安装

部署:拿着“安装包”就可以一个命令运行起来你的应用,自动模拟出一摸一样的运行环境,不管是在Windows/Mac/Linux.

Docker的应用场景

web应用的自动化打包和发布

自动化测试和持续集成、发布

在服务型环境中部署和调整数据库或其他的后台应用

从头编译或者扩展现有的 OpenShift(红帽的云开发平台) 或 Cloud Foundry(VMvare推出的第一个开源Paas云平台) 平台来搭建自己的 PaaS 环境

Docker的优缺点

Docker的优点

1. **轻量级**:Docker容器化技术提供了轻量级的虚拟化,使得应用程序和它们的依赖能够以容器的形式打包并在不同环境中运行,减少了资源占用和启动时间。

2. **一致性**:Docker容器将应用程序及其依赖项打包成一个独立的单元,确保了在不同环境中的一致性,从而避免了"在我的机器上可运行,在别的机器上不能运行"的问题。

3. **可移植性**:Docker容器可以在不同的主机和云平台上运行,提供了良好的可移植性和跨平台性。

4. **高效性**:Docker容器共享操作系统内核,因此相比于传统的虚拟化技术,它们占用更少的系统资源,并且能够快速启动和停止。

Docker的缺点

1. **网络配置复杂**:在多个Docker容器之间设置网络通信可能需要一些额外的配置和管理,特别是在跨主机和多节点集群中。

2. **安全性挑战**:Docker容器之间的隔离性相对较弱,如果不正确配置,可能会导致容器之间的相互影响或者安全漏洞的产生。

3. **不适合长时间运行**:Docker容器主要用于应用程序的短期运行和扩展,对于长时间运行的应用程序,可能需要考虑其他技术来管理状态和持久化存储 。

4. **陡峭的学习曲线**:尽管Docker方便快捷,但不可否认要精通该平台需要一定的学习曲线 。

5. **平台到平台的通信**:尽管容器可以无缝地相互通信,但在平台间的通信可能需要额外的配置和管理 。

6. **实例无状态**:Docker实例是无状态的,这意味着它们不应该承载任何交易数据,所有数据都需要在宿主环境中处理 。

以上就是Docker的主要优缺点,它在开发、测试和部署等方面带来了很大的便利,但也需要注意其使用过程中的一些挑战和限制。

Docker的架构

三个基本概念

镜像:Docker镜像相当于一个root文件系统(一个小的虚拟机)

容器:镜像和容器的关系就像是面向对象程序设计中的类和对象一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建,启动、停止、删除、暂停等。(安装好软件的虚拟机环境)

仓库:仓库可看成一个代码控制中心,用来保存镜像

Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。

相关概念:

        Docker镜像:用于创建Docker容器的模版

        Docker容器:独立运行的一个或一组应用,是镜像运行时的实体。

        Docker客户端:通过命令行或者其他工具使用Docker SDK与Docker的守护进程通信。

        Docker主机:一个物理或者虚拟机用户执行Docker守护进程和容器

        Docker registry:用来保存镜像,可以理解为代码控制中的代码仓库。

        Docker machine:一个简化Docker安装的命令行工具

补充:

1、沙箱—— 一个限制应用程序对系统资源的访问的运行环境

沙箱的主要目的是为了隔离和保护,它可以隔离网络中的不同用户或应用程序,提供独立的执行环境,防止一个用户或应用程序的恶意行为对其他用户或应用程序造成影响 。

沙箱的应用非常广泛,例如在搭建测试环境时,沙箱的应用只能访问自己的应用访问目录,而不能应用之间的资源进行共享,这样就形成了一个相对安全的机制,由于沙箱具有非常良好的独立性、隔离性,所以能够搭建一些具有高风险的软件进行测试 。此外,沙箱也被广泛应用于网络防御、安全测试、漏洞扫描和应急响应等领域。

沙箱的核心在于指定一套程序执行机制,在这个机制下沙箱内部程序的运行不会影响外部运行。例如,沙箱内万物基于重定向:重新指定方向,也就是说沙箱能够做到让沙箱内软件操作的文件、注册表等路径重定向到沙箱指定位置,这样软件本来想操作的资源就不会被访问或者操作,保证资源的安全性。

沙箱是一种强大的安全工具,它可以在隔离的环境中运行应用程序,防止恶意软件对系统资源的非法访问,从而提高系统的安全性。

2、PaaS(平台即服务)、Iaas(基础设施即服务)、 Saas(软件即服务)

IaaS、PaaS 和 SaaS 是云计算的三种主要服务类型,它们分别代表着不同的服务层级和功能。

IaaS (Infrastructure as a Service)

基础设施即服务(Infrastructure as a Service,IaaS)提供了虚拟化的计算资源,如服务器、存储和网络,用户可以根据自己的需求自由配置和使用这些资源,而不必关心硬件的购置和管理。这种服务模式允许用户节省大量的前期投资,并能够灵活地调整资源以适应业务需求的变化。

PaaS (Platform as a Service)

平台即服务(Platform as a Service,PaaS)则提供了软件部署平台,抽象掉了硬件和操作系统细节,使得开发者可以专注于自己的业务逻辑,而不需要关心底层的基础设施。PaaS 为生成、测试和部署软件应用程序提供一个环境,特别适合于需要定制开发的企业或开发者。

SaaS (Software as a Service)

软件即服务(Software as a Service,SaaS)是通过网络提供软件服务,用户可以直接通过网络使用软件,无需在本地安装和维护软件。SaaS 通常是由第三方供应商管理的应用程序,用户只需通过 Web 浏览器就可以访问这些应用程序,这种方式简化了软件的管理和更新,同时也减少了企业的 IT 成本 。

如何选择 IaaS、PaaS 或 SaaS?

选择哪种服务模式取决于你的具体需求和目标。如果你需要控制基础设施,并且希望自定义解决方案,那么 IaaS 可能是最好的选择。如果你的重点是开发和部署应用程序,那么 PaaS 可能更适合你。如果你只需要使用软件,而不需要关心其背后的基础设施和维护工作,那么 SaaS 可能是最好的选择 。

docker部署:

CentOS Docker 安装 | 菜鸟教程

docker命令

进程命令:

1、启动:systemctl start docker

2、查看状态:systemctl status docker

3、停止:systemctl stop docker

4、重启:systemctl restart docker

5、设置开机启动项:systemctl enable docker

镜像命令:

1、查看镜像:docker images(docker images -q 查看所有镜像的ID)

REPOSITORY:软件名称

TAG:版本

IMAGE ID:镜像的ID

CREATED:创建/安装的时间

SIZE:软件的大小

2、搜索镜像:docker search redis

3、拉取镜像:docker pull redis

如果想拉取具体版本的软件,需要登录镜像的后面加上“:版本号”,如果不指导镜像具体版本,可以去dockerhub搜索对应镜像查看。

4、删除镜像:docker rmi ID/名字+版本

删除所有的镜像:docker rmi `docker images -q`

容器命令:

1、创建容器:docker run -it --name r1 centos:7 /bin/bash (这种方式创建的容器后会自动进入容器,使用exit退出后就会关闭容器)

docker run -id --name r2 centos:7 /bin/bash (这种方式创建的容器后不会自动进入容器,需要使用exec命令进入容器,使用exit退出后就不会关闭容器)

参数:

-i 容器一直运行;

-t 给容器分配一个终端;

--name 起名字;

-d 后台运行容器,exit退出后不会关闭

2、查看正在运行的容器:docker ps

查看历史运行的容器:docker ps -a

3、进入容器:docker exec -it 容器ID

4、启动容器:docker start r1

5、关闭容器:docker stop r1

6、删除容器:docker rm r1

删除所有容器(在运行的无法删除):docker rm `docker ps -aq`

7、查看容器信息:docker inspect r1

Docker 常见问题解决 主要介绍了如何解决Docker 常见问题,帮助大家更好的理解和使用docker容器,感兴趣的朋友可以了解下 立即下载

相关推荐

uniapp 记录运动轨迹 开发_智能手环穿戴设备APP开发解决方案

智能手环是一种穿戴式智能设备,是目前备受关注的科技产品。目前智能手环具有的功能有记录日常生活中的运动数据、移动轨迹,定位等,有些还可以进行睡眠质量的检测,并将这些数据传送至移动端如手机、平板等,可对数据进行分析,指导健康生活的作用。而智能手环开发方案就是将这些功能实现,将算法烧录到主控板上。智能手环都有哪些功能  1、记录运动数据  对于喜欢健身的用户来说,智能手环记录的运动数据功能...

weixin_39678493的博客 1764

现在都在说 Docker 好,那它有什么弊端吗?

对于大规模的分布式系统和开发小组来说,Docker 的优点可能远大于缺点,提升开发效率,降低运维成本。9. 映像构建复杂:构建 Docker 映像需要按照特定格式编写 Dockerfile 脚本,需要遵循一定的规范和流程,这可能需要更多的时间和精力。1. 安全问题:如果 Docker 没有正确配置,那么一个容器中的恶意代码可以轻易地影响到主机上的其他容器以及主机本身的安全。4. 网络问题:Docker 可能会在网络配置上存在一些问题,这可能需要更多的时间来诊断和解决。

PHPcode123的博客 2665

Splunk CVE-2018-11409认证绕过漏洞深度解析

Splunk作为主流企业级日志分析平台,其Web管理接口的认证机制直接关系到整个安全运营体系的可信边界。CVE-2018-11409本质上是REST API路由层会话校验缺失引发的未授权访问问题,根源在于`/en-US/splunkd/__raw/`路径绕过了splunkweb与splunkd之间的信任链验证,导致配置文件、用户哈希、App源码等敏感信息明文泄露。该漏洞凸显了Web接口权限模型设计失守的风险,尤其在默认配置未加固、HTTPS未启用、初始密码未修改的生产环境中危害急剧放大。结合vulfocus

weixin_30875157的博客 599

Docker的优缺点

Docker解决的问题: 由于不同的机器有不同的操作系统,以及不同的库和组件,在将一个应用部署到多台机器上需要进行大量的环境配置操作。 Docker 主要解决环境配置问题,它是一种虚拟化技术,对进程进行隔离,被隔离的进程独立于宿主操作系统和其它隔离的进程。使用 Docker 可以不修改应用程序代码,不需要开发人员学习特定环境下的技术,就能够将现有的应用程序部署在其它机器上。 与虚拟机的比较: 虚拟机也是一种虚拟化技术,它与 Docker 最大的区别在于它是通过模拟硬件,并在硬件上安装操作系.

weixin_43910372的博客 1716

MinerU 系列教程 | 第二课:快速上手 -- 安装与第一次解析

本篇教程作为的第二课,将带你从零完成 MinerU 的环境搭建、模型下载,并成功运行第一次文档解析。上一课我们从宏观视角认识了 MinerU,本课开始正式动手实践。

weixin_43674738的博客 301

Data+AI━━数仓建模的智能进化之路!

Data+AI━━数仓建模的智能进化之路!

ith321的博客 1745

Docker如何使用

这份清华大牛整理的进大厂必备的redis视频、面试题和技术文档祝大家早日进入大厂,拿到满意的薪资和职级~~~加油!!!《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!” />这份清华大牛整理的进大厂必备的redis视频、面试题和技术文档祝大家早日进入大厂,拿到满意的薪资和职级~~~加油!!![外链图片转存中…(img-VBT00wHl-1711965652666)]《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》

2401_83703835的博客 1466

WPS文档中心和文档中台 operate 未授权访问漏洞(CVE-2025-0717)

WPS文档中心和文档中台的/open/v6/api/etcd/operate?key=/config/storage&method=get接口存在未授权访问漏洞,攻击者可通过该漏洞获取AK/SK密钥等信息,这些密钥通常用于系统内部认证和权限控制,泄露后可能导致攻击者进一步修改K8s配置、部署恶意容器或执行远程命令,最终实现对系统的完全控制。

李同學AI安全 904

Docker 容器有什么缺陷

使用安全容器:容器有着轻便快速启动的优点,虚拟机有着安全隔离的优点,有没有一种技术可以兼顾两者的优点,做到既轻量又安全呢?安全容器与普通容器的主要区别在于,安全容器中的每个容器都运行在一个单独的微型虚拟机中,拥有独立的操作系统和内核,并且有虚拟机般的安全隔离性。使用安全加固组件:Linux 的 SELinux、AppArmor、GRSecurity 组件都是 Docker 官方推荐的安全加固组件,这三个组件可以限制一个容器对主机的内核或其他资源的访问控制,目前容器报告里的一些安全漏洞。

神棍之路 1451

基于mengzi-t5训练生成式模型

【代码】基于mengzi-t5训练生成式模型。

开卷有益 171

把 300 亿参数的 Qwen3-30B-A3B 塞进 16GB 手机:MoE、mmap 与内存轮转的完整拆解

这篇文章详细拆解了如何在16GB内存手机上运行305亿参数的Qwen3-30B-A3B大模型。作者通过MoE(专家混合)架构、内存映射(mmap)和专用NPU内存(rpcmem)的巧妙结合实现了这一"不可能"的任务。 核心原理在于:MoE模型将庞大的前馈网络拆分为128个专家,每个词只激活8个专家,97%的权重处于闲置状态;通过mmap技术按需加载当前需要的专家权重;同时利用NPU专用内存高效计算关键部分。三个关键开关(GGML_HEXAGON_MOE_PAGING=1、--mmap、GGML_CPU_RE

q742971636的博客 187

Docker入门:带你了解Docker的特性和优缺点

Docker是一种基于Linux内核Cgroup+namespace功能的进程级虚拟化技术由于容器并未实际运行在Docker Engine之上,所以用此图来描述Docker更加合适。

Java技术乐园 654

openCv +3.4.0 车牌定位(C++版本)

#include <iostream> #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc.hpp> #include "opencv2/shape.hpp" using namespace ...

Bamboo265925的博客 2337

docker入门相关介绍

docker介绍Docker简介为什么用 Docker Docker简介 Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目。 它基于 Google 公司推出的 Go 语言实现。 项目后来加入了 Linux 基金会,遵从了 Apache 2.0 协议,项目代码在 GitHub 上进行维护。 Docker 项目的目标是实现轻量级的操作系统虚拟化解决...

beyond的博客 482

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

基于Docker开发~相关介绍

Docker 相关概念 镜像 分层存储 容器  Docker安装 windows安装MAC安装镜像加速器Dockerfile使用 Dockerfile示例Dockerfile 关键字说明 Docker使用 示范 Docker 相关概念 镜像  我们都知道,操作系统分为内核和用户空间。对于 Linux 而言,内核启动后,会挂载

wang被注册了 451

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

docker相关命令及介绍

CentOS7下载地址 点击此处跳转下载页面 提取码:lf3p 点击此处跳转下载教程页面 CentOS7 中安装docker 1.先安装依赖软件 yum install -y yum-utils device-mapper-persistent-data lvm2 2. 为yum源添加docker,下面两条命令二选一 --阿里云docker源(下载速度偏快) yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/ce

m0_46320537的博客 119

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

docker监控方面的相关介绍

docker监控一、自带的监控命令二、sysdig(轻量级的系统监控程序)三、weave scope四、portainer可视化 一、自带的监控命令 1.运行一个nginx服务 [root@master ~]# docker run -itd --name web -p 80:80 nginx 7a07a65976169f57ab370f42a38852a45c4a895266b85ab9a08ab65fca693c99 [root@master ~]# docker ps CONTAINER ID

weixin_47019016的博客 472

docker——入门介绍、组件介绍、安装与启动、镜像相关命令、容器相关命令、应用部署

​ 在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。这些资源的新虚拟部份是不受现有资源的架设方式,地域或物理组态所限制。一般所指的虚拟化资源包括计算能力和资料存储。...

kdq18486588014的博客 394

Docker的介绍以及Docker软件相关的命令

Docker的介绍 Docker如何解决大型项目依赖关系复杂,不同组件依赖的兼容性问题? Docker允许开发中将应用、依赖、函数库、配置一起打包,形成可移植镜像 Docker应用运行在容器中,使用沙箱机制,相互隔离 Docker如何解决开发、测试、生产环境有差异的问题? Docker镜像中包含完整运行环境,包括系统函数库,仅依赖系统的Linux内核,因此可以在任意Linux操作系统上运行 Docker是一个快速交付应用、运行应用的技术,具备下列优势: 可以将程序及其依赖、运行环境一起打包为一个

wangxiansheng322的博客 134

【Docker相关】docker简介及其常用命令介绍

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。本文主要着眼docker简介及其常用命令介绍。

WeLearnNLP 6805

docker-compose工具相关介绍

docker-compose一、docker-compose简介二、安装docker-compose三、示例介绍四、docker-compose管理命令介绍五、使用示例 一、docker-compose简介 1.简介 docker-compose官方文档 docker容器的编排工具:解决相互有依赖关系的多个容器的管理工具。 单台dockerhost上就可以同时管理(增、删、改、查等)多个容器。 docker镜像在创建后,往往需要自己手动pull来获取镜像,然后执行run命令来运行。当服务需要用到多种容器,容

weixin_47019016的博客 560

【前端知识】Docker 相关介绍

Docker 相关介绍

Outman's blog 193

Docker介绍及相关操作命令

一、Docker是什么 Docker是一个应用打包、分发、部署的工具,你也可以把它理解为一个轻量的虚拟机,它只虚拟你软件需要的运行环境,多余的一点都不要。 Docker(容器)跟普通虚拟机的对比 打包:就是把你软件运行所需的依赖、第三方库、软件打包到一起,变成一个安装包 分发:你可以把你打包好的“安装包”上传到一个镜像仓库,其他人可以非常方便的获取和安装 部署:拿着“安装包”就可以一个命令运行起来你的应用,自动模拟出一模一样的运行环境,不管是在Windows/Mac/Linux Docker的基

qq_44289607的博客 719

Docker系列2 Docker相关命令介绍

Docker命令 Doker服务相关命令 systemctl理解 Linux 服务管理两种方式service和systemctl systemd是Linux系统最新的初始化系统(init),作用是提高系统的启动速度,尽可能启动较少的进程,尽可能更多进程并发启动。 systemd对应的进程管理命令是systemctl 1.启动docker服务 systemctl start docker 2.停止docker服务 systemctl start docker 3.重启docker服务 systemctl

pjh88的博客 148

Docker的相关知识介绍以及mac环境的安装

依赖关系复杂,容易出现兼容性问题开发、测试、生产环境有差异Docker就是来解决这些问题的。Docker是一个快速交付应用、运行应用的技术:可以将程序及其依赖、运行环境一起打包为一个镜像,可以迁移到任意Linux操作系统。运行时利用沙箱机制形成隔离容器,各个应用互不干扰启动、移除都可以通过一行命令完成,方便快捷。Docker如何解决依赖的兼容问题的?将应用的Libs(函数库)、Deps(依赖)、配置与应用一起打包将每个应用放到一个隔离容器去运行,避免互相干扰。

Blocking The Sky 3275
上一篇: 数据库中的系统变量
下一篇: Docker的数据卷
System_out_jojo
博客等级 码龄7年 87粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值