docker容器技术

news2025/1/8 14:06:13

什么是docker

Docker 使用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux 内核的 cgroup,namespace,以及 OverlayFS 类的 Union FS 等技术,对进程进行封装隔离,属于 操作系统层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。最初实现是基于 LXC,从 0.7 版本以后开始去除 LXC,转而使用自行开发的 libcontainer,从 1.11 版本开始,则进一步演进为使用 runC 和 containerd。

简单来说就是,用golang语言开发的一项基于linux的lxc技术的容器管理软件

docker结构

在这里插入图片描述

Docker本身架构
在这里插入图片描述

发展历史

物理机->虚拟机->虚拟机容器技术(LXC,linux container)->docker为代表的容器管理技术。

linux本身是支持lxc的,用于资源隔离(基于namespace + cgroup)

相比虚拟机,容器更加轻量级

在这里插入图片描述

容器

linux本身是支持lxc的,用于资源隔离(基于namespace + cgroup) 容器和其他传统的环境相比
在这里插入图片描述

容器的作用

运行镜像,可以直接多外提供服务

  1. 隔离进程,隔离资源
  2. 限制资源
  3. 直接和硬件对接,无虚拟机格外的消耗

相关概念

1. 镜像

打包了代码和运行环境的包,是静态文件,不能直接对外提供服务

2. 容器
3. 仓库
  1. 公有仓-docker registry
  2. 私有仓(企业)-harbor

docker使用

1. 创建一个容器运行一个镜像

docker run xxx[nginx,mysql] [-d]

它表示如下

  1. 下载镜像,如果不存在的话
  2. 初始化容器,分配隔离资源,如访问ip等
2. 如何进入docker下的某个容器

docker exec [-ti] docker-case sh

3. 如何删除容器

docker rm -f [container name]
或者
docker rm [conatiner id]

4. 宿主机如何访问容器

docker run --name xxxx -d -p [宿主机port]:[容器port] image-name

比如:

docker run --name my-ubuntu-nginx -d -p 8080:80 asx-nginx:ubunt

让后执行curl localhost:容器端口就好了,可以通过公网访问了

5. 拉镜像

docker pull image@tag
比如
docker pull ubuntu@latest

5. 构建对象

docker build [.](当前路径)[-t] image-name:tage [-f] dockerfile-name

dockerfile-name是一些列docker可识别的脚本文件,比如

docker build . -t asx-nginx:ubunt -f Dockerfile

镜像的相关操作

镜像的操作和流程图如下
在这里插入图片描述

相关命令
1. 删除镜像

docker rmi [image-name]

1. 删除镜像

docker rmi [image-name]

2. 导出镜像到文件
docker save -o file-name.file_type image@tag

比如
docker save -o nginx.tar nginx:latest

3. 从文件中导入镜像
docker load -i file-name.file_type

比如docker load -i nginx-ubuntu.tar

仓库的相关操作

仓库分为本地仓库和公共仓库,通常是使用公共仓库,除非建立自己的仓库

1. 建立私有仓
docker run -d -p 5000:5000 --restart always --name registry registry:2
2. 推送image
  1. tag image 的仓库地址为本地仓
 docker tag ubuntu localhost:5000/ubuntu
  1. push tag后的image
docker push localhost:5000/ubuntu
3. 下载image
docker pull localhost:5000/ubuntu
4. 容器数据持久化
  1. 挂机主机目录
docker run --name xxx -d -v /var/log:/var/log nginx:alpine
docker run --name mysql -e MYSQL_ROOT_PASSWORD=123456  -d -v  /opt/mysql/:/var/lib/mysql mysql:5.7
  1. 使用valomue卷
docker  volume ls 
docker  volume create vol-name
docker run --name xxx -d -v vol-name:/var/log:vol-name/var/log nginx:alpine

访问case: curl -x http://[localhost|public-ip]:port/v2/ubuntu/tags/list 访问

5. 查看私有仓的images

