Docker简介

Docker简介

文章目录

  • Docker简介
    • 一、Docker
      • 1.什么是docker?
      • 2.容器引擎
      • 3.容器和虚拟机的区别
      • 4.namespace(命名空间)
      • 5.三大容器核心概念
        • 镜像
        • 容器
        • 仓库
    • 二、Docker镜像操作
      • 1.搜索镜像
      • 2.获取镜像
        • 镜像加速下载
      • 3.查看本地下载镜像
      • 4.获取镜像详细信息
      • 5.为本地镜像添加标签
      • 6.删除镜像
      • 7.存出镜像
      • 8.载入镜像
      • 9.上传镜像
      • 10.镜像操作总结
    • 三、Docker 容器操作
      • 1.容器创建
      • 2.查看容器的运行状态
      • 3.启动容器
      • 3.停止容器运行
      • 4.删除容器
      • 5.进入容器
      • 6.宿主机和容器数据的导入和导出
      • 7.容器的导出与导入
        • 导出格式
        • 导入格式
      • 8.创建并启动容器(docker run)
        • docker run 执行过程
        • 执行格式
        • docker run 执行过程
        • 执行格式

一、Docker

1.什么是docker?

docker是go语言开发的应用容器引擎,是用来运行容器里的应用,docker是管理镜像和容器的一种工具。

2.容器引擎

docker containerd podman rocket

3.容器和虚拟机的区别

指标容器虚拟机
内核所有容器共享宿主机内核每个虚拟机有单独的操作系统和内核
资源隔离使用namespace进行资源隔离,通过cgroup限制容器的资源最大使用量完全隔离,每个虚拟机有自己的独立硬件资源
启动速度秒级分钟级
性能损耗容器相当于宿主机的进程,几乎无损耗需要hypervisor虚拟机管理程序对宿主机资源虚拟访问,至少有20~50%资源损耗
单机容量单机容量能够支持成百上千个容器单机空量只能支持最多十几个虚拟机

在这里插入图片描述

4.namespace(命名空间)

类型说明
MNT namespace提供磁盘挂载点和文件系统的隔离能力
IPC namespace提供进程间通信的隔离能力
USER namespace提供用户隔离能力
NET namespace提供网络隔离能力
UTS namespace提供主机名隔离能力
PID namespace提供进程隔离能力

5.三大容器核心概念

镜像

是创建容器的基础,也是一个只读的模板文件,里面包含容器中的应用程序所需要的所有内容(包含程序运行文件、配置文件、这行库文件、操作系统、依赖包 )

容器

是用镜像运行的实例,容器可以被创建、启动、停止、删除,每个容器之间默认是相互资源隔离的

仓库

是用来保存镜像的地方,有公有仓库和私有仓库之分

二、Docker镜像操作

1.搜索镜像

格式:docker search 关键字

在这里插入图片描述

2.获取镜像

格式:docker pull 仓库名称[:标签]

镜像加速下载

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

在这里插入图片描述

3.查看本地下载镜像

docker images--------------------------------------------------------------------------------------------
REPOSITORY:镜像属于的仓库;
TAG:镜像的标签信息,标记同一个仓库中的不同镜像;
IMAGE ID:镜像的唯一ID 号,唯一标识一个镜像;
CREATED:镜像创建时间;
VIRTUAL SIZE:镜像大小;
--------------------------------------------------------------------------------------------

4.获取镜像详细信息

docker inspect 镜像id

在这里插入图片描述

5.为本地镜像添加标签

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

6.删除镜像

格式:
docker rmi 仓库名称:标签				#当一个镜像有多个标签时,只是删除其中指定的标签
或者
docker rmi 镜像ID号						#会彻底删除该镜像注意:如果该镜像已经被容器使用,正确的做法是先删除依赖该镜像的所有容器,再去删除镜像。

在这里插入图片描述

7.存出镜像

格式:docker save -o 存储文件名 存储的镜像
docker save -o nginx nginx:web			#存出镜像命名为nginx存在当前目录下
ls -lh

