百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT技术 > 正文

程序员背锅救星-docker

wptr33 2024-11-22 22:00 16 浏览

程序员背锅救星-docker



一、前言

本篇内容带大家走进docker的世界,从基础到实战,从头到尾讲述docker的概念和使用docker进行环境部署等等一系列“骚”操作~


二、docker概念

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows 机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。

就如上述你看到的图片一样,容器的设计理念由码头上的集装箱而来,通过集装箱的标准化、相互隔离实现软件系统依赖的打包与运行隔离。


三、docker的作用

说到这个作用,我先引入一个话题,就是大家在工作中应该遇到过类似的现象,我们在开发环境中测试自己的代码好好的,但是一到测试人员手里,就是自己的孩子认生一样,立马哇哇大哭,搞得我们开发成了背锅侠,而测试最长说的一句话就是:“你这代码有问题呀~”,估计大家的心情都一样,一万只caoni马奔腾而过;

最后检查,竟是环境出现了问题~~~

“他来了他来了”~~docker作为一款解救开发人员的神器出现了,我们可以把开发环境部署好,直接放在容器中,然后测试拿到这个容器就可以直接使用了,真的是“你好,我好,大家好!”

所以,容器的作用可以分为这么几部分:

  • 提供一次性的环境。就比如我们上述描述的场景;
  • 提供弹性的云服务。因为 Docker 容器可以随开随关,很适合动态扩容和缩容;
  • 组建微服务架构。通过多个容器,一台机器可以跑多个服务,因此在本机就可以模拟出微服务架构。

四、docker中最重要的三要素

这里我们可以使用虚拟机的方式解释这三要素;

Docker镜像就好比我们要安装linux虚拟机,我们需要centos镜像,VM软件等等;

镜像

Docker镜像(Image)类似于虚拟机的镜像,可以将他理解为一个面向Docker引擎的只读模板,包含了文件系统。

这里我们可以看到的是,安装linux虚拟机,需要centos的镜像,这里的镜像和我们虚拟机中的镜像可以想象成一种东西;

当我们装了redis,这个就是redis镜像;

镜像是创建Docker容器的基础,通过版本管理和增量的文件系统,我们可以从仓库中下载一个已经做好的镜像,并通过命令直接使用。

仓库

Docker仓库(Repository)是Docker集中存放镜像文件的场所。

这种很类似阿里云镜像库,存放着各种镜像,也很类似于github,存放着各种各样的代码,我们需要就可以去取;

每个仓库集中存放某一类镜像,往往包括多个镜像文件,通过不同的标签(tag)来进行区分。例如存放centos操作系统镜像的仓库,称为centos仓库,其中可能包括centos6和centos7等不同版本的镜像。

Docker仓库分为公开仓库(Public)和私有仓库(Private)两种形式,最大的公开仓库是Docker Hub,存放了数量庞大的镜像;

一般我们自己部署设置的镜像库,会存放在私有仓库进行内存共享,更改和下载以及发布操作;

容器

容器是用镜像创建的运行实例。

每个容器都可以被启动,开始,停止,删除,同时容器之间相互隔离,保证应用运行期间的安全。

这就好比我们在VM中安装的虚拟机,我们可以使用一个镜像创建不同的实例,比如centos1、centos2等等,每个虚拟机互不影响,单独运行;


五、基本命令

镜像相关

关于镜像相关的命令,用得最多的就是拉、删、查、找、传镜像

  • 拉取镜像docker pull <image>
    指定标签下载某镜像
    docker pull [:TAG]
    比如我们拉取centos7的镜像docker pull centos7
  • 查看镜像列出本地主机上的镜像
    docker images
    REPOSITORY:表示镜像的仓库源 TAG:镜像的标签 IMAGE ID:镜像ID CREATED:镜像创建时间 SIZE:镜像大小
  • 搜索镜像docker search <image>
    NAME: 镜像仓库源的名称 DESCRIPTION: 镜像的描述 OFFICIAL: 是否 docker 官方发布 stars: 类似 Github 里面的 star,表示点赞、喜欢的意思。AUTOMATED: 自动构建。
  • 删除镜像docker rmi <image ID>
  • 上传镜像docker push NAME[:TAG]

容器相关

  • 创建容器docker start <container_name | container_id>
  • 创建并启动容器docker run -it <container_name | container_id> /bin/bash
    一般我们会使用:docker run -itd --name centos-test centos:centos7
    说明:
    • -it 会进入容器的终端
    • -d后台运行
    • centos-test 容器名以centos-test命令,不指定会随机去一个字符串;
    • centos:centos7镜像名
  • 守护(后台)运行docker run -d <container_name | container_id>
  • 查看容器信息docker ps [-a -q]
  • 终止容器docker stop <container_name | container_id>
  • 启动容器docker start <container_name | container_id>
  • 重启容器docker restart <container_name | container_id>
  • 进入容器docker exec -it <container_name | container_id> /bin/bash
  • 删除容器docker rm [-f] <container_name | container_id>

