Day01-环境准备与镜像案例

Day01-环境准备与镜像案例

  • 1. 容器架构
    • 1.1 Iaas Paas Saas (了解)
    • 1.2 什么是容器
    • 1.3 容器vs虚拟机
    • 1.4 Docker极速上手指南
      • 1)配置docker源(用于安装docker)
      • 2)docker下载镜像加速的配置
      • 3)自动补全
    • 1.5 Docker C/S架构
    • 1.6 Docker的镜像管理
      • 1)案例01:下载nginx:alpine镜像并查看
      • 2)案例02:sl大法
      • 3)案例03:删除镜像
      • 4)案例04:镜像清理用的命令
      • 5)案例05:给镜像设置标签
      • 6)案例06:查看镜像详细信息
      • 7)案例07:自定义镜像
      • 8)小结
  • 今日总结

1. 容器架构

1.1 Iaas Paas Saas (了解)

  • Iaas:基础设施即服务 Infrastructure-as-a-Service

  • Paas:平台即服务 Platform-as-a-Service

  • Saas:软件即服务 Software-as-a-Service

  • Caas:容器即服务 介于IAAS和PAAS

  • IAAS,PAAS,SAAS这些服务,用于帮助人们更快实现目标(搭建环境,使用产品)

  • 从左到右,人们需要管理与维护的地方越来越少,人们可以把重点关注在使用/应用上

  • IAAS平台:基础设施,阿里云,云厂商

  • PAAS平台:服务/运行环境是ok,公有云,负载均衡SLB

  • SAAS平台:服务已经准备好,您直接用,具体产品,processon,wps,亿图

在这里插入图片描述

  • 严格模式
    在这里插入图片描述

  • 小结:

  • 了解Iaas,Paas,Saas含义

1.2 什么是容器

  • 容器是隔离的环境中运行的一个进程,如果进程结束,容器就会停止
  • 容器的隔离环境,拥有自己的ip地址,系统文件,主机名,进程管理,相当于一个mini的系统

1.3 容器vs虚拟机

虚拟机容器
优点1、使用简单
2、也有成熟管理工具,vmware esxi,KVM,Openstack
3、可以随意定制
4、启动虚拟机要经历完整的Linux启动流程
1、快速部署(扩容,弹性伸缩)
2、大部分环境都有现成镜像
3、让我们不再关注系统基础设施,把关注点放在配置,升级,优化
4、不依赖硬件
5、启动容器秒级
6、相当于一个进程
缺点1、需要硬件支持虚拟化技术(VT-X)
2、资源利用率不高
3、同一台虚拟跑多个服务,可能有冲突
4、占用资源较多
5、不满足目前升级,快速扩容,快速部署,回滚不方便
1、使用较为复杂
2、共享linux系统内核,推荐使用较新linux内核

在这里插入图片描述

1.4 Docker极速上手指南

Linux内核: 3.10以上. 如果旧的内核需要升级内核才能使用

  • 安装docker环境,docker-ce(开源) docker-ee(企业版)

  • 从1.13开始改成年-月版本命名方式.

  • 使用20.10版本

docker环境ip配置
docker01.oldboylinux.cn10.0.0.81/172.16.1.812c4G(至少1c2G)
docker02.oldboylinux.cn10.0.0.82/172.16.1.822c4G(至少1c2G)

1)配置docker源(用于安装docker)

#1.安装相关依赖.
yum install -y yum-utils device-mapper-persistent-data lvm2
#2.下载官方的docker yum源文件
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
#3.替换yum源地址
sed -i 's+download.docker.com+mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo
#4.安装docker-ce
yum install -y docker-ce
systemctl enable --now docker
#5.检查
docker version
  • docker下载镜像加速

    阿里云,腾讯云有加速用的地址

  • 阿里云为例,说明如何获取加速用的地址

在这里插入图片描述

在这里插入图片描述

2)docker下载镜像加速的配置

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://o0ot3ltv.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

3)自动补全

yum install -y bash-completion bash-completion-extras

1.5 Docker C/S架构

  • cs client/server 客户端/服务端
  • Docker服务端:docker daemon 叫dockerd
  • Docker客户端:docker命令(下载镜像,运行容器…)
docker相关词汇说明
镜像存放各种的环境或服务
容器进程,运行起来的镜像
仓库(存放镜像)远程仓库,本地仓库

在这里插入图片描述

  • docker pull nginx 下载nginx镜像到本地仓库

    • 如果本地仓库有则提示镜像已经下载
    • 如果本地出仓库没有,则docker服务端访问远程仓库,下载镜像
  • docker run -d -p 80:80 nginx 启动容器

    • -d容器后台运行
    • -p端口映射
    • nginx镜像名字
