Docker零基础入门

参考课程https://www.bilibili.com/video/BV1VC4y177re/?vd_source=b15169a302bee35f484245aecc69d4dd

参考书籍Docker 实践 - 面向 AI 开发人员的 Docker 实践 (dockerpractice.readthedocs.io)

1. 什么是Docker

1.1. Docker起源

随着计算机的发展,计算机上已经可以运行多个操作系统,每个系统上可以跑不同的应用,实现不同的功能。由此,虚拟机诞生,可以让我们在一个系统上跑多个系统。

 虽然可以独立产生多个系统,但对系统性能有极大消耗,会消耗很多硬件资源。

那么如何让硬件资源不被OS消耗掉呢?

答:使用容器技术

Docker就是其中一种容器技术,目前比较流行。 

1.2. Docker可以用来干什么

没有用OS,所以体积很小

当开发把项目交给测试的时候,直接交三个容器,测试就不用再配置一遍环境了

Docker Image  即 Docker 镜像,是一个特殊的文件系统,它包含了运行一个特定软件所需的所有内容,包括代码、运行时环境、库、配置文件等。可以将其理解为软件的一个 “快照”,它提供了一种可重复、可移植的方式来打包和分发软件。

Image是什么?  包含了你容器里面所需要运行的所有信息都在Image里面

Image可以干嘛?  可以利用Image来产生一个或无数个Container(容器),也就是说,当你希望在你的系统上运行一个Container的时候,我得在系统上指明我要运行哪个Image的Container以及基于哪个Image给我生成一个Container。Image和Container的关系类似于类和对象,用Image去产生一个又一个的Container去跑起来。

所以我们要做的就是把Image给准备好,之后可以直接用Image去跑一个Container。

Image放在哪里?  可以把Image放在DockerHub/Public Docker Register(公共的Docker注册表)或Private Docker Register里面,需要的时候可以把Image取出来生成Container。

总结:以后我做一个项目,写一个Image,把它存储在仓库中,需要时可以从任意一台连网的电脑中取出生成Container,运行项目。

1.3. 一些预备知识

 Nginx 是一款轻量级的高性能 Web 服务器、反向代理服务器以及电子邮件(IMAP/POP3)代理服务器

Web 服务器是一种专门用于存储、处理和向客户端(通常是 Web 浏览器)提供 Web 内容的软件或硬件设备。

1.4. 一些预备工作 

  1. 打开“Docker Desktop”
  2. 通过代理访问外部资源(翻墙) 

2. Docker的安装

Linux 是一个开源的操作系统内核

Ubuntu 是基于 Linux 内核开发的操作系统发行版。它采用了 Linux 内核,并在其基础上添加了各种软件包、图形界面、工具和应用程序,以提供一个完整的操作系统环境。

例如 Ubuntu、Fedora、CentOS 等都是常见的 Linux 操作系统发行版。这些发行版在 Linux 内核的基础上,添加了不同的软件和功能,以满足不同用户的需求。

我使用的是Windows系统,所以下载了

Docker Desktop 发行说明 |Docker 文档

WSL(Windows Subsystem for Linux)是适用于 Windows 的 Linux 子系统。

安装后遇到了“Docker Desktop - WSL update failed An error occurred while updating WSL. You can manually update using wsl --update.”的报错,解决方法是打开cmd,进行以下操作

C:\Users\Winky>wsl --update
正在安装: 适用于 Linux 的 Windows 子系统
已安装 适用于 Linux 的 Windows 子系统。

成功安装

3. 基础命令

3.1. 拉取镜像

docker pull [选项] [docker镜像地址:标签]

3.1.1. 拉取 “hello-world” 镜像 

“hello-world” 镜像主要是用于验证 Docker 安装是否正确以及展示 Docker 的基本工作流程。它的功能非常简单,就是输出一段欢迎信息。

C:\Users\吴伊晴>docker pull hello-world:latest
latest: Pulling from library/hello-world
c1ec31eb5944: Pull complete
Digest: sha256:53cc4d415d839c98be39331c948609b659ed725170ad2ca8eb36951288f81b75
Status: Downloaded newer image for hello-world:latest
docker.io/library/hello-world:latestWhat's next:View a summary of image vulnerabilities and recommendations → docker scout quickview hello-world:latest

3.1.2. 拉取 “nginx” 镜像 

“nginx” 镜像则是一个功能强大的 Web 服务器。当运行 “nginx” 镜像时,它会启动一个 Nginx 服务器实例,并进行一系列的配置和初始化操作,以准备处理传入的 HTTP 请求。

C:\Users\吴伊晴>docker pull nginx:latest
latest: Pulling from library/nginx
Digest: sha256:447a8665cc1dab95b1ca778e162215839ccbb9189104c79d7ec3a81e14577add
Status: Image is up to date for nginx:latest
docker.io/library/nginx:latest

