一文带你了解docker技术

news2025/2/25 14:28:59

什么是Docker

Docker是一种虚拟技术,诞生于2013年,是dotCloud公司研发的开源项目,因为docker这个公司后来改名docker inc,docker的目标是实现轻量级的操作系统虚拟化解决方案。通俗点说,我们想在一台机器上运行多个系统,就产生了虚拟机,当我们想在一个系统运行很多虚拟环境的时候,虚拟机就不行了,这时候就出现了docker,docker基于linux容器技术,再进行了很多封装,用户不用关心容器的管理,可以使操作更加简单。用户使用docker容器就像使用一个快速轻量级的虚拟机一样,非常的简单方便。

Docker跟虚拟机有很多不同之处,容器是在操作系统层面实现虚拟化,直接复用本机

操作系统,而传统虚拟机是在硬件层面实现 见下图:

在这里插入图片描述

为什么使用Docker

作为一种虚拟化技术,docker与传统虚拟机相比,具有众多的优势:

更快速的交付和部署

在项目整个过程中,docker都可以发挥自己的优势,开发在开发代码的时候,可以构架一个开发容器,开发完成后,运维人员可以直接使用开发的容器来部署项目,docker可以快速的创建复制容器,docker容器很轻很快,后期测试的时候也可以轻松使用容器来部署测试环境。可以快速的提高整个链条的效率。

高效扩容

因为docker可以在任意的平台上运行,包括物理机,虚拟机,各种云环境,服务器等,所以如果想把一个项目迁移到另外一个平台,非常的简单方便,docker的兼容和轻量特性,可以让你轻松实现服务器的扩容迁移等操作。

更高的资源利用率

因为docker的轻量级特征,一台主机上可以运行上千个docker容器,容器只有在运行项目时,才消耗系统资源,应用的性能很高,而系统的开销却很小,可以保证很高的资源利用率。

Docker的结构

Docker引擎

Docker引擎主要组件如下:

图片

Server是一个常驻进程,用来管理整个docker的交互。

实现客户端和服务端的通信。

镜像image

镜像就是一个环境的只读的模板,一个镜像里面包含了虚拟的操作系统环境,可以安装各种你需要的项目软件,比如tomcat,mysql等等。有了镜像,就可以根据这个镜像来创建docker容器,无论你在什么地方,使用这个镜像都可以复制出同样的容器环境。

仓库:

仓库就是集中放置镜像的场所,主要分为公有仓库和私有仓库,最大的公有仓库就是docker hub,存放了大量成熟的镜像供用户下载使用。国内的有时速云,网易云等,当然你也可以在本地网络创建自己的私有仓库。

容器:

Docker使用容器来运行应用,容器就是镜像运行的运行实例,我们可以通过成熟的镜像来创建一个容器,而后将自己的应用运行到上面。如果在公司内部,你可以安装自己的所需环境的软件,然后整个生成成一个docker镜像,这时候就可以将镜像共享给别人,大家就可以执行镜像,运行出容器,就有了你之前的那个环境,使用起来非常方便。

Docker的基本使用

Docker的常用命令(以mysql为例)

1:获取镜像

可以使用docker pull的命令,比如 docker pull mysql:8.0

2:列出所有镜像

docker images

可以看到你的docker中的下载的镜像

$ docker imagesREPOSITORY               TAG                 IMAGE ID            CREATED             SIZEmysql:8.0          mysql:8.0    6a77ab6655b9        8 weeks ago       194.6 MB

3:执行镜像

docker run --name mysql8.0 -p 3307:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:8.0

4:查看运行的镜像

docker ps -a

5:进入镜像

进入镜像 运行mysql

命令:docker exec -it mysql8.0 /bin/bash

备注:exec docker进入容器命令 -it 容器中服务别名 /bin/bash 表示命令行模式 与 -d 后台守护进行模式启动 形成两种运行方式

命令:cd /usr/bin

