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.mzph.cn/news/820349.shtml

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

相关文章

Java链式编程

一&#xff1a;链式编程 可以简化编程。代码简洁。 定义&#xff1a; 链式编程&#xff1a;顾名思义&#xff0c;链子嘛。它是一种编程范式&#xff0c;它允许将多个函数或操作连接在一起&#xff0c;形成一个链条&#xff0c;以执行复杂的操作。 优点&#xff1a; 编程性…

【Gradio】Could not create share link

【Gradio】Could not create share link 写在最前面在服务器端一直运行一个Python脚本解决&#xff1a;下载frpc_linux_amd64文件&#xff0c;并添加权限原理 完整过程&#xff1a;先找gradio库位置&#xff0c;然后发现缺失文件1. 打开终端2. 使用 find 命令查找 gradio 目录3…

vue学习日记22:非父子通信(拓展)-provideinject

一、概念 二、实践 代码 App <template><div class"app">我是APP组件<button click"change">修改数据</button><SonA></SonA><SonB></SonB></div> </template><script> import SonA …

Java SDK 使用示例

我们使用同样的 Maven 模板去创建 use-test-sdk 项目&#xff0c;不同的是&#xff0c;我们需要在 use-tset-sdk 下创建一个 lib 文件夹&#xff0c;用来存放 test-sdk.jar 文件。 我们将 test-sdk.jar 拖放到 use-test-sdk/lib 下&#xff0c;然后我们就可以编写代码了&#…

每日OJ题_BFS解决最短路④_力扣675. 为高尔夫比赛砍树

目录 力扣675. 为高尔夫比赛砍树 解析代码 力扣675. 为高尔夫比赛砍树 675. 为高尔夫比赛砍树 难度 困难 你被请来给一个要举办高尔夫比赛的树林砍树。树林由一个 m x n 的矩阵表示&#xff0c; 在这个矩阵中&#xff1a; 0 表示障碍&#xff0c;无法触碰1 表示地面&…

知道XRD标准品PDF卡片号,如何直接导出标准物质数据,简单快速一分钟完成(附jade下载安装方法)

知道XRD标准品PDF卡片号&#xff0c;如何直接导出标准物质数据&#xff08;附jade下载安装方法&#xff09; 网上找到的方法都是先检索再导出&#xff0c;我的样品根本检索不到&#xff0c;但是根据参考文献知道了自己的pdf卡片号&#xff0c;可通过jade直接导出数据 1.请安装…

【Linux】磁盘扩容到根目录逻辑卷(LVM)

目录 一、物理卷和逻辑卷 1.物理卷和逻辑卷的区别 2.在Linux系统中查看所有物理卷的信息 3.在Linux系统中查看所有逻辑卷的信息 二、文件系统 三、实操-对root&#xff08;/&#xff09;目录进行扩容 1.使用lsblk命令查看新加入的磁盘信息 2.fdisk -l命令查看系统中磁盘…

git报错

这里写自定义目录标题 git报错Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. 有一个原因就是在github上设置对应密钥时&#xff0c;有一个key获取应该设置为…

【Redis 神秘大陆】005 常见性能优化方式

五、Redis 性能优化 5.1 系统层面的优化 https://github.com/sohutv/cachecloud/blob/main/redis-ecs/script/cachecloud-init.sh initConfig() {# 支持虚拟内存分配sysctl vm.overcommit_memory1# 最大排队连接数设置为 511&#xff0c;一般默认是 128echo 511 >/proc/sy…

男生穿什么裤子最百搭?适合男生穿的裤子品牌测评分享

每个伙伴们想必经常都会选择一些裤子&#xff0c;但现在市面上的裤子品牌也实在太多了&#xff0c;好不容易选到了几件好看的裤子&#xff0c;结果质量却很不好。主要就是因为现在有太多商家为了利润而使用一些舒适性、质量差的面料&#xff0c;那么今天就给大家分享一些质量上…

引导和服务(2)

服务 1.systemd服务的简要介绍 &#xff08;1&#xff09;对比5 6 可以解决依赖关系并行启动 &#xff08;2&#xff09;按需启动 &#xff08;3&#xff09;自动解决依赖关系 负责在系统启动或运行时&#xff0c;激活系统资源&#xff0c;服务器进程和其它进程 2.System…

操作系统(第五周 第一二堂总结)

目录 回顾 前景知识 概述 定义 进程和线程的关系 进程和线程的区别 线程优缺点 优点&#xff1a; 缺点&#xff1a; 易混概念 线程实现方式 线程的类型&#xff1a; ​编辑 多线程模型&#xff1a; 线程函数 头文件&#xff1a; 线程创建函数&#xff1a; 线…

vscode i18n Ally插件配置项

.vscode文件&#xff1a; {"i18n-ally.localesPaths": ["src/lang"], //显示语言&#xff0c; 这里也可以设置显示英文为en,// 如下须要手动配置"i18n-ally.keystyle": "nested", // 翻译路径格式 (翻译后变量格式 nested&#xff1a…

氟化钡与盐酸反应不

结论&#xff1a;反应 氟化钡 名称   中文名称&#xff1a;氟化钡   英文别名&#xff1a;Bariumfluoride 化学式   BaF2 相对分子质量   175.32 性状   无色透明立方结晶或白色粉末。溶于盐酸、硝酸、氢氟酸和氯化铵溶液&#xff0c;微溶于水。 相对密度4.83。 熔…

MongoDB 使用

1 引用依赖包 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-mongodb</artifactId></dependency>2 配置文件配置mongodb资料 # MongoDB连接信息 spring.data.mongodb.host 192.168.23.…

(二)使用VS2022克隆下载C++自制植物大战僵尸游戏教程

植物大战僵尸游戏开发教程专栏地址http://t.csdnimg.cn/uzrnw 本文将介绍如何使用VS2022克隆下载《植物大战僵尸C自制版本》。 Gitee项目地址&#xff1a; Gitee仓库地址https://gitee.com/GITLZ/PlantsVsZombies Github项目地址&#xff1a; Github仓库地址https://github…

【JS】querySelectorAll和getElementsByClassName

现有一段代码&#xff0c;li的类名均为item&#xff0c;有一按钮可动态添加类名为item的li。 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge…

【C++从练气到飞升】07---内存管理

&#x1f388;个人主页&#xff1a;库库的里昂 ✨收录专栏&#xff1a;C从练气到飞升 &#x1f389;鸟欲高飞先振翅&#xff0c;人求上进先读书。 目录 一、 C/C内存分布 二、 C语言中动态内存管理方式 三、 C中动态内存管理 1. new/delete操作内置类型 2. new和delete操作…

前端二维码工具小程序:营销裂变的好助手

一、摘要 在数字化营销日益盛行的今天&#xff0c;如何以新颖、高效的方式吸引用户&#xff0c;成为了每一个营销者所追求的目标。前端二维码工具小程序&#xff0c;作为一款集二维码生成、AI助手与绘图画画功能于一体的综合性工具&#xff0c;不仅为营销人员提供了全新的思路…

0101tomcat部署war访问mysql失败-容器间通信-docker项目部署

文章目录 一、简介二、部署1、mysql数据迁移2、docker部署redis3、docker部署tomcat并运行war包 三、报错四、解决1 分析2 解决 结语 一、简介 最近参与开发一个项目&#xff0c;其中一部分系统需要迁移。从阿里云迁移到实体服务器&#xff0c;使用docker部署。系统使用Java语…