容器和宿主机的交互

  1. 文件容器->宿主机
docker  cp[operate] file container-name/path

case

docker cp /tmp/test.txt nginx:/tmp

2.容器->宿主机

docker cp container-name/filepath  server/path

case

docker cp nginx:/tmp/file.txt ./tmp

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

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

相关文章

PCL学习三:KD-Tree Octree

参考引用 Point Cloud Library黑马机器人 | PCL-3D点云【量化课堂】KD-Tree系列KD-Tree原理详解 1. 引言 通过激光雷达或双目相机获取到的点云,一般数据量较大且分布不均匀,数据主要表征了目标物表面的大量点的集合,这些离散的点如果希望实现…

七彩虹DDR5主板四根开启XMP教程

七彩虹的D5主板,通常在安装8G2、16G2的情况下是可以正常开启XMP的, 但在16G4、32G2的情况下机会出现XMP超频失败或蓝屏问题 这是由于BIOS优化不足造成的 第一步还是开启XMP,也可以在选择XMP后,切换到用户自定义模式&#xff0c…

Flutter 与第三方 Native-SDK 的交互代理方案

场景 在使用 Flutter 进行功能模块或者整体项目的开发时,如果需要(阶段性)频繁地和某个第三方 Native-SDK 进行交互,而该 Native-SDK 没有实现 Flutter 插件版本的情况下,如果直接把这部分交互 API 加入到原有的 chan…

最优化方法Python计算:一元函数搜索算法——二分法

设一元目标函数 f ( x ) f(x) f(x)在区间 [ a 0 , b 0 ] ⊆ R [a_0,b_0]\subseteq\text{R} [a0​,b0​]⊆R(其长度记为 λ \lambda λ)上为单峰函数,且在 ( a 0 , b 0 ) (a_0,b_0) (a0​,b0​)内连续可导,即其导函数 f ′ ( x ) f…

TinyJAMBU的制动原理——一种轻量化的认证密码

关于TinyJAMBU的定义和介绍在另一篇博文已经介绍过了,这里只对其动作原理进行描述和说明。 对应的博文链接如下:TinyJAMBU:一种轻量化密码介绍 首先,该密码是一个流密码体系的块密码框架。其加密模式整体上来看是块密码&#xff0…

P4903 心碎

这是一道洛谷里的题目 难度级别:普及/提高- 题目提供者:大神cyd 题目背景 NOIP2015初赛。CYD大神在他的母校跪掉了。初赛那天,他回到原来的教室参观了一下,发现那张遍布了N个洞的课桌还摆在那里——那是他初中时和XHY同学坐过…

优思学院|8D和DMAIC两种方法应如何选择?

在现代的商业环境中,客户投诉是一个非常常见的问题。当客户不满意产品或服务时,他们往往会向企业发出投诉。质量管理部门是一个负责处理这些投诉的重要部门,因为它们需要确保产品和服务的质量满足客户的期望。改善方法是质量管理部门用来解决…

作为一名程序员,如何写出一手让同事膜拜的漂亮代码?

整洁的代码 有意义的命名 函数命名 变量命名 函数的定义 注释的规范 代码的长度 代码的对齐 我写代码已经有好几年了,最近看了一本书叫做《代码整洁之道》。我发现这本书中介绍的一些内容对我来说非常有启发性。书中提到的一些方法和技巧让我重新审视了自己的…

疑难问题定位案例复盘(三)

今天我们分享一个数据库被异常改写的案例,通过该案例我们可以学习总结出常规的文件被改写问题定位思路。 问题现象 1、测试环境在进行特定压力测试时发现页面登陆异常,且调试日志多个进程持续打印“数据库打开失败”日志。 2、测试环境在进行多个压力测…

Unity教程||Unity添加中文字体||Unity知识记录--制作UI粒子特效

