Docker是什么以及docker的常用命令

Docker简介

Docker是一种开源的容器化平台,用于构建、部署和运行应用程序。它允许开发人员将应用程序及其所有依赖项打包到一个称为"容器"的独立单元中。这个容器可以在任何支持Docker的环境中运行,无论是开发人员的本地机器、虚拟机还是云服务器。

docker核心概念

  1. 容器:容器是Docker的核心概念,它是一个轻量级、可移植的运行环境,包含了应用程序的代码、运行时环境和所有依赖项。容器与操作系统的隔离机制相结合,使得应用程序可以在不同的环境中以相同的方式运行。
  2. 镜像镜像是用于创建容器的模板。它包含了一个完整的文件系统,其中包含了运行应用程序所需的所有内容:代码、运行时环境、库、依赖项等等。镜像是只读的,通过镜像可以创建多个容器实例。
  3. Docker引擎Docker引擎是Docker的核心组件,负责构建、运行和管理容器。它包括了Docker守护进程、客户端工具和REST API。Docker守护进程在主机上运行,并管理容器的生命周期。
  4. Docker仓库:Docker仓库是存储和分享镜像的中央注册表。它包括了官方仓库Docker Hub,以及其他公共和私有的仓库。开发人员可以将自己的镜像推送到仓库中,并从仓库中拉取镜像到本地使用。

Docker的好处

  • 环境一致性:容器提供了一种可重复、可移植的部署方式,确保应用程序在不同环境中的一致性,避免了“在我机器上运行没问题”的问题。
  • 资源隔离:容器与宿主机之间具有良好的隔离性,一个容器的问题不会影响其他容器或宿主机的稳定性。
  • 快速部署和扩展:由于容器的轻量级特性,可以快速启动、停止和重启容器,同时可以方便地进行横向扩展,增加容器实例来应对高负载需求。
  • 灵活性:Docker允许开发人员使用不同的编程语言、框架和工具来构建应用程序,并且可以轻松切换和组合各种组件。

Docker 常用命令

镜像命令

  1. docker pull:从Docker仓库中拉取镜像到本地。 示例:拉取一个名为"ubuntu"的Ubuntu Linux镜像到本地

    Copy code
    docker pull ubuntu
    
  2. docker images:列出本地已下载的所有镜像。 示例:列出本地所有镜像

    Copy code
    docker images
    
  3. docker rmi:删除本地一个或多个镜像。 示例:删除名为"ubuntu"的Ubuntu Linux镜像

    Copy code
    docker rmi ubuntu
    

容器命令

  1. docker run:创建并启动一个新的容器。 示例:在后台运行一个名为"my_container"的Nginx容器,将主机的80端口映射到容器的80端口

    cssCopy code
    docker run -d --name my_container -p 80:80 nginx
    
  2. docker ps:列出当前正在运行的容器。 示例:列出所有正在运行的容器

    Copy code
    docker ps
    
  3. docker ps -a:列出所有容器,包括正在运行和已停止的。 示例:列出所有容器(包括已停止的)

    cssCopy code
    docker ps -a
    
  4. docker start:启动一个已停止的容器。 示例:启动名为"my_container"的容器

    sqlCopy code
    docker start my_container
    
  5. docker stop:停止一个正在运行的容器。 示例:停止名为"my_container"的容器

    arduinoCopy code
    docker stop my_container
    
  6. docker restart:重启一个正在运行的容器。 示例:重启名为"my_container"的容器

    Copy code
    docker restart my_container
    
  7. docker rm:删除一个或多个容器。 示例:删除名为"my_container"的容器

    bashCopy code
    docker rm my_container
    

其他常用命令

  1. docker exec:在运行中的容器内执行命令。 示例:在名为"my_container"的容器内执行一个bash命令

    bashCopy code
    docker exec -it my_container bash
    
  2. docker logs:查看容器的日志输出。 示例:查看名为"my_container"的容器的日志输出

    Copy code
    docker logs my_container
    
  3. docker inspect:查看容器或镜像的详细信息。 示例:查看名为"my_container"的容器的详细信息

    Copy code
    docker inspect my_container
    

这些是一些常用的Docker命令,用于管理镜像、容器和其他相关资源。通过这些命令,可以轻松地创建

Docker容器虚拟化和传统虚拟机的比较

容器就是将软件打包成标准单元,以便于开发交付和部署

  • 容器镜像是轻量级的,可执行的独立软件包,包含软件运行所需要的所有内容:代码,运行时环境,系统工具,系统库和设置等
  • 容器化软件在任何环境中都能始终如一的运行
  • 容器赋予了软件独立性,使其免受外在的环境差异的影响,从而有助与减少团队间在相同基础设施上运行不同软件时的冲突

在这里插入图片描述

相同点:

  • 容器和虚拟机都具有相似的资源隔离和分配优势

不同点:

  • 容器虚拟化是操作系统,虚拟机虚拟化的是硬件
  • 传统虚拟机可以运行不同的操作系统,容器只能运行同一类型操作系统

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