8.载入镜像

#载入镜像:将镜像文件导入到镜像库中
格式:
docker load < 存出的文件
或者
docker load -i 存出的文件docker load < nginx

在这里插入图片描述

9.上传镜像

默认上传到 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					#上传镜像

10.镜像操作总结

docker serach  镜像|仓库关键词      ##搜索镜像docker pull  镜像                 ##拉取镜像docker images                    ##查看本地镜像docker rmi 镜像名|镜像id [-f]      ##删除镜像docker tag 旧镜像名:旧标签 新镜像名:新标签  ##添加镜像标签docker inspect  镜像名|镜像ID        ## 查看镜像详细信息docker save -o  镜像文件 镜像名|镜像id  ##导出镜像docker load -i 镜像文件               ##从镜像文件载入镜像(可以从其他主机导出镜像后,然后载入镜像)docker login                         ##默认登陆公共仓库docker push   仓库名/镜像名:标签        ##上传镜像到仓库

三、Docker 容器操作

1.容器创建

#容器创建:就是将镜像加载到容器的过程。
新创建的容器默认处于停止状态,不运行任何程序,需要在其中发起一个进程来启动容器。格式:docker create [选项] 镜像
常用选项:
-i:让容器开启标准输入接受用户输入命令
-t:让 Docker 分配一个伪终端 tty
-it :合起来实现和容器交互的作用,运行一个交互式会话 shell docker create -it nginx:latest /bin/bash | sh

2.查看容器的运行状态

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

3.启动容器

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

3.停止容器运行

格式:docker stop 容器的ID/名称
格式:docker kill 容器的ID/名称

在这里插入图片描述

4.删除容器

docker rm 容器的ID/名称
docker rm [-f] (docker ps -a -q)  批量删除容器

在这里插入图片描述

5.进入容器

docker exec -it 容器名|容器ID bash/sh  ##进入容器分配一个伪终端,可以在里面操作,exit退出不会停止容器进程
docker attach  容器名|容器ID ##连接到正在运行的容器,共享容器屏幕显示,不能在里面操作,ctrlc退出默认会停止容器讲程

6.宿主机和容器数据的导入和导出

docker cp 容器ID:文件/目录的绝对路径  宿主机本地文件/目录   ##从容器将文件或目录导出到宿主机
docker cp 宿主机本地文件/目录     容器ID:文件/目录的绝对路径  ##从宿主机或目录将文件导入到容器中

在这里插入图片描述

7.容器的导出与导入

用户可以将任何一个 Docker 容器从一台机器迁移到另一台机器。在迁移过程中,可以使用docker export 命令将已经创建好的容器导出为容器快照文件,无论这个容器是处于运行状态还是停止状态均可导出。可将导出文件传输到其他机器,通过相应的导入命令实现容器的迁移。

导出格式

docker export 容器ID/名称 > 文件名

导入格式

cat 文件名 | docker import – 镜像名称:标签
docker import 容器模板文件 -- 容器镜像

在这里插入图片描述

8.创建并启动容器(docker run)

docker run 执行过程

检查本地是否有镜像(如果有则使用本地镜像创建容器,如果没有则从仓库拉取镜像再创建容器)
在只读的镜像层上挂载一层可读可写的容器层
从docker网桥给容器分配一个虚拟接口和IP地址给容器
使用镜像的默认命令或者指定的命令启动容器,直到容器主进程退出为止

执行格式

docker run [--name 容器名] [--rm  删除容器] [-it]  [-d 后台运行]  镜像名:标签  [容器启动命令]

器(docker run)

docker run 执行过程

检查本地是否有镜像(如果有则使用本地镜像创建容器,如果没有则从仓库拉取镜像再创建容器)
在只读的镜像层上挂载一层可读可写的容器层
从docker网桥给容器分配一个虚拟接口和IP地址给容器
使用镜像的默认命令或者指定的命令启动容器,直到容器主进程退出为止