Unity添加中文字体 ## 1、拷贝字体文件 拷贝C:\Windows\Fonts文件夹下,华文细黑常规文件到项目中 ## 2、下载中文字库 链接: https://pan.baidu.com/s/1KW31KB5vEImZHUWvQ9PLEQ 提取码: bgug 3、添加字体字库 选择Window->TextMeshPro->Font Asset Crea…

HTML的基础语法

文章目录 前言一.HTML结构1.1 什么是html语言1.2 html的结构是什么 二.HTML常见标签2.1 文本格式标签标题标签段落标签换行标签格式化标签图片标签超链接标签 2.2 表格标签2.3 表单标签from标签input标签文本框密码框单选框复选框普通按钮提交按钮清空按钮选择文件select标签te…

延迟队列与SpringBoot实战

延迟队列与SpringBoot实战 概念 延时队列,队列内部是有序的,最重要的特性就体现在它的延时属性上,延时队列中的元素是希望在指定时间到了以后或之前取出和处理,简单来说,延时队列就是用来存放需要在指定时间被处理的元素的队列 …

基于jQuery------购物车案例

目录 基于jQuery------购物车案例 案例:购物车案例模块-增减商品数量分析 案例:购物车案例模块-修改商品小计分析 案例:购物车案例模块-计算总计和总额 案例:购物车案例模块-删除商品模块 案例:购物车案例模块-选…

从‘discover.partitions‘=‘true‘分析Hive的TBLPROPERTIES

从’discover.partitions’true’分析Hive的TBLPROPERTIES 前言 Hive3.1.2先建表: show databases ;use db_lzy;show tables ;create external table if not exists test_external_20230502(id int,comment1 string,comment2 string ) stored as parquet ;creat…

C语言通过控制台命令行传入参数

Linux 与 windows运行c语言程序 切换到对应目录下 1. gcc hello.c -o hello 2.Linux: ./hello Windows: hello.exe int main(){}默认无参数 但在一些情况下想要直接通过在上述过程中第二步就传入参数而不是使用scanf..之类的输入语句就需要使用有参数的main方法: int main() {…

Docker--harbor私有库部署与管理

目录 一、本地私有仓库 搭建本地私有仓库 Docker容器的重启策略 二、Harbor 1、什么是Harbor 2、Harbor特性 3、Harbor的构成 三、Harbor部署 实验步骤 1、安装Docker-Compose服务 2、部署Harbor服务 1、下载或上传Harbor安装程序 2、修改Harbor安装的配置文件 3、…

基于TI板MSP430 玩转PID

文章目录 前言一、整体框架二、PID算法1. 位置式PID2. 增量式PID3. 比例外置式PID4. 积分限幅、输出限幅和PID参数整定5. 位置式PID和增量式PID的区别及抉择 三、初值获取1. 定时器输入捕获2. 外部中断3. ADC采样 前言 具体啥是PID,我这里不做介绍,网上…

SpringMVC(后)SSM整合

10、文件上传和下载 10.1、文件下载 ResponseEntity用于控制器方法的返回值类型&#xff0c;该控制器方法的返回值就是响应到浏览器的响应报文 使用ResponseEntity实现下载文件的功能 RequestMapping("/testDown") public ResponseEntity<byte[]> testResp…

【Hello Algorithm】复杂度 二分法

作者&#xff1a;小萌新 专栏&#xff1a;算法 作者简介&#xff1a;大二学生 希望能和大家一起进步 本篇博客简介&#xff1a;介绍算法的复杂度 对数器和二分法 复杂度 对数器 二分法 复杂度常数时间操作非常数时间操作时间复杂度空间复杂度 二分法有序数组中找一个值寻找有序…

树的存储和遍历

文章目录 6.5 树与森林6.5.1 树的存储结构1. 双亲表示法(顺序存储结构)2 孩子链表表示法3 孩子兄弟表示法(二叉树表示法) 6.5.2 森林与二叉树的转换1 树转换成二叉树2 二叉树转换成树3 森林转换成二叉树4 二叉树转换成森林 6.5.3 树和森林的遍历1. 树的遍历2. 森林的遍历 6.6 赫…