3.2. 运行镜像/启动容器

“docker run” 这个命令实际上包含了两个主要的动作:

首先,它会根据指定的镜像创建一个新的容器;

然后,它会启动这个容器。

3.2.1. 运行“hello-world” 镜像 

“hello-world”:输出的内容主要是一段欢迎信息和对 Docker 工作流程的简要说明,旨在向用户表明 Docker 安装正常,并提供一些进一步探索的建议和链接。

docker run hello-world:latest
C:\Users\吴伊晴>docker run hello-world:latestHello from Docker!
This message shows that your installation appears to be working correctly.To generate this message, Docker took the following steps:1. The Docker client contacted the Docker daemon.2. The Docker daemon pulled the "hello-world" image from the Docker Hub.(amd64)3. The Docker daemon created a new container from that image which runs theexecutable that produces the output you are currently reading.4. The Docker daemon streamed that output to the Docker client, which sent itto your terminal.To try something more ambitious, you can run an Ubuntu container with:$ docker run -it ubuntu bashShare images, automate workflows, and more with a free Docker ID:https://hub.docker.com/For more examples and ideas, visit:https://docs.docker.com/get-started/

3.2.2. 运行 “nginx” 镜像  

“nginx”:输出的内容主要是 Nginx 服务器的启动日志,包括服务器的版本、构建信息、操作系统信息、使用的事件方法以及启动的 worker 进程信息等。这些信息对于调试和监控 Nginx 服务器的运行状态非常有用。

不指定版本

如果不指定版本,则默认是最新版本

docker run nginx
C:\Users\吴伊晴>docker run nginx
Unable to find image 'nginx:latest' locally
latest: Pulling from library/nginx
e4fff0779e6d: Pull complete
2a0cb278fd9f: Pull complete
7045d6c32ae2: Pull complete
03de31afb035: Pull complete
0f17be8dcff2: Pull complete
14b7e5e8f394: Pull complete
23fa5a7b99a6: Pull complete
Digest: sha256:447a8665cc1dab95b1ca778e162215839ccbb9189104c79d7ec3a81e14577add
Status: Downlo

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

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

相关文章

abVIEW 可以同时支持脚本编程和图形编程

LabVIEW 可以同时支持脚本编程和图形编程,但主要依赖其独特的 图形编程 环境(G语言),其中程序通过连线与节点来表示数据流和功能模块。不过,LabVIEW 也支持通过以下方式实现脚本编程的能力: 1. 调用外部脚本…

光伏选址和设计离不开气象分析!

都说光伏选址和设计离不开气象分析,气象条件对太阳能发电影响较大,具体有哪些影响呢?今天我就来讲解下。 - 太阳辐射:太阳辐射的强度是光伏发电的首要因素,对光伏发电有着重要的影响。太阳辐射的强度决定了光伏发电系…

vue2制作高复用页面

记录一下页面搭建记录,利用vue2组件化开发的思想。这个页面适合于大部分信息管理系统~。模板固定,每次使用,直接修改表单表格参数,api接口等。 以上图页面为例,一个基础数据信息页面可以分为,分类&#xff…

Uniapp + Vue3 + Vite +Uview + Pinia 实现购物车功能(最新附源码保姆级)

Uniapp Vue3 Vite Uview Pinia 实现购物车功能(最新附源码保姆级) 1、效果展示2、安装 Pinia 和 Uview3、配置 Pinia4、页面展示 1、效果展示 2、安装 Pinia 和 Uview 官网 https://pinia.vuejs.org/zh/getting-started.html安装命令 cnpm install pi…

docker-compose elasticsearch 集群搭建(用户登录+https访问)

文章目录 前言docker-compose elasticsearch 集群搭建(用户登录+https访问)1. 效果2. 制作elasticsearch + 分词器镜像2.1. 拉取elasticsearch:7.11.12.2. 制作特定版本镜像3. docker-compose elasticsearch 集群制作4. es账户密码初始化前言 如果您觉得有用的话,记得给博主点…

Proxyless Service Mesh:下一代微服务架构体系

一、项目背景及意义 在当今的微服务架构中,应用程序通常被拆分成多个独立的服务,这些服务通过网络进行通信。这种架构的优势在于可以提高系统的可扩展性和灵活性,但也带来了新的挑战,比如: 服务间通信的复杂性&#…

STM32中的计时与延时

前言 在裸机开发中,延时作为一种规定循环周期的方式经常被使用,其中尤以HAL库官方提供的HAL_Delay为甚。刚入门的小白可能会觉得既然有官方提供的延时函数,而且精度也还挺好,为什么不用呢?实际上HAL_Delay中有不少坑,而这些也只是HAL库中无数坑的其中一些。想从坑里跳出来…