docker run -d -p 80:80 nginx
docker run -d -p 80:80 --name "oldboy_first_docker_nginx" nginx:alpine
# docker客户端找dockerd服务端,问是否有nginx镜像
# 如果有,则启动这个镜像,后台运行,访问容器端口是80端口.
# 如果没有,则从远程仓库下载镜像,启动这个镜像,后台运行,访问容器端口是80端口.#1. 提示你本地没有nginx镜像 nginx:latest最新版
Unable to find image 'nginx:latest' locally
#2. 找远程仓库下载
latest: Pulling from library/nginx
a2abf6c4d29d: Pull complete
a9edb18cadd1: Pull complete
589b7251471a: Pull complete
186b1aaa4aa6: Pull complete
b4df32aa5a72: Pull complete
a0bcbecc962e: Pull complete
#3. 运行镜像,成为docker容器.
Digest: sha256:0d17b565c37bcbd895e9d92315a05c1c3c9a29f762b011a10c54a66cd53c9b31
Status: Downloaded newer image for nginx:latest
9020c66ace48effa904063f84c664535b8cc3aa2b95535df438c9f2f4952cc35
#4.查看镜像
docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
nginx       latest   605c77e624dd   4 months ago   141MB
#5.查看容器
docker ps
#6. 访问10.0.0.81:80 --->容器的80端口
# 或者hosts文件做解析,使用域名访问

在这里插入图片描述

注意事项: 此处使用到了docker -p端口映射公共,需要使用iptables的nat功能,需要开启系统的内核转发功能

[root@docker01.oldboylinux.cn ~]# tail -1 /etc/sysctl.conf
net.ipv4.ip_forward = 1
[root@docker01.oldboylinux.cn ~]# sysctl -p
net.ipv4.ip_forward = 1

1.6 Docker的镜像管理

镜像管理核心指令:

docker命令指定功能详细功能
dockerimagels
docker images  ===  docker image lsdocker search 搜索镜像, 优先选官方,stars数量多
docker pull   拉取镜像(下载镜像),注意版本
docker push   推送镜像(上传镜像)
docker load   导入镜像例子: docker load  -i docker_nginx.tar.gz
docker save   导出镜像例子:docker save centos:7 -o 
docker_centos7.tar.gz
docker images   查看镜像列表
docker rmi     删除镜像
docker tag     给镜像打标签

1)案例01:下载nginx:alpine镜像并查看

#1.
docker pull #下载镜像
docker pull nginx:1.22-alpine 
#2.
docker image ls #简写为docker images查看镜像
#查找镜像:
docker search 
访问hub.docker.com
  • 镜像命名:
#指定版本
只写服务名字一般下载服务的最新版本.
nginx 下载ngx最新版本 nginx:latest
下载ngx最新稳定的版本  nginx:stable 
下载指定的版本         nginx:1.20.2 
#指定系统
nginx镜像默认的系统是Debian系统
docker pull nginx:1.20.2-alpine 使用alpine系统更加节约空间
docker镜像使用的系统
ubuntu都可以做镜像的系统
debian都可以做镜像的系统. bullseye ,bluster
centos都可以做镜像的系统最大
alpine镜像非常小(命令,依赖精简) linux内核+busybox
  • 待讲解docker push 一般用于上传镜像hub.docker.com,未来主要用于自建docker镜像仓库

2)案例02:sl大法

  • 保存docker镜像(save),其他节点上导入(load)

  • 未来也可以搭建镜像仓库

docker image save   #docker save 
docker image load   #docker load #1.1g个节点保存docker 镜像 -o输出到指定的文件.
docker save nginx:alpine -o nginx_alpine.tar#2. 导入load 
docker load -i nginx_alpine.tar
  • 批量导出镜像
docker images |awk 'NR>1{print "docker save",$1":"$2,"-o",$1"_"$2".tar"}'
最后通过|bash运行可以书写批量导出docker镜像脚本

3)案例03:删除镜像

  • 条件:镜像不能在使用中(没有基于这个镜像的容器)
docker image rm  ===  docker rmi
删除镜像

4)案例04:镜像清理用的命令

  • 用于清理一些临时镜像,未来我们自定义镜像的时候会有
docker image prune
docker images -a #可以查看系统中所有镜像,包含隐藏镜像

5)案例05:给镜像设置标签

  • 给镜像设置一个新的名字
  • 应用场景:
    • 自定义镜像
    • 搭建与使用内部镜像仓库.registry