六、实践

接下来来,我们一步一步操作docker运行centos7:

拉取centos7镜像

命令:docker pull centos:centos7

创建并启动centos容器

命令:docker run -itd --name centos-test centos:centos7

查看容器运行情况

命令:docker ps

进入容器操作


七、总结

以上就是我们操作容器全部的基础知识和操作过程,掌握上面的基础,我们可以初步拉取镜像,创建容器并且使用,后面我将为大家介绍容器的制作,制作我们自己的容器,这样才达到开发人员学习容器最终的目的,我们下期见 -《镜像制作大法》。



往期推荐




相关推荐

Python自动化脚本应用与示例(python办公自动化脚本)

Python是编写自动化脚本的绝佳选择,因其语法简洁、库丰富且跨平台兼容性强。以下是Python自动化脚本的常见应用场景及示例,帮助你快速上手:一、常见自动化场景文件与目录操作...

Python文件操作常用库高级应用教程

本文是在前面《Python文件操作常用库使用教程》的基础上,进一步学习Python文件操作库的高级应用。一、高级文件系统监控1.1watchdog库-实时文件系统监控安装与基本使用:...

Python办公自动化系列篇之六:文件系统与操作系统任务

作为高效办公自动化领域的主流编程语言,Python凭借其优雅的语法结构、完善的技术生态及成熟的第三方工具库集合,已成为企业数字化转型过程中提升运营效率的理想选择。该语言在结构化数据处理、自动化文档生成...

14《Python 办公自动化教程》os 模块操作文件与文件夹

在日常工作中,我们经常会和文件、文件夹打交道,比如将服务器上指定目录下文件进行归档,或将爬虫爬取的数据根据时间创建对应的文件夹/文件,如果这些还依靠手动来进行操作,无疑是费时费力的,这时候Pyt...

python中os模块详解(python os.path模块)

os模块是Python标准库中的一个模块,它提供了与操作系统交互的方法。使用os模块可以方便地执行许多常见的系统任务,如文件和目录操作、进程管理、环境变量管理等。下面是os模块中一些常用的函数和方法:...

21-Python-文件操作(python文件的操作步骤)

在Python中,文件操作是非常重要的一部分,它允许我们读取、写入和修改文件。下面将详细讲解Python文件操作的各个方面,并给出相应的示例。1-打开文件...

轻松玩转Python文件操作:移动、删除

哈喽,大家好,我是木头左!Python文件操作基础在处理计算机文件时,经常需要执行如移动和删除等基本操作。Python提供了一些内置的库来帮助完成这些任务,其中最常用的就是os模块和shutil模块。...

Python 初学者练习:删除文件和文件夹

在本教程中,你将学习如何在Python中删除文件和文件夹。使用os.remove()函数删除文件...

引人遐想,用 Python 获取你想要的“某个人”摄像头照片

仅用来学习,希望给你们有提供到学习上的作用。1.安装库需要安装python3.5以上版本,在官网下载即可。然后安装库opencv-python,安装方式为打开终端输入命令行。...

Python如何使用临时文件和目录(python目录下文件)

在某些项目中,有时候会有大量的临时数据,比如各种日志,这时候我们要做数据分析,并把最后的结果储存起来,这些大量的临时数据如果常驻内存,将消耗大量内存资源,我们可以使用临时文件,存储这些临时数据。使用标...

Linux 下海量文件删除方法效率对比,最慢的竟然是 rm

Linux下海量文件删除方法效率对比,本次参赛选手一共6位,分别是:rm、find、findwithdelete、rsync、Python、Perl.首先建立50万个文件$testfor...

Python 开发工程师必会的 5 个系统命令操作库

当我们需要编写自动化脚本、部署工具、监控程序时,熟练操作系统命令几乎是必备技能。今天就来聊聊我在实际项目中高频使用的5个系统命令操作库,这些可都是能让你效率翻倍的"瑞士军刀"。一...

Python常用文件操作库使用详解(python文件操作选项)

Python生态系统提供了丰富的文件操作库,可以处理各种复杂的文件操作需求。本教程将介绍Python中最常用的文件操作库及其实际应用。一、标准库核心模块1.1os模块-操作系统接口主要功能...

11. 文件与IO操作(文件io和网络io)

本章深入探讨Go语言文件处理与IO操作的核心技术,结合高性能实践与安全规范,提供企业级解决方案。11.1文件读写11.1.1基础操作...

Python os模块的20个应用实例(python中 import os模块用法)

在Python中,...