安卓13允许app启动服务 android13允许应用启动服务 无法启动服务 Background start not allowed: service

总纲 android13 rom 开发总纲说明 文章目录 1.前言2.问题分析3.代码分析4.代码修改5.编译6.彩蛋1.前言 android13应用启动服务,有些应用会被禁止启动服务,开启的服务会失败,这是高版本的android的特性,我们需要更改下frameworks的代码。 2.问题分析 查看下logcat信息 B…

军用软件安全性可靠性设计与编码规范技术培训

​课程介绍: 随着我国武器装备数字化、智能化水平不断提高,软件在武器装备中的作用越来越关键。由于软件能以人所不能比的速度可靠地完成关键控制任务,几乎在每个重要系统中都由计算机系统来进行控制,软件在运行和控制危险以及在…

破解AI生成检测:如何用ChatGPT降低论文的AIGC率

学境思源,一键生成论文初稿: AcademicIdeas - 学境思源AI论文写作 降低论文的“AIGC率”是个挑战,但有一些策略可以尝试。使用ChatGPT逐步调整和改进内容,使其更加自然和原创,降低AI检测工具识别出高“AIGC率”的概率…

源码运行springboot2.2.9.RELEASE

1 环境要求 java 8 maven 3.5.2 2 下载springboot源码 下载地址 https://github.com/spring-projects/spring-boot/releases/tag/v2.2.9.RELEASE 3 修改配置 修改spring-boot-2.2.9.RELEASE/pom.xml 修改spring-boot-2.2.9.RELEASE/spring-boot-project/spring-boot-tools…

基于Vue的兴趣活动推荐APP的设计与实现_kaic

摘 要 近年来,随着互联网不断的普及与发展,生活也变的多姿多彩,每个人几乎都有属于自己的小小兴趣圈子,但人们的兴趣却不止一个,大多数人是没有时间为自己的兴趣“买单”的。为了解决我们在生活中对于各种兴趣活动的…

什么品牌的宠物空气净化器性价比最高?352/希喂/霍尼韦尔/有哈/IAM实测对比

我开着一家猫咪咖啡馆,我们店貌美小猫可没少给我带来回头客~先给大家看看我的招财猫们 开了三年了,也是前不久店里才开始有点盈利,开始那段时间没少收到投诉,差点就干不下去了。店里养着的猫多,平时鱼油、冻干也没稍微…

uniapp+若依 开发租房小程序源码分享

1、使用Uniapp开发的前台,基于 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、Web(响应式)、以及各种小程序 2、基于SpringBoot的权限管理系统,易读易懂、界面简洁美观。 核心…

ppt文件怎么压缩变小一些?8种压缩PPT文件的方法推荐

ppt文件怎么压缩变小一些?在现代工作环境中,PPT文件常常是我们展示信息和分享想法的主要工具。然而,当这些文件变得庞大时,它们不仅会占用大量的存储空间,还可能导致处理速度变慢,影响整体工作效率。这种情…

Spring扩展点系列-BeanFactoryAware

文章目录 简介源码分析示例代码示例一:验证BeanFactoryAware执行顺序示例二:动态获取其他bean示例三:动态bean的状态 简介 spring容器中Bean的生命周期内所有可扩展的点的调用顺序 扩展接口 实现接口ApplicationContextlnitializer initia…

【YashanDB知识库】数据库获取时间和服务器时间不一致

本文转自YashanDB官网,具体内容可见数据库获取时间和服务器时间不一致 【问题分类】功能使用 【关键字】服务器时间、数据库时间 【问题描述】数据库获取的时间和服务器时间不一致。 【问题原因分析】YashanDB并没有时区的概念,数据库的时间以数据库启…

K8s 之Pod的定义及详细资源调用案例

资源管理介绍 在kubernetes中,所有的内容都抽象为资源,用户需要通过操作资源来管理kubernetes。kubernetes的本质上就是一个集群系统,用户可以在集群中部署各种服务所谓的部署服务,其实就是在kubernetes集群中运行一个个的容器&a…

App及web反编译方案

APP反编译代码的工具下载: 下载地址:APK逆向三件套apktool-2.9.3.jar,dex2jar-2.0.zip,jd-gui-windows-1.6.6资源-CSDN文库 》dex2jar: 把dex文件转成jar文件 》 jd-gui: 这个工具用于将jar文件转换成java代码 》APKTool: 首先把…

[docker]入门

本文章主要讲述的是,docker基本实现原理,docker概念的解释,docker的使用场景以及docker打包与部署的应用。 文章中docker所运行的系统:CentOS Linux release 7.9.2009 (Core) 目录 docker是什么,什么时候需要去使用 …