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

news2024/11/25 12:59:01

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.coloradmin.cn/o/714225.html

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

相关文章

Bert

参考资料: 《机器学习》李宏毅 1 Bert 是怎么运作的? Bert 是一种自监督学习(Self-supervised Learning)模型。Bert 的目标是 pre-train 出一个能够理解语义的多功能语言模型,使之能够在特定任务上只学习较少的带标…

快速上手 vercel,手把手教你白嫖部署上线你的个人项目

壹 ❀ 关于 vercel Vercel 是一个云服务平台,支持静态网站(纯静态页面,比如现在base utils 文档也是基于vercel)和动态网站的应用部署、预览和上线。如果你用过 GitHub Pages ,那么心里可能不会太陌生,但你…

Web3 在Truffle项目中编写出自己的第一个solidity智能合约

好 上文Web3本地搭建truffle智能合约开发环境我们在本地搭起了一个 Truffle 项目 然后 我们说明项目中文件的用途 然后 我们还是通过ganache模拟一个本地的区块链环境 然后打开我们搭建的Truffle项目 首先 我们第一个要看的肯定是truffle-config.js 肯定要先配好连接的环境 我…

UDP 协议【传输层协议】

文章目录 1. 传输层1.1 TCP 与 UDP 2. 端口号2.1 端口号标识进程2.2 通过IP地址、端口号、协议号进行通信识别2.3 协议号2.4 端口号的范围2.5 常用命令netstatiostatpidof 2.6 存疑 3. UDP 协议3.1 地位3.2 报头的分离和交付3.3 UDP 报文的格式3.4 UDP 数据封装和分用数据封装数…

rk3288中apk串口打开失败,selinux权限问题

apk打开串口失败 报错信息: 07-03 17:05:27.030 4582 4582 W jw.ComAssistant: type1400 audit(0.0:56): avc: denied { read } for name"ttyS2" dev"tmpfs" ino7704 scontextu:r:untrusted_app:s0:c512,c768 tcontextu:object_r:ttyS2_dev…

《YOLOv8魔术师》专栏介绍 CSDN独家改进创新实战专栏目录

💡💡💡Yolov8魔术师,独家首发创新(原创),持续更新,适用于Yolov5、Yolov7、Yolov8等各个Yolo系列,专栏文章提供每一步步骤和源码,轻松带你上手魔改网络 &…

xml合并

from xml.etree.ElementTree import ElementTree, Element, parseimport xml.etree.ElementTree as ETimport osimport shutilhole_path ./Annotationsarm_path ./Annotations1out_path ./out# 格式化def __indent(elem, level0):i "\n" level*"\t"if…

UE5.2 LyraDemo源码阅读笔记(三)

进入淘汰模式游戏流程 启动游戏,进入流程: 1、进入Lyra游戏第三个体验入口FrontEnd。 2、来到大厅主界面后,点击: Play Lyra > Start A Game >ELIMINATION就会进入到淘汰模式游戏。 看看蓝图和代码,其中的UI流程…

dubbo-admin下载安装教程

目录 1.下载 2.项目结构 3.后端打包 4.前端打包 4.1.node js环境准备 4.2.依赖安装 4.3.启动、打包 1.下载 下载地址: GitHub - apache/dubbo-admin at develop dubbo-admin项目有多个分支,最新版本的dubbo-admin在使用go语言进行重构&#xf…

解决电脑提示vcruntime140_1.dll无法继续执行代码的问题

vcruntime140_1.dll丢失要怎么办?其实很多人都在头疼这个问题,关于dll文件的丢失这事情是时常发生的,因为电脑的杀毒软件有时候会误杀,然后就会导致你的游戏程序都打开不了,你必须要修复好了才行,今天小编就…

统计文本中的数字出现频次

统计文本中的数字出现频次:磁盘上有多个文本文件,统计数据写入excel。 (本笔记适合初通 Python 的 coder 翻阅) 【学习的细节是欢悦的历程】 Python 官网:https://www.python.org/ Free:大咖免费“圣经”教程《 python 完全自学教…

AttributeError: module ‘PIL.Image‘ has no attribute ‘ANTIALIAS‘

在使用ddddocr进行图片识别时,报错了: AttributeError: module PIL.Image has no attribute ANTIALIAS 我使用的是Python 3.11,查看一下pillow的版本: print(PIL.__version__)10.0.0 到处百度也没找到原因,最后&am…

IDEA解析Maven依赖过慢

查看Maven配置文件&#xff0c;是否更改为阿里源 maven安装目录/conf/setting.xml 搜索mirrors并在其中添加 <mirror><id>alimaven</id><name>aliyun maven</name><url>http://maven.aliyun.com/nexus/content/groups/public/ </url&…

【嘉立创EDA】层次原理图功能使用,或放置复用图块方法

文章路标👉 文章解决问题主题内容小结文章解决问题 1️⃣ 在一些较为复杂的原理图绘制时,常需要使用到复用图块。何为复用图块,笔者摘取ST MB1136设计原理图纸可以较好表述这个功能,如下图所示: [本图摘取自NUCLEO-F103RB设计图纸 sheet 2 of 5] 图中左上角绿色图块为…

探索iPadOS 17的亮点特性:值得关注的新功能揭秘

探索iPadOS 17的亮点特性&#xff1a;值得关注的新功能揭秘 看完在WWDC23上作为久违的“OneMoreThing”亮相的令人兴奋的AppleVisionPro后&#xff0c;是时候看看同样作为重要角色出现在发布会上的iPadOS了。与iOS一样&#xff0c;iPadOS也来到了17时代。除了一年后同步iOS16的…

WinApp自动化测试之WinAppDriver工具简介

前篇文章中&#xff0c;我们讲到了WinApp自动化测试工具的选择&#xff0c;今天我们来简单介绍WinAppDriver工具。 Windows Application Driver (WinAppDriver)是Windows系统上的一个应用程序驱动工具&#xff0c;使用该驱动程序&#xff0c;测试人员能够通过Appium-Python-Cl…

el_table切换行前校验,决定是否可切换

思路&#xff1a;拿到当前点击行并存储比如叫做oldRow&#xff0c;把即将切换行的row与oldRow做对比&#xff0c;校验是否可切换&#xff0c;若校验不可切换&#xff0c;则通过遍历仍选中仍选中oldRow.

python简单实现人脸检测/跟随

import cv2# 加载人脸识别器的模型 face_cascade cv2.CascadeClassifier(cv2.data.haarcascades haarcascade_frontalface_default.xml)# 打开摄像头 cap cv2.VideoCapture(0)# 初始化人脸框位置 prev_faces []# 定义绘制带圆角矩形边框的函数 def draw_rounded_rectangle(…

C语言学习(三十一)---结构体、联合体的在内存中的存储

在上一篇文章中&#xff0c;我们学习了枚举、位段和联合体的相关内容&#xff0c;在文章的末尾&#xff0c;我们还差了关于联合体的存储问题的内容&#xff0c;今天我们将学习该部分的内容&#xff0c;好了&#xff0c;话不多说&#xff0c;开整&#xff01;&#xff01;&#…

TiDB(2):TiDB架构特性

1 TiDB 整体架构 TiDB 集群主要包括三个核心组件&#xff1a;TiDB Server&#xff0c;PD Server 和 TiKV Server。此外&#xff0c;还有用于解决用户复杂 OLAP 需求的 TiSpark 组件和简化云上部署管理的 TiDB Operator 组件。 架构图解 1.1 TiDB Server TiDB Server 负责接收…