大鲸鱼—docker 基本概念及安装使用

目录

一、docker前言

1.什么是Docker?

2.Docker的宗旨

3.容器的优点

4.Docker与虚拟机的区别

5.Docker核心概念

镜像

容器

仓库

6.为什么要用容器

7.容器越来越受欢迎的原因

8.容器在内核中支持2种重要技术

二、Docker安装 

三、Docker 镜像操作

1.搜索镜像

2.镜像加速下载

3.获取镜像

4.查看镜像信息

5.根据镜像的唯一标识 ID 号,获取镜像详细信息

6.为本地的镜像添加新的标签

7.删除镜像

8.存出镜像:将镜像保存成为本地文件

9.载入镜像:将镜像文件导入到镜像库中

10.上传镜像

四、Docker 容器操作

1.容器创建

2.启动容器 

3.创建并启动容器


一、docker前言

1.什么是Docker?

  • 是一个开源的应用容器引擎,基于go语言开发并遵循apache2.0协议开源
  • 是在Linux容器里运行应用的开源工具
  • 是一种轻量级的 “虚拟机”
  • Docker的容器技术,可以在一台主机上轻松为任何应用创建一个轻量级的、可移植的、自给自足的容器
  • Docker的Logo设计为蓝色鲸鱼,拖着许多集装箱

鲸鱼可以看作宿主机,集装箱可理解为相互隔离的容器,每个集装箱中都包含自己的应用程序 

2.Docker的宗旨

通过对应用组件的封装、发布、部署、运行等生命周期的管理,达到应用组件级别的“一次封装,

到处运行”的目的。这里的组件,既可以是一个应用,也可以是一套服务,甚至是一个完整的操作

系统

3.容器的优点

  • 灵活:即使是最复杂的应用也可以集装箱化
  • 轻量级:容器利用并共享主机内核
  • 可互换:可以及时部署更新和升级
  • 便携式:可以在本地构建,部署到云,并在任何地方运行
  • 可扩展: 可以增加并自动分发容器副本
  • 可堆叠:可以垂直和即时堆叠服务
  • 容器是在linux上本机运行,并与其他容器共享主机的内核,它运行的是一个独立的进程,不占用其他任何可执行文件的内存,非常轻量。
  • 虚拟机运行的是一个完整的操作系统,通过虚拟机管理程序对主机资源进行虚拟访问,相比之下需要的资源更多。

4.Docker与虚拟机的区别

特性Docker容器Docker容器
启动速度秒级    分钟级
计算能力损耗 几乎无 损耗 50%左右
特性Docker容器Docker容器
启动速度秒级    分钟级
计算能力损耗 几乎无 损耗 50%左右

5.Docker核心概念

镜像
  • 是创建容器的基础
  • 是一个只读的模板文件,里面包含运行容器中的应用程序所需要的所有资料(比如应用程序执行文件、配置文件、动态库文件、依赖包、系统文件和目录等)
容器
  • 是用镜像运行的实例
  • 容器可以被创建、启动、停止、删除,每个容器之间默认是相互隔离的
仓库
  • 是用来集中保存镜像的地方
  • 有公有仓库和私钥仓库之分

6.为什么要用容器

  • 容器可以屏蔽底层操作系统的差异性,可以让应用程序不管在哪里都能使用容器的环境正常运行,从而保证了开发测试环保局与生产环境的一致性
  • 容器部署起来非常便捷和迅速,可以大大缩短应用部署的周期时间

7.容器越来越受欢迎的原因

  • 灵活:即使是最复杂的应用也可以集装箱化
  • 轻量级:容器利用并共享主机内核
  • 可互换:可以及时部署更新和升级
  • 便携式:可以在本地构建,部署到云,并在任何地方运行
  • 可扩展: 可以增加并自动分发容器副本
  • 可堆叠:可以垂直和即时堆叠服务

容器跟虚拟机区别

  • 容器是在linux上本机运行,并与其他容器共享主机的内核,它运行的是一个独立的进程,不占用其他任何可执行文件的内存,非常轻量
  • 虚拟机运行的是一个完整的操作系统,通过虚拟机管理程序对主机资源进行虚拟访问,相比之下需要的资源更多

8.容器在内核中支持2种重要技术

Docker本质就是宿主机的一个进程,docker是通过namespace实现资源隔离,通过cgroup实现资

源限制 ,通过写时复制技术(copy-on-write)实现高效文件操作 (类似于虚拟机的磁盘,比如分

配500g并不是实际占用物理磁盘500g,只有当需要修改时才复制一份数据)

二、Docker安装 

目前 Docker 只能支持 64 位系统。
 
systemctl stop firewalld.service
setenforce 0
 
