【云原生】Docker的基本使用方法与优势

简介: 【云原生】Docker的基本使用方法与优势

🍬Docker的基本使用方法和优势



🥙一、简介


Docker是基于Go语言实现的开源应用容器引擎,通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的应用及其运行环境能够做到  一次封装,到处运行


Docker 使用客户端-服务器 (C/S) 架构模式。Docker 客户端会与 Docker 守护进程进行通信。Docker 守护进程会处理复杂繁重的任务,例如建立、运行、发布你的 Docker 容器。Docker 客户端和守护进程可以运行在同一个系统上,当然你也可以使用 Docker 客户端去连接一个远程的 Docker 守护进程。我们了解Docker内部构建,需要先了解几个概念:


Docker守护进程:Docker 守护进程运行在主机上。用户并不直接和守护进程进行交互,而是通过 Docker 客户端间接和其通信。


Docker客户端:接收用户的指令并与背后的 Docker 守护进程通信。


Images(镜像):是一个只读模板,镜像可以用来创建 Docker 容器,一个镜像可以创建很多容器,每一个镜像由一系列的层 (layers) 组成。


Containers(容器):Docker 利用容器(Container)独立运行的一个或一组应用,容器是用镜像创建的运行实例,镜像与容器的关系类比面向对象中的类和对象。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。


