docker的简介--安装--操作命令

1.docker的简介

1.1docker是什么

用一句话来说docker就是一个新一代虚拟化技术

 Docker是一种开源的平台,用于开发、交付和运行应用程序。它允许开发人员将应用程序和它们的依赖打包在一个容器中,然后部署到任何支持Docker的环境中。Docker的主要特点包括高效的资源利用、快速部署和可移植性。通过使用Docker,开发人员可以更轻松地构建、测试和部署应用程序,同时提高应用程序的可移植性和可靠性。

 1.2docker有什么用

  1. 应用程序部署:Docker可以让开发人员将应用程序及其所有依赖项打包成一个容器,然后通过Docker镜像进行部署。这样可以确保应用程序在不同环境中的一致性,并且更容易进行版本控制和升级。

  2. 环境隔离:Docker使用容器来隔离不同的应用程序和服务,每个容器都有自己的文件系统、进程和网络。这种隔离性可以确保应用程序之间互不干扰,同时提供更高的安全性。

  3. 快速开发和测试:Docker可以快速创建、启动和停止容器,使开发人员可以更快地进行应用程序的开发和测试。开发人员可以使用容器来模拟整个应用程序的运行环境,以便更容易地调试和修复问题。

  4. 资源利用和扩展性:Docker可以有效地利用系统资源,因为容器共享操作系统内核,并且可以在单个主机上运行多个容器。此外,Docker还支持快速横向扩展,可以轻松地创建和部署多个相同的容器来处理负载均衡。

  5. 协作与共享:通过Docker镜像,开发人员可以将整个应用程序及其所有依赖项打包成一个可共享的组件。这使得开发人员可以更轻松地与团队合作、共享代码和环境,并且可以将应用程序轻松地部署到不同的环境中。

1.3docker的优缺点

优点:

  1. 资源利用率高:Docker使用操作系统级虚拟化,可以在物理机上并行运行多个容器,并且容器可以共享宿主机的操作系统内核。这种共享机制使得容器的启动和运行速度更快,同时占用更少的系统资源。

  2. 可移植性好:Docker容器可以在任何支持Docker的环境中运行,包括物理服务器、虚拟机和云平台。这意味着开发人员可以在开发和测试环境中构建容器,然后将其部署到生产环境中,无需担心环境差异导致的错误。

  3. 简化部署和维护:Docker将应用程序及其所有依赖项打包在一个容器中,这样可以大大简化部署和维护的过程。开发人员只需将容器从一个环境复制到另一个环境,就可以轻松地部署应用程序,而无需关心配置和依赖项的冲突。

  4. 环境隔离和安全性强:Docker提供了容器级别的环境隔离,每个容器都有自己的文件系统、进程和网络。这种隔离性可以确保应用程序之间互不干扰,并提供更高的安全性,即使一个容器受到攻击,其他容器和系统也不会受到影响。

缺点:

  1. 相对较高的学习曲线:使用Docker需要一定的学习和了解Docker的概念、命令和工作原理。对于相对新手的开发人员来说,可能需要一段时间来适应和掌握Docker的使用。

  2. 容器化需要额外的开销:将应用程序容器化通常需要进行一些额外的工作,如编写Dockerfile、构建和更新容器镜像等。这些额外的开销可能会增加开发和部署的复杂性。

  3. 容器化不适用于所有应用程序:虽然Docker可以容器化大多数应用程序,但并不是所有应用程序都适合容器化。一些应用程序可能依赖于特定的硬件、操作系统或网络设置,无法轻松容器化。

 2.docker的安装

首先打vm虚拟机

再打开我们的MobaXterm.exe 进行连接

下载我们的插件

 

 安装我们的工具包

设置yum源

 

 下载安装docker

 启动docker并设置开机自启动

 最后检查是否安装成功

配置镜像

进入我们的阿里云官方:阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台

 这就已经安装好了

3.docker镜像命令

3.1下方图拉取(下载)mysql  

命令:docker pull mysql

 

 3.2删除

 查看当前服务器已下载的:docker images

删除:docker rmi IMAGE ID或名称       

强制删除:docker rmi -f IMAGE ID或名称    

 

 2.3 Docker容器命令 