#安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2 
--------------------------------------------------------------------------------------------
yum-utils:提供了 yum-config-manager 工具。
device mapper: 是Linux内核中支持逻辑卷管理的通用设备映射机制,它为实现用于存储资源管理的块设备驱动提供了一个高度模块化的内核架构。
device mapper存储驱动程序需要 device-mapper-persistent-data 和 lvm2。
--------------------------------------------------------------------------------------------
 
#设置阿里云镜像源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 
 
#安装 Docker-CE并设置为开机自动启动
yum install -y docker-ce docker-ce-cli containerd.io
 
systemctl start docker.service
systemctl enable docker.service 
--------------------------------------------------------------------------------------------
安装好的Docker系统有两个程序,Docker服务端和Docker客户端。其中Docker服务端是一个服务进程,负责管理所有容器。 Docker客户端则扮演着Docker服务端的远程控制器,可以用来控制Docker的服务端进程。大部分情况下Docker服务端和客户端运行在一台机器上。
--------------------------------------------------------------------------------------------
 
#查看 docker 版本信息
docker version
 
#docker 信息查看
docker info 

三、Docker 镜像操作

1.搜索镜像

格式:docker search 关键字
docker search nginx

2.镜像加速下载

浏览器访问 https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors 获取镜像加速器配置
 
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://6ijb8ubo.mirror.aliyuncs.com"]
}
EOF
systemctl daemon-reload
systemctl restart docker

3.获取镜像

格式:docker pull 仓库名称[:标签]
#如果下载镜像时不指定标签,则默认会下载仓库中最新版本的镜像,即选择标签为 latest 标签。
docker pull nginx

4.查看镜像信息

镜像下载后存放在 /var/lib/docker 。
Docker 相关的本地资源存放在 /var/lib/docker/ 目录下,其中 containers 目录存放容器信息,image 目录存放镜像信息,overlay2 目录下存放具体的镜像底层文件。
 
#查看下载的镜像文件信息
cat /var/lib/docker/image/overlay2/repositories.json
 
#查看下载到本地的所有镜像
docker images

5.根据镜像的唯一标识 ID 号,获取镜像详细信息

格式:docker inspect 镜像ID号
  • lowerdir是镜像层,目录或者文件是只读的,其实就是rootfs,image layer可以分很多层,所以对应的lowerdir是可以有多个目录
  • upperdir是在lowerdir之上的容器层,这层是可读可写的,在启动一个容器时候会进行创建,所有的对容器数据更改都发生在这里层
  • MergedDir是表现层,是容器的挂载点

6.为本地的镜像添加新的标签

格式:docker tag 名称:[标签] 新名称:[新标签]
docker tag nginx:latest nginx:web
 
docker images | grep nginx

7.删除镜像

格式: 
docker rmi 仓库名称:标签				    #当一个镜像有多个标签时,只是删除其中指定的标签
或者
docker rmi 镜像ID号						#会彻底删除该镜像

注意:如果该镜像已经被容器使用,正确的做法是先删除依赖该镜像的所有容器,再去删除镜像。

docker rmi nginx:web

8.存出镜像:将镜像保存成为本地文件

再开一台装了docker的服务器且没有任何镜像 

 

格式:docker save -o 存储文件名 存储的镜像
docker save -o /opt/nginx-1.20.tar nginx:1.20		#存出镜像命名为nginx存在当前目录下
ls /opt

9.载入镜像:将镜像文件导入到镜像库中

格式:
docker load < 存出的文件
或者
docker load -i 存出的文件
 
docker load < nginx

 先把文件复制过去

查看

 

10.上传镜像

默认上传到 docker Hub 官方公共仓库,需要注册使用公共仓库的账号。https://hub.docker.com

可以使用 docker login 命令来输入用户名、密码和邮箱来完成注册和登录

在上传镜像之前,还需要先对本地镜像添加新的标签,然后再使用 docker push 命令进行上传

docker tag nginx:latest soscscs/nginx:web		#添加新的标签时必须在前面加上自己的dockerhub的username
docker login								    #登录公共仓库
Username:
password:
docker push soscscs/nginx:web					#上传镜像

 

官方网站

创建个账户

 回到xshell

docker tag nginx:1.20 wdnmd/nginx-xy101:1.20

 

四、Docker 容器操作

1.容器创建

就是将镜像加载到容器的过程。

新创建的容器默认处于停止状态,不运行任何程序,需要在其中发起一个进程来启动容器

格式:docker create [选项] 镜像

常用选项

-i让容器开启标准输入接受用户输入命令
-t让 Docker 分配一个伪终端 tty
-it合起来实现和容器交互的作用,运行一个交互式会话 shell
docker create -it nginx:latest /bin/bash

查看容器的运行状态

docker ps -a            #-a 选项可以显示所有的容器