命令:mysql -u root -p

备注:在容器中进入用户目录启动mysql 输入密码连接成功

安装成功

其他就正常操作mysql了。

6:创建镜像

你可以利用 Dockerfile 来创建镜像

docker build

使用 docker commit 来扩展一个镜像比较简单,但是不方便在一个团队中分享。我们可以使用docker build 来创建一个新的镜像。为此,首先需要创建一个 Dockerfile,包含一些如何创建镜像的指令,此内容可以参考网络

编写完成 Dockerfile 后可以使用 docker build 来生成镜像

本文主要是介绍一下docker技术

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

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

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

相关文章

opencv(3):控制鼠标,创建 tackbar控件

文章目录 控制鼠标相关APIsetMouseCallbackcallback TrackBar 控件cv2.createTrackbarcv2.getTrackbarPos: 控制鼠标相关API setMouseCallback(winname, callback, userdata)callback(event, x, y, flags, userdata) setMouseCallback 在 OpenCV 中,s…

搞定这套Python爬虫面试题,大厂Offer拿到手软

文章目录 1、简述Python 的特点和优点2、Python 有哪些数据类型?3、列表和元组的区别4、Python 是如何运行的5、Python 运行速度慢的原因6、面对 Python 慢的问题,有什么解决办法7、描述一下全局解释器锁 GIL8、深拷贝 浅拷贝9、is 和 的区别10、文件读…

ZYNQ_project:uart(odd,even)

概念: UART(Universal Asynchronous Receiver-Transmitter):即通用异步收发器,是一种通用串行数据总线,用于异步通信。一般UART接口常指串口。 UART在发送数据时将并行数据转换成串行数据来传输&#xff…

【数据结构(二)】稀疏 sparsearray 数组(1)

文章目录 1. 稀疏数组的应用场景1.1. 一个实际的需求1.2. 基本介绍 2. 稀疏数组转换的思路分析3. 稀疏数组的代码实现3.1. 二维数组转稀疏数组3.2. 稀疏数组转二维数组 4. 课后练习 1. 稀疏数组的应用场景 1.1. 一个实际的需求 问题:     编写的五子棋程序中&…

JavaEE初阶 01 计算机是如何工作的

前言 今天开始进行对JavaEE的一些基本总结,希望大家能在阅读中有所收获,如有错误还望多多指正. 1.冯诺依曼体系结构 这个体系结构相信学计算机的同学都不陌生,但是你真的知道这个体系结构说的是什么嘛?请听我娓娓道来.首先我先给出一张冯诺依曼体系结构的简图 你可以理解为当前…

资深品酒师荆芳老师倾情力作,带你品酒选酒,读懂葡萄酒的世界

在美酒琳琅满目的今天,如何才能挑选到适合自己的葡萄酒?如何品鉴葡萄酒的独特魅力?资深品酒师荆芳老师的最新力作《葡萄酒爱好者》正式上线,带你走进葡萄酒的世界,领略品酒选酒的奥秘。作为一位资深的品酒师和教育工作…

leetcode - 串联所有单词的子串 - 最小覆盖子串 - x 的平方根