为了测试,在Linux的Centos7中再安装一个Centos7

命令:docker pull centos:7

 

这时候下载的centos7为一个容器

我们可以去启动它

创建一个容器并进入该容器: docker run -it --name mycentos02 IMAGE ID

解释:

1.docker run: 这是Docker命令的基础,用于从镜像启动新容器。

-it: 这是两个标志的组合。

2.-i 或 --interactive: 保持容器的标准输入(STDIN)开启,即使不连接到容器。
3.-t 或 --tty: 为容器分配一个伪终端(pseudo-TTY),通常用于交互式会话
4.--name mycentos02: 这个标志用于给新创建的容器指定一个名称。在这个例子中,容器的名称是mycentos02。如果不指定这个标志,Docker会自动为容器生成一个名称。

5.IMAGE ID: 这是你想要从中创建容器的Docker镜像的标识符。通常,你会使用docker images命令来查看可用的镜像及其ID,然后选择你想要使用的镜像的ID

综合起来,docker run -it --name mycentos02 IMAGE ID 命令会创建一个名为mycentos02的新容器,该容器基于指定的镜像ID,并且具有交互性和伪终端。一旦容器启动,你就可以通过控制台与容器中的进程进行交互(切换版本),如下

  docker rmi 删除镜像 

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

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

相关文章

【React架构 - Scheduler中的MessageChannel】

前序 我们都知道JS代码是在浏览器5个进程(下面有介绍)中渲染进程中的Js引擎线程执行的,其他还有GUI渲染线程、定时器线程等,而页面的布局和绘制是在GUI线程中完成的,这些线程之间是互斥的,所以在执行Js的同时会阻塞页面的渲染绘制…

android应用开发基础知识,安卓面试2020

第一章:设计思想与代码质量优化 1、设计思想六大原则 2、三大设计模式 3、数据结构 4、算法 第二章:程序性能优化 1、启动速度和执行效率优化 2、布局检测与优化 3、内存优化 4、耗电优化 5、网络传输与数据存储优化 6、APK大小优化 7、屏幕适配 8、…

用Java语言创建的Spring Boot项目中,如何传递List集合呢?

前言: 在上篇文章中,用Java语言创建的Spring Boot项目中,如何传递数组呢??-CSDN博客,我们了解到Spring Boot项目中如何传递数组,但是,对于同类型的List集合,我们又该如何…

Centos7:自动化配置vim | suoders信任列表添加普通用户

Centos7:自动化配置vim | suoders信任列表添加普通用户 vim 配置原理sudoers系统可信任列表中添加普通用户自动化配置vim vim 配置原理 在目录/etc下有一个vimrc文件,该文件是系统中公共的vim配置文件,对所有用户都成立。  而在每个普通用户…

【Kafka系列 06】Kafka Producer源码解析

温馨提示:本文基于 Kafka 2.3.1 版本。 一、Kafka Producer 原理图 生产者的 API 使用还是比较简单,创建一个 ProducerRecord 对象(这个对象包含目标主题和要发送的内容,当然还可以指定键以及分区),然后调…

poi 设置允许西文在单词中间换行

说明本文是CSDN-问答模块,题主提问。问题描述:poi 设置允许西文在单词中间换行 一、问题描述 poi 设置允许西文在单词中间换行? // 创建一个新的文档XWPFDocument document = new XWPFDocument();// 创建段落XWPFParagraph firstParagraph = document.createParagraph();fir…

2022《OpenScene: 3D Scene Understanding with Open Vocabularies》阅读笔记2

A. Implementation Details 3D Distillation. 我们基于PyTorch实现。为了提取,我们使用Adam[26]作为优化器,初始学习率为1e−4,并训练100个epochs。对于MinkowskiNet,我们对ScanNet和Matterport3D实验使用2cm的体素大小,对nuScenes使用5cm的体素尺寸。对于室内数据集,我…

RTSPServer推流服务

RTSPServer推流服务 1.开发原因 由于项目需要使用,虽然有现成的RTSPServer推流服务,由于是闭源代码,无法查看了解内部的逻辑处理流程,所以急需要一套较为稳定并可以使用的推流服务,并且从网上看大部分的RTSPServer推流…