2.启动容器 

格式:docker start 容器的ID/名称
docker ps -a

3.创建并启动容器

可以直接执行 docker run 命令, 等同于先执行 docker create 命令,再执行 docker start 命令

注意:容器是一个与其中运行的 shell 命令/进程共存亡的终端,命令/进程运行容器运行, 命令/进

程结束容器退出

docker 容器默认会把容器内部第一个进程,也就是 pid=1 的程序作为docker容器是否正在运行的

依据,如果docker容器中 pid = 1 的进程挂了,那么docker容器便会直接退出,也就是说Docker容

器中必须有一个前台进程,否则认为容器已经挂掉

当利用 docker run 来创建容器时, Docker 在后台的标准运行过程是

  1. 检查本地是否存在指定的镜像。当镜像不存在时,会从公有仓库下载;
  2. 利用镜像创建并启动一个容器;
  3. 分配一个文件系统给容器,在只读的镜像层外面挂载一层可读写层;
  4. 从宿主主机配置的网桥接口中桥接一个虚拟机接口到容器中;
  5. 分配一个地址池中的 IP 地址给容器;
  6. 执行用户指定的应用程序,执行完毕后容器被终止运行。
docker run centos:7 /usr/bin/bash -c ls /
docker ps -a					#会发现创建了一个新容器并启动执行一条 shell 命令,之后就停止了

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

<数据集>水稻叶片病害识别数据集<目标检测>

数据集格式&#xff1a;VOCYOLO格式 图片数量&#xff1a;1448张 标注数量(xml文件个数)&#xff1a;1448 标注数量(txt文件个数)&#xff1a;1448 标注类别数&#xff1a;3 标注类别名称&#xff1a;[BrownSpot,RiceBlast,BacterialBlight] 序号类别名称图片数框数1Rice…

uniapp微信小程序 TypeError: $refs[ref].push is not a function

我的写法 this.$refs.addPopup.open();报错 打印出来是这样的 解决 参考未整理 原因 在当前页面使用的v-for循环 并且循环体内也有组件使用了ref&#xff08;而我没有把每个ref做区别命名&#xff09; 这样就导致了我有很多同名的ref&#xff0c;然后就报错了 解决办法&a…

Java类与对象

类是对现实世界中实体的抽象&#xff0c;是对一类事物的描述。 类的属性位置在类的内部、方法的外部。 类的属性描述一个类的一些可描述的特性&#xff0c;比如人的姓名、年龄、性别等。 [public] [abstract|final] class 类名 [extends父类] [implements接口列表] { 属性声…

超声波清洗机哪家好?家用超声波眼镜清洗机推荐

超声波清洗机现在已经成为了很多家庭的新宠&#xff0c;它能够帮助我们轻松解决日常生活中的清扫烦恼。但是&#xff0c;面对市面上品种繁多的清洗机产品&#xff0c;我们该如何选择一款适合自己的呢?毕竟不同的品牌和型号&#xff0c;在清洗效果、噪音水平、除菌能力等方面都…

电商出海第一步,云手机或成重要因素

电商出海第一步并非易事&#xff0c;挑战和机遇并存&#xff0c;出海企业或个人或将借助云手机从而达成商业部署全球化的目的&#xff1b; 下面我们从网络稳定、数据安全、成本、以及多平台适配方面来看&#xff0c;究竟为什么说云手机会成为出海的重要因素&#xff1b; 首先…

虚幻引擎ue5游戏运行界面白茫茫一片,怎么处理

根剧下图顺序即可调节游戏运行界面光照问题&#xff1a; 在大纲里找到post&#xff0c;然后选中它&#xff0c;找到Exposure 把最低亮度和最高亮度的0改为1即可

提质增效,还看拖拽式报表设计器

随着业务量的增大&#xff0c;传统的报表已经无法满足发展需要了&#xff0c;借助于低代码技术平台、拖拽式报表设计器的优势特点&#xff0c;可以助力摆脱信息孤岛、部门之间协作沟通不畅的弊端&#xff0c;实现高效增值的市场价值。如果想实现提质、降本、增效等发展目标&…

基于AT89C51单片机的16×16点阵LED显示器字符滚动显示设计(含文档、源码与proteus仿真,以及系统详细介绍)

本篇文章论述的是基于AT89C51单片机的1616点阵LED显示器字符滚动显示设计的详情介绍&#xff0c;如果对您有帮助的话&#xff0c;还请关注一下哦&#xff0c;如果有资源方面的需要可以联系我。 目录 仿真效果图 仿真图 代码 系统论文 资源下载 设计的内容和要求 熟悉51系…

论文翻译:Large Language Models for Education: A Survey and Outlook