Repository(仓库:仓库是集中存放镜像文件的场所。仓库(Repository)和仓库注册服务器(Registry)是有区别的,仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。仓库分为公开仓库(Public)和私有仓库(Private)两种形式,最大的公开仓库是 Docker Hub


🥪二、优势


容器类似于 VM,但是它们具有被放宽的隔离属性,可以在应用程序之间共享操作系统(OS)。 因此,容器被认为是轻量级的。容器与 VM 类似,具有自己的文件系统、CPU、内存、进程空间等。可以把容器看做是不用安装操作系统的虚拟机,容器化技术比虚拟机更加灵活,更加小巧,更加极致的利用物理机资源。具有优势如下:


  • 部署快,开发测试更加敏捷

通过Docker 打包镜像发布测试,一键运行。

  • 一次封装,到处运行

Docker可以再任意平台运行,设备兼容性很强,这种兼容性可以让用户把一个应用程序从一个平台直接迁移到另外一个平台。

  • 更高的资源利用率

一台主机可以运行多个个Docker容器,他们之间相互独立。容器除了运行其中的应用外,基本不消耗额外的系统资源。

  • 组建微服务架构

一台主机可以运行多个容器,故而可以跑多个服务。Docker的容器设计原则:一个容器一个服务,容器之间相互隔离。


🌮三、基本使用


  • 启动Docker
systemctl start docker
  • 搜索镜像
docker search 镜像名称
  • 下载镜像
docker pull 镜像名称  //默认下载latest
docker pull 镜像名称:5.7 //指定版本下载
  • 查看本地的所有镜像
docker images
docker image ls


  • 删除镜像
docker rmi 镜像名称


  • 运行容器
docker run [可选参数] image


参数:

-p:端口映射(宿主机端口:容器端口,即将主机端口映射到容器端口)

-v:容器目录映射到本地目录(宿主机文件目录:容器文件目录,将宿主机文件挂载到容器目录)

-d:后台启动容器

-it:以交互式模式启动容器

–name:容器名称


比如:


docker run -it  
--name verdaccio 
-p 4873:4873   
-v /root/verdaccio/conf:/root/verdaccio/conf   
-v /root/verdaccio/storage:/root/verdaccio/storage
 verdaccio/verdaccio


  • 查看容器
docker ps //查看正在运行的容器
docker ps -a //查看正在运行的容器和历史运行过的容器


  • 删除容器
docker rm 容器id


  • 启动、停止容器
docker start 容器id //启动容器
docker restart 容器id //重启容器
docker stop 容器id //停止当前正在运行的容器
docker kill 容器id //强制停止当前容器


  • 进入到某容器
docker exec -it 容器id /bin/bash //进入当前容器后开启一个新的终端,可以在里面操作
docker attach 容器id  //进入容器正在执行的终端


  • 停止运行中的容器
docker stop 容器id  //停止某个运行中的容器
docker ps -a -q // 停止全部容器


退出某容器

exit//如果要正常退出不关闭容器,请按Ctrl+P+Q进行退出容器


  • 查看容器日志
docker logs --tail  300 -f  jz-project
  • 容器保存为镜像(当容器启动不起来的时候会使用)
docker commit 容器id 你命名的镜像名称


  • 根据dockerfile创建镜像
docker build -t 你命名的镜像名称  dockerfile所在目录


相关文章:使用Docker搭建Npm私服Verdaccio


目录
相关文章
|
11天前
|
Kubernetes Cloud Native Docker
云原生时代的容器化实践:Docker和Kubernetes入门
【10月更文挑战第37天】在数字化转型的浪潮中,云原生技术成为企业提升敏捷性和效率的关键。本篇文章将引导读者了解如何利用Docker进行容器化打包及部署,以及Kubernetes集群管理的基础操作,帮助初学者快速入门云原生的世界。通过实际案例分析,我们将深入探讨这些技术在现代IT架构中的应用与影响。
49 2
|
9天前
|
运维 Cloud Native 虚拟化
一文吃透云原生 Docker 容器,建议收藏!
本文深入解析云原生Docker容器技术,涵盖容器与Docker的概念、优势、架构设计及应用场景等,建议收藏。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
一文吃透云原生 Docker 容器,建议收藏!
|
1月前
|
Kubernetes Cloud Native 云计算
云原生入门:从Docker到Kubernetes的旅程
【10月更文挑战第2天】本文将带你走进云原生的世界,从基础的Docker容器技术开始,逐步深入到Kubernetes集群管理。我们将通过实际代码示例,探索如何利用这些工具构建、部署和管理现代云应用。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的知识和技能,让你在云原生领域迈出坚实的一步。
85 5
|
27天前
|
Kubernetes Cloud Native 开发者
云原生技术入门:Kubernetes和Docker的协作之旅
【10月更文挑战第22天】在数字化转型的浪潮中,云原生技术成为推动企业创新的重要力量。本文旨在通过浅显易懂的语言,引领读者步入云原生的世界,着重介绍Kubernetes和Docker如何携手打造弹性、可扩展的云环境。我们将从基础概念入手,逐步深入到它们在实际场景中的应用,以及如何简化部署和管理过程。文章不仅为初学者提供入门指南,还为有一定基础的开发者提供实践参考,共同探索云原生技术的无限可能。
41 3
|
1月前
|
Kubernetes Cloud Native 开发者
探秘云原生计算:Kubernetes与Docker的协同进化
在这个快节奏的数字时代,云原生技术以其灵活性和可扩展性成为了开发者们的新宠。本文将带你深入了解Kubernetes和Docker如何共同塑造现代云计算的架构,以及它们如何帮助企业构建更加敏捷和高效的IT基础设施。
|
1月前
|
Cloud Native 持续交付 云计算
云端新纪元:探索云原生技术的奥秘在当今数字化时代,云计算已成为推动企业创新和增长的关键动力。随着云平台的不断成熟,云原生技术应运而生,以其独特的优势引领着一场新的技术革命。本文将深入探讨云原生的核心概念、主要特点以及它如何改变现代软件开发和部署的方式,为您揭开云原生这一神秘面纱。
云原生是一种构建和运行应用程序的方法,充分利用了云平台的弹性、分布式本质以及声明式基础设施。本文将解析云原生的十二要素,微服务架构的优势,以及容器化、持续集成与持续部署(CI/CD)等核心技术的实践应用。通过深入浅出的方式,让读者理解云原生不仅是一种技术,更是一种文化和方法论,它正在重塑软件开发流程,提高资源利用率和应用系统的可扩展性与容错性。
|
1月前
|
安全 Cloud Native Shell
云上攻防:云原生篇&Docker容器逃逸
本文介绍了Docker的基本概念及其对渗透测试的影响,重点讲解了容器逃逸的方法。Docker是一种轻量级的容器技术,与虚拟机相比,具有更高的便携性和资源利用率。然而,这也带来了安全风险,特别是容器逃逸问题。文章详细描述了三种常见的容器逃逸方法:不安全的配置、相关程序漏洞和内核漏洞,并提供了具体的检测和利用方法。此外,还介绍了几种特定的漏洞(如CVE-2019-5736和CVE-2020-15257)及其复现步骤,帮助读者更好地理解和应对这些安全威胁。
云上攻防:云原生篇&Docker容器逃逸
|
1月前
|
Kubernetes Cloud Native Docker
云原生入门:Kubernetes和Docker的协同之旅
【10月更文挑战第4天】在这篇文章中,我们将通过一次虚拟的旅行来探索云原生技术的核心——Kubernetes和Docker。就像乘坐一艘由Docker驱动的小船启航,随着波浪(代码示例)起伏,最终抵达由Kubernetes指挥的宏伟舰队。这不仅是一段技术上的旅程,也是理解现代云架构如何支撑数字世界的冒险。让我们扬帆起航,一探究竟!
|
1月前
|
Kubernetes Cloud Native 流计算
Flink-12 Flink Java 3分钟上手 Kubernetes云原生下的Flink集群 Rancher Stateful Set yaml详细 扩容缩容部署 Docker容器编排
Flink-12 Flink Java 3分钟上手 Kubernetes云原生下的Flink集群 Rancher Stateful Set yaml详细 扩容缩容部署 Docker容器编排
76 3
|
1月前
|
Kubernetes Cloud Native 持续交付
云原生之旅:Docker容器化与Kubernetes集群管理
【9月更文挑战第33天】在数字化转型的浪潮中,云原生技术如同一艘航船,带领企业乘风破浪。本篇文章将作为你的航海指南,从Docker容器化的基础讲起,直至Kubernetes集群的高级管理,我们将一起探索云原生的奥秘。你将学习到如何封装应用、实现环境隔离,以及如何在Kubernetes集群中部署、监控和扩展你的服务。让我们启航,驶向灵活、可伸缩的云原生未来。

热门文章

最新文章

下一篇
无影云桌面