[root@docker01.oldboylinux.cn ~]# docker images 
REPOSITORY   TAG           IMAGE ID       CREATED         SIZE
nginx        1.22-alpine   652309d09131   2 weeks ago     23.5MB
nginx        alpine        cc44224bfe20   14 months ago   23.5MB
nginx        latest        605c77e624dd   14 months ago   141MB
centos       latest        5d0da3dc9764   17 months ago   231MB[root@docker01.oldboylinux.cn ~]# docker tag nginx:1.22-alpine nginx:1.22-alpine-oldboy 
[root@docker01.oldboylinux.cn ~]# docker images 
REPOSITORY   TAG                  IMAGE ID       CREATED        SIZE
nginx        1.22-alpine          652309d09131   2weeks ago     23.5MB
nginx        1.22-alpine-oldboy   652309d09131   2weeks ago     23.5MB
nginx        alpine               cc44224bfe20   14months ago   23.5MB
nginx        latest               605c77e624dd   14months ago   141MB
centos       latest               5d0da3dc9764   17months ago   231MB

6)案例06:查看镜像详细信息

  • 做镜像巡检的时候使用
docker 家目录     /var/lib/docker/ #查看 nginx:alpine镜像的信息,输出的是json格式. 
docker image inspect nginx:alpine

7)案例07:自定义镜像

未来讲解dockerfile再说

docker image build == docker build 

8)小结

  • docker pull/ docker images #docker push 未来再说
  • docker save/load
  • docker rmi/image prune
  • docker tag
  • docker image inspect
  • docker build #未来自定义镜像

今日总结

  • 容器vs虚拟机
  • docker rpm在手,天下我有
  • docker cs架构
  • docker 镜像管理与案例

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

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

相关文章

每日练习——leetcode402. 移掉 K 位数字和17. 电话号码的字母组合

目录 402. 移掉 K 位数字 题目描述 解题思路 代码实现 17. 电话号码的字母组合 题目描述 解题思路 代码实现 402. 移掉 K 位数字 题目描述 给你一个以字符串表示的非负整数 num 和一个整数 k &#xff0c;移除这个数中的 k 位数字&#xff0c;使得剩下的数字最小。请…

为了保护版权,有大量图片需要加logo水印怎么办?快速批量加水印 一键可批量加水印几十张 几百张

一&#xff0c;加水印必要性 在数字化时代&#xff0c;图片作为信息传递的重要媒介&#xff0c;其保护和管理显得尤为重要。而给图片添加水印则是一种有效的方式&#xff0c;它不仅能够防止图片被未经授权地复制和盗用&#xff0c;还能够标明图片的来源和版权信息&#xff0c;…

【Spring】依赖注入(DI)时常用的注解@Autowired和@Value

目录 1、Autowired 自动装配 1.1、要实现自动装配不是一定要使用Autowired 1.2、Autowired的特性 &#xff08;1&#xff09;首先会根据类型去spring容器中找(bytype),如果有多个类型&#xff0c;会根据名字再去spring容器中找(byname) &#xff08;2&#xff09;如果根据名…

springcloud-fegin 组件调用

一、Feign 概述 Feign是Netflix开发的声明式、模板化的HTTP客户端&#xff0c; Feign可以帮助我们更快捷、优雅地调用HTTP API。 在Spring Cloud中&#xff0c;使用Feign非常简单——创建一个接口&#xff0c;并在接口上添加一些注解&#xff0c;代码就完成了。Feign支持多种…

llama-factory SFT系列教程 (二),大模型在自定义数据集 lora 训练与部署

文章目录 简介支持的模型列表2. 添加自定义数据集3. lora 微调4. 大模型 lora 权重&#xff0c;部署问题 参考资料 简介 文章列表&#xff1a; llama-factory SFT系列教程 (一)&#xff0c;大模型 API 部署与使用llama-factory SFT系列教程 (二)&#xff0c;大模型在自定义数…

Day01——NestJS学习之了解、安装、运行

什么是 Nest.js&#xff1f; NestJs 官方简介: Nest (NestJS) 是一个用于构建高效、可扩展的 Node.js 服务器端应用程序的开发框架。它利用 JavaScript 的渐进增强的能力&#xff0c;使用并完全支持 TypeScript &#xff08;仍然允许开发者使用纯 JavaScript 进行开发&#x…

leetcode:739.每日温度/496.下一个更大元素

单调栈的应用&#xff1a; 求解当前元素右边比该元素大的第一个元素&#xff08;左右、大小都可以&#xff09;。 单调栈的构成&#xff1a; 单调栈里存储数组的下标&#xff1b; 单调栈里的元素递增&#xff0c;求解当前元素右边比该元素大的第一个元素&#xff1b;元素递…

【Java开发指南 | 第六篇】Java成员变量(实例变量)、 类变量(静态变量)

读者可订阅专栏&#xff1a;Java开发指南 |【CSDN秋说】 文章目录 成员变量&#xff08;实例变量&#xff09;类变量&#xff08;静态变量&#xff09;定义方式静态变量的使用场景 成员变量&#xff08;实例变量&#xff09; 成员变量声明在一个类中&#xff0c;但在方法、构造…