配置Jenkins的slave agent并使用它完成构建任务

上一章,使用单机配置并运行了一个简单的maven项目,并发布到了一个服务器上启动。这一章将要配置一个slave agent,并将上一章的job放到agent上执行。我们agent使用的是ssh的方式 前置步骤 准备两台虚拟机: 192.168.233.32&#…

欧科云链2023年报:毛利达1.55亿港元,数字资产业务成最大增长点

据香港商报报道,2023年6月28日,欧科云链控股有限公司(以下简称“欧科云链”)及其附属公司(股份代号:1499.HK,以下简称“集团”)发布了截至2023年3月31日的年度报告。报告期内&#x…

Redis【实战篇】---- Redis消息队列

Redis【实战篇】---- Redis消息队列 1. Redis消息队列 - 认识消息队列2. Redis消息队列 - 基于List实现消息队列3. Redis消息队列 - 基于PubSub的消息队列4. Redis消息队列 - 基于Stream的消息队列5. Redis消息队列 - 基于Stream的消息队列-消费组6. 基于Redis的Stream结构作为…

MAC OS X 这个“安装 macOS Xxx Xxx”应用程序副本已损坏,不能用来安装 macOS,超级终端修改日期date 已解决

原因:旧版 macOS 证书已经过期 解决方法:断开互联网,修改系统时间 date 102013142018.20 说明:10是月,20是日,13是时,14是分,2018是年,20是秒 输入上面的代码按回车后…

SpringBoot操作Excel实现导入和导出功能(详细讲解+Gitee源码)

前言:在日常的开发中,避免不了操作Excel,比如从系统当中导出一个报表,或者通过解析客户上传的Excel文件进行批量解析数据入库等等,本篇博客主要汇总日常开发中如何使用开源的Apache提供的POI流操作Excel进行导入导出功…

【035】C++泛型编程(模板)实践:设计数组类模板模仿vector容器

C泛型编程(模板)实践 引言一、类模板的概述二、实现数组类模板三、类模板的继承3.1、类模板派生出普通类3.2、类模板派生出类模板 总结 引言 💡 作者简介:专注于C/C高性能程序设计和开发,理论与代码实践结合&#xff0…

常州工学院单片机及应用系统设计2021-2022 学年第 二 学期 考试类型 开卷 课程编码 0302005

第一题 #include "SC95F861x_C.H" #include <INTRINS.H> unsigned char keydata0; void delay(unsigned int timer) //延时函数 { while(timer>0) timer--; } void IOinit() { P5CON0x00; P5PH0x03; P3CON0xFF; P3PH0xFF; } void readke…

回归预测 | MATLAB实现PSO-DNN粒子群算法优化深度神经网络的数据多输入单输出回归预测

回归预测 | MATLAB实现PSO-DNN粒子群算法优化深度神经网络的数据多输入单输出回归预测 目录 回归预测 | MATLAB实现PSO-DNN粒子群算法优化深度神经网络的数据多输入单输出回归预测效果一览基本介绍模型描述程序设计参考资料 效果一览 基本介绍 回归预测 | MATLAB实现PSO-DNN粒子…

【Java基础教程】(二)入门介绍篇 · 下:从JDK下载安装到第一个“Hello World!”程序,解析PATH和CLASSPATH环境变量的妙用~

Java基础教程之入门介绍 下 本节学习目标1️⃣ JDK安装与配置2️⃣ 第一个Java程序&#xff1a;“Hello World!”3️⃣ 环境变量 CLASSPATH&#x1f33e; 总结 本节学习目标 JDK 安装与配置&#xff1b;理解环境变量PATH和CLASSPATH的主要作用&#xff1b;运行第一个Java程序…

TypeScript 自定义装饰器

&#xff08;预测未来最好的方法就是把它创造出来——尼葛洛庞帝&#xff09; 装饰器 装饰器一种更现代的代码模式&#xff0c;通过使用的形式注入在属性&#xff0c;寄存器&#xff0c;方法&#xff0c;方法参数和类中&#xff0c;比如在Angular&#xff0c;Nestjs和midway等…

E类变换器仿真

1 参数计算&#xff08;待续&#xff09; &#xff08;1&#xff09;确定振荡频率&#xff1a; &#xff08;2&#xff09;计算各器件参数&#xff1b; 2 电路仿真 &#xff08;1&#xff09;电路图 &#xff08;2&#xff09;电路分析 3 结果 &#xff08;1&#xff09;…

微信小程序+SpringBoot接入后台服务,接口数据来自后端

前言 前两天开发了一个微信小程序项目&#xff0c;只不过接口数据是自己设置的假数据。然后我就想将这些假数据替换掉。这些数据来自接口&#xff0c;之前做过前后端分离的项目&#xff0c;我就想能不能直接调用那些后端数据接口。结果是可以的。以下是自己编写的部分方法 步骤…