I30. 串联所有单词的子串 - 力扣(LeetCode) 给定一个字符串 s 和一个字符串数组 words。 words 中所有字符串 长度相同。 s 中的 串联子串 是指一个包含 words 中所有字符串以任意顺序排列连接起来的子串。 例如,如果 words ["ab&qu…

卡方检验-python代码

故事背景 问题 卡方检验的结果怎么计算? 方法 python代码 import numpy as np from scipy.stats import chi2_contingency# 观察频数矩阵 observed np.array([[47, 21, 17],[63, 29, 15],[11, 2, 4]])# 进行卡方检验 chi2, p, dof, expected chi2_contingency(o…

电子器件系列44:环形线圈电感

干货!电感最重要、最常见的几个作用_线圈 环形线圈电感的原理: 电感中包含了哪三个物理学定律,为什么它能以磁场形式储能_哔哩哔哩_bilibili 电感的基本原理_哔哩哔哩_bilibili 环形线圈电感的作用: 1.储能器: 环形线圈电感能够…

Neo4j安装(Docker中安装Neo4j)

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

【漏洞复现】用友U8-Cloud 存在任意文件上传漏洞

漏洞描述 U8 cloud 聚焦成长型、创新型企业的云 ERP,基于全新的企业互联网应用设计理念,为企业提供集人财物客、产供销于一体的云 ERP 整体解决方案,全面支持多组织业务协同、智能财务,人力服务、构建产业链智造平台,融合用友云服务实现企业互联网资源连接、共享、协同。…

Windows 安装 汉化版 burp suite

注:个人笔记,仅供参考。 burpsuite 软件下载链接: https://www.alipan.com/s/cWxMF5S9sq4 提取码: 31ut 注:安装路径不要有中文 安装 配置 Java 环境 因为burpsuite是在JAVA环境下运行的,所以首先应该配置好JAVA环…

浙大恩特客户资源管理系统 SQL注入漏洞复现

0x01 产品简介 浙大恩特客户资源管理系统是一款针对企业客户资源管理的软件产品。该系统旨在帮助企业高效地管理和利用客户资源,提升销售和市场营销的效果。 0x02 漏洞概述 浙大恩特客户资源管理系统中T0140_editAction.entweb接口处存在SQL注入漏洞,未…

解决Error:java: System Java Compiler was not found in classpath

解决Error:java: System Java Compiler was not found in classpath 一、配置maven 注意:我的C盘比较大直接配置在了C盘,建议配置到其他盘,记得做maven环境变量配置 二、卸载本地JDK,换个版本安装配置环境变量 重启电脑或idea,…

React经典初级错误

文章 前言错误场景问题分析解决方案后言 前言 ✨✨ 他们是天生勇敢的开发者,我们创造bug,传播bug,毫不留情地消灭bug,在这个过程中我们创造了很多bug以供娱乐。 前端bug这里是博主总结的一些前端的bug以及解决方案,感兴…

Linux环境下C++ 接入OpenSSL

接上一篇:Windows环境下C 安装OpenSSL库 源码编译及使用(VS2019)_vs2019安装openssl_肥宝Fable的博客-CSDN博客 解决完本地windows环境,想赶紧在外网环境看看是否也正常。毕竟现在只是HelloWorld级别的,等东西多了&am…

如何在latex中高亮文本

导入soul 包可以使用高亮功能 在文本中插入 \hl{} 即可 导入color 包可以使用颜色功能 color 也可以替换成 xcolor \documentclass{report} \usepackage{xcolor,soul} \begin{document}\textcolor{red}{Text}\hl{Text} \hl{\textbf{Text}} \textbf{\textcolor{red}{\hl{Text}…

PyTorch深度学习原理与实现

PyTorch深度学习原理与实现 1. 引言 深度学习发展历程 感知机网络(解决线性可分问题,20世纪40年代) BP神经网络(解决线性不可分问题,20世纪80年代) 深度神经网络(海量图片分类,2…

Nginx 可视化管理平台:nginx-proxy-manager

本心、输入输出、结果 文章目录 Nginx 可视化管理平台:nginx-proxy-manager前言nginx-proxy-managernginx-proxy-manager 特性快速开始使用 Docker 网络开启 Docker 健康检查相关可视化页面相关链接弘扬爱国精神Nginx 可视化管理平台:nginx-proxy-manager 编辑:简简单单 Onl…

虚拟化热添加技术在数据备份上的应用

虚拟化中的热添加技术主要是指:无需停止或中断虚拟机的情况下,在线添加物理资源(如硬盘、内存、CPU、网卡等)的技术。热添加技术也是相比物理机一个非常巨大的优势,其使得资源分配变得更加灵活。 虚拟化中的热添加技术…