IntelliJ IDEA 常用快捷键和下载链接

下载链接(windows) 下载 IntelliJ IDEA – 领先的 Java 和 Kotlin IDE 编码时: 跳转到引用方法的地方 (有多个引用时会出现下拉列表) ctrl鼠标左键 跳转后回到原来的地方 …

LeetCode 2120.执行所有后缀指令

现有一个 n x n 大小的网格,左上角单元格坐标 (0, 0) ,右下角单元格坐标 (n - 1, n - 1) 。给你整数 n 和一个整数数组 startPos ,其中 startPos [startrow, startcol] 表示机器人最开始在坐标为 (startrow, startcol) 的单元格上。 另给你…

后端程序员入门react笔记(六)- 讲透Promise与Fetch

js声明变量的三种方式 我们通常使用 var let 和const来声明js的变量,但是这三者有什么区别呢? var的变量可以是全局的或者函数作用域,而let和const只能是块级作用域var和let可以重新赋值,而const是不允许重新赋值的,…

【王道数据结构】【chapter7查找】【P285t5】

线性表中各节点的检索概率不等时,可用如下策略提高顺序检索的效率;若找到指定的结点,则将该结点和其前驱结点(若存在)交换,使得经常被访问的结点尽量位于表的前端。试设计在顺序结构和链式结构的线性表盘上…

python中集合(Set)和列表(List)性能比较

文章目录 引言1. Set和List2. 性能对比3. 总结 引言 在当今的软件开发过程中,Python 已经成为了一种极为流行的编程语言,得益于其简洁的语法和强大的库支持。在 Python 中,列表(List)和集合(Set&#xff0…

敏捷开发中如何写好用户故事?

什么是用户故事? 用户故事(user story)是一个用来确认用户和用户需求的简短描述,作为什么用户,希望如何,这样做的目的或者价值何在。用户故事在软件研发中又被描述为需求。用户故事通常的格式为&#xff1…

STL容器之list

​ 1.封装除了对数据的保护、更好地管理数据之外,还有实现了对上层的统一; ​ 2.类模板参数的不同,一方面是为了实例化出来不同的类,另一方面是为了实现类的成员函数的不同; 一、认识list ​ 1.list是一种带头双向循…

java高并发场景面试题,干货来袭

为什么阿里巴巴的持久层抛弃hibernate,采用MyBatis框架? 原因大概有以下4点: 尤其是需要处理大量数据或者大并发情况的网站服务,这也阿里选择MyBatis的原因。 MyBatis整体架构 不多讲,先看目录图 MyBatis源码笔记文档…

捕获在野SMBGhost本地提权攻击样本

前言 从Windows10 v1903/Windows Server v1903开始,微软在协议SMB3.1.1中开启了对数据压缩传输的支持,但是由于SMB没有正确处理压缩的数据包,在客户端/服务端解压数据的时候,没有对COMPRESSIN_TRANSFORM_HEADE结构进行安全校验&a…

【mysql 数据库事务】开启事务操作数据库,写入失败后,不回滚,会有问题么? 这里隐藏着大坑,复试,面试时可以镇住面试老师!!!!

建表字段: CREATE TABLE user (id INT(11) NOT NULL AUTO_INCREMENT,nickname VARCHAR(32) NOT NULL COLLATE utf8mb4_general_ci,email VARCHAR(32) NOT NULL COLLATE utf8mb4_general_ci,status SMALLINT(6) UNSIGNED NULL DEFAULT NULL,password VARCHAR(256) NULL DEFAULT…

Netty入门指南:从零开始的异步网络通信

欢迎来到我的博客,代码的世界里,每一行都是一个故事 Netty入门指南:从零开始的异步网络通信 前言Netty简介由来:发展历程:异步、事件驱动的编程模型: 核心组件解析通信协议高性能特性异步编程范式性能优化与…

C++ stack queue详解以及模拟实现

目录 1.stack的使用 1.1stack的定义 1.2stack的使用 1.3stack的构造 2.stack底层模拟实现 3.queue的使用 3.1queue的定义 3.2queue的使用 4.queue底层模拟实现 1.stack的使用 1.1stack的定义 1. stack是一种容器适配器,专门用在具有后进先出操作的上下文环…