https://arxiv.org/abs/2403.18105 目录 教育领域的大型语言模型&#xff1a;一项调查和展望摘要1. 引言2. 教育应用中的LLM2.1 概述2.2 学习辅助2.2.1 问题解决&#xff08;QS&#xff09; 2.2.2 错误纠正&#xff08;EC&#xff09;2.2.3 困惑助手&#xff08;CH&#xff09;…

力扣 爬楼梯

动态规划算法基础篇。 class Solution {public int climbStairs(int n) {int[] f new int[n 1];f[0] 1;f[1] 1;//当爬到n阶楼梯时&#xff0c;可知是由n-1阶或n-2阶楼梯而来for(int i 2; i < n; i) {f[i] f[i - 1] f[i - 2];//后面的每一阶种数由前两个状态得到}ret…

Letter Exchange

这道题目看官方题解就好了&#xff0c;这个转换图论挺显然的 证明一下为什么最后一定是 显然练完贬值后图只能长成这个样子 在消掉长度为\(2\)的环后&#xff0c;如果说图没边了&#xff0c; 那么显然就不用交换了&#xff0c;否则的话我们任取一条边 那么对于\(2\)号点来说&am…

Python转换PDF为PowerPoint演示文件

PDF文件以其跨平台兼容性和版面固定性成为了分享和存储文档资料的首选格式。然而&#xff0c;在需要进行生动、互动性强的演示时&#xff0c;PDF的静态特性便难以满足个性化演示需求。将PDF文件转换为PowerPoint演示文稿可以解决这一问题。PowerPoint不仅提供了丰富的动画和过渡…

如何利用大模型提高金融合规场景的工作效率?

金融是强监管行业&#xff0c;遵守法律法规、行业标准和内部政策是金融行业的基本要求。在强监管合规环境下&#xff0c;金融机构需要降低合规风险并提升服务质量。 人工审核效率低、成本高&#xff0c;且存在主观性导致的风险。过去&#xff0c;金融机构基于规则和NLP模型构建…

打卡第10天-----栈与队列

希望今年可是实现两份工作的无缝衔接,成功完成一次跳槽,最好不要成为无业游民。希望上帝成就我向他所祈求的,哈哈哈~ 一、栈与队列理论基础 如下图所示,栈是stack,后进先出,类比到我们平常做升降电梯,在电梯口的后上去,但是在下去的时候都是先出来,这很好理解,没什…

【Jfrog Artifactory】配置邮件服务器

教程使用QQ邮箱 配置路径是&#xff1a; http://IP:8082/ui/admin/configuration/mail 进入到Mail Server&#xff0c;然后按照格式填入&#xff1a; Host &#xff1a;smtp.qq.com 【发送服务器】 Port&#xff1a;587 【我的环境465无法发送成功】 Username&#xff1a;QQ邮…

find 查找与删除

项目里存在着以前很多的用cmake 生成的Makefile&#xff0c;由于本人不喜欢cmake&#xff0c;所以在部分目录下自己写了 Makefile&#xff0c;之前存在的很多的 Makefile 需要删除&#xff0c;但不知道在哪些目录下&#xff0c;所以有了以下的脚本&#xff1a; #!/bin/bash if…

使用Apache服务部署静态网站

前言&#xff1a;本博客仅作记录学习使用&#xff0c;部分图片出自网络&#xff0c;如有侵犯您的权益&#xff0c;请联系删除 目录 一、网站服务程序 ​二、配置服务文件参数 ​三、SELinux安全子系统 四、个人用户主页功能 ​五、虚拟网站主机功能 六、Apache的访问控制…

[Labview] 表格单元格外边框 二维图片叠加绘图

最终效果如下所示 转行做Labview都没到三个月&#xff0c;主程居然让我做这么复杂的功能&#xff0c;真是看得起我/(ㄒoㄒ)/~~ 思路大致分为两步 1、确定每个框体的左上/右下单元格位置&#xff0c;转换为表格表格坐标并在二维图片上绘制生成&#xff1b; 2、为二维图片添加…

Facebook社交平台的未来发展趋势分析

随着科技和社交需求的不断演变&#xff0c;Facebook作为全球最大的社交平台之一&#xff0c;其未来发展的趋势备受关注。从技术创新到社会影响&#xff0c;Facebook正在经历着前所未有的变化和挑战。本文将探讨Facebook未来发展的几个关键趋势&#xff0c;并分析其可能的影响和…

通过FallbackFactory接口实现降级逻辑

触发限流或熔断后的请求不一定要直接报错&#xff0c;也可以返回一些默认数据或者友好提示&#xff0c;用户体验会更好。 给FeignClient编写失败后的降级逻辑有两种方式&#xff1a; 方式一&#xff1a;FallbackClass&#xff0c;无法对远程调用的异常做处理方式二&#xff1a…