执行格式

docker run [--name 容器名] [--rm  删除容器] [-it]  [-d 后台运行]  镜像名:标签  [容器启动命令]

在这里插入图片描述

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

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

相关文章

SQL 上升的温度

197 上升的温度 SQL架构 表&#xff1a; Weather ---------------------- | Column Name | Type | ---------------------- | id | int | | recordDate | date | | temperature | int | ---------------------- id 是这个表的主键 该表包含特定日期的温度信息 编写一个 SQL …

事务@transactional执行产生重复数据

背景 系统设计之初&#xff0c;每次来新请求&#xff0c;业务层会先查询数据库&#xff0c;判断是否存在相同的id数据&#xff08;id是唯一标识产品的&#xff09;&#xff0c;有则返回当前数据库查到的数据&#xff0c;根据数据决定下一步动作&#xff0c;没有则认为是初次请…

销售自动化如何提高团队生产力?从这5个方面发力

任何用于减少人工劳动和缩短销售流程相关任务时间的技术&#xff0c;都可定义为销售自动化。 对于忙碌的销售人员来说&#xff0c;流程自动化是真正的救星。它可以使他们的工作简化30%&#xff0c;让他们更专注于创收任务。这将显著提高团队的工作效率&#xff0c;并带来许多其…

滑动奇异频谱分析:数据驱动的非平稳信号分解工具(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

师承AI世界新星|7天获新加坡南洋理工大学访学邀请函

能够拜师在“人工智能10大新星”名下&#xff0c;必定可以学习到前沿技术&#xff0c;受益良多&#xff0c;本案例中的C老师无疑就是这个幸运儿。我们只用了7天时间就取得了这位AI新星导师的邀请函&#xff0c;最终C老师顺利获批CSC&#xff0c;如愿出国。 C老师背景&#xff1…

Leetcode刷题4

⼆叉树、BFS、堆、Top K、⼆叉搜索树、模拟、图算法 一、二叉树 二叉树的前序中序后序 二叉树节点定义 为了方便演示&#xff0c;我们先定义一个二叉树节点类。 class TreeNode:def __init__(self, val0, leftNone, rightNone):self.val valself.left leftself.right r…

Android ViewGroup onDraw为什么没调用

ViewGroup&#xff0c;它本身并没有任何可画的东西&#xff0c;它是一个透明的控件&#xff0c;因些并不会触发onDraw&#xff0c;但是你现在给LinearLayout设置一个背景色&#xff0c;其实这个背景色不管你设置成什么颜色&#xff0c;系统会认为&#xff0c;这个LinearLayout上…

[回馈]ASP.NET Core MVC开发实战之商城系统(开篇)

在编程方面&#xff0c;从来都是实践出真知&#xff0c;书读百遍其义自见&#xff0c;所以实战是最好的提升自己编程能力的方式。 前一段时间&#xff0c;写了一些实战系列文章&#xff0c;如&#xff1a; ASP.NET MVC开发学生信息管理系统VueAntdvAsp.net WebApi开发学生信息…

R语言的水文、水环境模型优化技术及快速率定方法与多模型案例实践

在水利、环境、生态、机械以及航天等领域中&#xff0c;数学模型已经成为一种常用的技术手段。同时&#xff0c;为了提高模型的性能&#xff0c;减小模型误用带来的风险&#xff1b;模型的优化技术也被广泛用于模型的使用过程。模型参数的快速优化技术不但涉及到优化本身而且涉…

Python中的break和continue语句应用举例

Python中的break和continue语句应用举例 在进行Python编程时候&#xff0c;有时需要&#xff0c;对循环中断或跳过某部分语句&#xff0c;此时常会用到break语句或continue语句。本文将通过实际例子阐述这两个语句的用法。 1.break语句 break语句是实现在某个地方中断循环&a…

Java设计模式之行为型-迭代器模式(UML类图+案例分析)

目录 一、基础概念 二、UML类图 三、角色设计 四、案例分析 五、总结 一、基础概念 迭代器模式是一种常用的设计模式&#xff0c;它主要用于遍历集合对象&#xff0c;提供一种方法顺序访问一个聚合对象中的各个元素&#xff0c;而又不暴露该对象的内部表示。 举个简单的…

5分钟给你破解这套10万赞的生产教程,访谈乔布斯的AI对话数字人视频是怎么做的

本期是赤辰第16期AI项目拆解栏目&#xff1b; 底部准备了7月粉丝福利&#xff0c;看完可以领取&#xff1b; 上周给粉丝们讲解AI动图说话月涨粉20万的案例并给出保姆式教程&#xff0c;粉丝反馈很热烈&#xff0c;都觉得AI强大&#xff0c;有些学员给自己账号做视频&#xff…

大数据与视频技术的融合趋势将带来怎样的场景应用?

视频技术和AI技术的融合是一种新兴的技术趋势&#xff0c;它将改变视频行业的运作方式。视频技术和AI技术的融合主要包括以下几个方面&#xff1a; 1&#xff09;人脸识别技术 人脸识别技术是AI技术的一个重要应用场景。它可以通过对视频中的人脸进行识别和分析&#xff0c;实…

3.9 Bootstrap 分页

文章目录 Bootstrap 分页分页&#xff08;Pagination&#xff09;默认的分页分页的状态分页的大小 翻页&#xff08;Pager&#xff09;默认的翻页对齐的链接翻页的状态 分页 Bootstrap 分页 本章将讲解 Bootstrap 支持的分页特性。分页&#xff08;Pagination&#xff09;&…

Unity平台如何实现RTSP转RTMP推送?

技术背景 Unity平台下&#xff0c;RTSP、RTMP播放和RTMP推送&#xff0c;甚至包括轻量级RTSP服务这块都不再赘述&#xff0c;今天探讨的一位开发者提到的问题&#xff0c;如果在Unity下&#xff0c;实现RTSP播放的同时&#xff0c;随时转RTMP推送出去&#xff1f; RTSP转RTMP…

浙大数据结构第四周之04-树6 Complete Binary Search Tree

题目详情&#xff1a; A Binary Search Tree (BST) is recursively defined as a binary tree which has the following properties: The left subtree of a node contains only nodes with keys less than the nodes key.The right subtree of a node contains only nodes w…

[javascript核心-08] V8 内存管理机制及性能优化

V8 内存管理 V8 本身也是程序&#xff0c;它本身也会申请内存&#xff0c;它申请的内存称为常驻内存&#xff0c;而它又将内存分为堆和栈 栈内存 栈内存介绍 栈用于存放JS 中的基本类型和引用类型指针栈空间是连续的&#xff0c;增加删除只需要移动指针&#xff0c;操作速度…

代码随香录day21

235. 二叉搜索树的最近公共祖先 本题思路&#xff1a; 还是要利用二叉搜索树的特性&#xff0c;中序遍历为有序数组。如果pq两个节点都小于root&#xff0c;那么最近公共祖肯定是在他的左子树&#xff0c;如果都大于那么&#xff0c;肯定就在右子树。然后直接return root 代码…

Linux Ubuntu安装RabbitMQ服务

文章目录 前言1.安装erlang 语言2.安装rabbitMQ3. 内网穿透3.1 安装cpolar内网穿透(支持一键自动安装脚本)3.2 创建HTTP隧道 4. 公网远程连接5.固定公网TCP地址5.1 保留一个固定的公网TCP端口地址5.2 配置固定公网TCP端口地址 前言 RabbitMQ是一个在 AMQP(高级消息队列协议)基…

【前端知识】React 基础巩固(二十七)——Fragment

React 基础巩固(二十七)——Fragment Fragment Fragment 允许将子列表分组&#xff0c;而无需向 DOM 添加额外节点可以采用语法糖<></>来替代 Fragment&#xff0c;但在需要添加 key 的场景下不能使用此短语 import React, { PureComponent, Fragment } from &q…