【opencv】示例-videocapture_openni.cpp 深度数据获取和处理的示例

该代码是一个与使用OpenCV进行深度传感器捕获和处理相关的程序的一部分。主要功能包括处理Kinect或XtionPRO等深度传感器数据&#xff0c;解析命令行参数&#xff0c;打开视频捕获设备&#xff0c;以及在GUI上显示深度图&#xff0c;彩色图像&#xff0c;和红外图像等。代码中使…

linux 自定义快捷指令(docker

vi /root/.bashrc alias disdocker images alias dpsdocker ps --format "table {{.ID}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}\t{{.Names}}" 保存退出后使用sourece /root/.bashrc 让其立即生效 sourece /root/.bashrc

byobu

byobu 终端多路复用器 一、byobu 安装二、byobu 使用三、其他终端多路复用器四、ssh byobu 远程协作 系统环境: linux(ubuntu,debian,kali) 一、byobu 安装 byobu 是包装过的tmux #sudo apt install tmux sudo apt install byobubyobu二、byobu 使用 创建窗口: Ctrl a c…

HashMap的扩容看这一篇足够

在Java中&#xff0c;对于HashMap这样的实现&#xff0c;put方法是用来将一个键值对插入到Map中的核心方法。以下是HashMap类中put方法的大致执行流程&#xff1a; 计算Hash值&#xff1a; 首先&#xff0c;put方法会接收一个键&#xff08;Key&#xff09;和一个值&#xff0…

攻防世界13-simple_php

13-simple_php <?php show_source(*__FILE__*);//高亮文件 include("config.php");//文件包含在内 $a$_GET[a];//获得a $b$_GET[b];//获得b if($a0 and $a){ //判断a是否满足条件echo $flag1; //满足就输出flag1 } if(is_numeric($b)){ //判断b的条件&#x…

Python | Leetcode Python题解之第26题删除有序数组中的重复项

题目&#xff1a; 题解&#xff1a; class Solution:def removeDuplicates(self, nums: List[int]) -> int:if not nums:return 0n len(nums)fast slow 1while fast < n:if nums[fast] ! nums[fast - 1]:nums[slow] nums[fast]slow 1fast 1return slow

Git可视化工具 - 推荐

概述 Git版本管理工具是我们日常开发中常用的工具&#xff0c;熟练使用它可以提高我们的工作效率。 当然老司机基本使用命令行的方式进行操作&#xff0c;新手可借助可视化工具来进行过渡&#xff0c;命令行与可视化工具结合使用来加深对Git的熟悉程度。 下面推荐两个较受欢迎…

MySQL 试图

视图功能在 5.0 以后的版本启用 视图是一张虚表。数据表确实包含了具体数据并且保存到硬盘中的实表。视图使用数据检索语句动态生 成的一张虚表。每一次数据服务重启或者系统重启之后&#xff0c;在数据库服务启动期间&#xff0c;会使用创建视图的语 句重新生成视图中的数据&…

BERT论文解读及情感分类实战

文章目录 简介BERT文章主要贡献BERT模型架构技术细节任务1 Masked LM&#xff08;MLM&#xff09;任务2 Next Sentence Prediction (NSP)模型输入 下游任务微调GLUE数据集SQuAD v1.1 和 v2.0NER 情感分类实战IMDB影评情感数据集数据集构建模型构建超参数设置训练结果注意事项 简…

学习Rust的第三天:猜谜游戏

基于Steve Klabnik的《The Rust Programming Language》一书。今天我们在rust中建立一个猜谜游戏。 Introduction 介绍 We will build a game that will pick a random number between 1 to 100 and the user has to guess the number on a correct guess the user wins. 我们将…

Nginx内存池相关源码剖析(六)外部资源释放和内存池销毁

ngx_destroy_pool函数 先执行回调函数释放所有的外部资源&#xff0c;然后free释放所有的大块内存和小块内存。 // 释放外部资源&#xff0c;销毁内存池 void ngx_destroy_pool(ngx_pool_t *pool) {ngx_pool_t *p, *n;ngx_pool_large_t *l;ngx_pool_cleanup_t *…

用海豚调度器定时调度从Kafka到HDFS的kettle任务脚本

在实际项目中&#xff0c;从Kafka到HDFS的数据是每天自动生成一个文件&#xff0c;按日期区分。而且Kafka在不断生产数据&#xff0c;因此看看kettle是不是需要时刻运行&#xff1f;能不能按照每日自动生成数据文件&#xff1f; 为了测试实际项目中的海豚定时调度从Kafka到HDF…