当前位置: 首页 > news >正文

网络安全 Day30-运维安全项目-容器架构上

容器架构上

  • 1. 什么是==容器==
  • 2. 容器 vs 虚拟机(化) :star::star:
  • 3. Docker极速上手指南
    • 1)使用rpm包安装docker
    • 2) docker下载镜像加速的配置
    • 3) 载入镜像大礼包(老师资料包中有)
  • 4. Docker使用案例
    • 1) 案例01::star::star::star::star::star:启动nginx:1.24镜像并通过宿主机8848端口访问
    • 2) 案例02: :star:docker run背后原理
    • 3) 案例03::star::star::star::star::star:查看容器
    • 4)案例04::star::star::star::star::star:删除容器
    • 5) 案例05:启动数据库容器
    • 6) 案例06: :star::star::star::star::star:进入运行中的容器
    • 7) 案例07: 容器的自启动
    • 8)案例08:查看镜像
    • 9) 案例09:拉取镜像
    • 10)案例10:删除镜像
    • 11)案例11:启动系统镜像
    • 12) 小结
  • 5. Docker初步自定义镜像
    • 1)启动ngx容器
    • 2) 连接到容器中
    • 3)进行测试
    • 4)保存镜像
    • 5)根据新的镜像创建容器并测试

1. 什么是容器

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

2. 容器 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内核.

3. Docker极速上手指南

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

  • 安装docker环境,docker-ce(开源) docker-ee(企业版)
docker环境ip配置
oldboy-docker10.0.0.62/172.16.1.622c4G(至少1c2G)

1)使用rpm包安装docker

  1. 解压oldboyedu_docker_24_rpms.tar.gz(老师资料包中):tar xf oldboyedu_docker_24_rpms.tar.gz

  2. 进入目录并安装rpm包

    cd docker_24_rpms/
    yum localinstall -y *.rpm 
    
  3. 检查是否安装成功

    rpm -qa |grep docker 
    docker-compose-plugin-2.19.1-1.el7.x86_64
    docker-ce-cli-24.0.4-1.el7.x86_64
    docker-buildx-plugin-0.11.1-1.el7.x86_64
    docker-ce-rootless-extras-24.0.4-1.el7.x86_64
    docker-ce-24.0.4-1.el7.x86_64
    
  • 【后面工作中可以用】配置docker源(用于安装docker)
#1.安装相关依赖.
sudo  yum install -y yum-utils#2.下载官方的docker yum源文件
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo#3.替换yum源地址
sed -i 's+https://download.docker.com+https://mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo#4.安装docker-ce
yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin#5.启动
systemctl enable --now  docker  #6.检查
docker version 检查 

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

我们使用docker的时候需要下载很多docker的镜像.为了加速下载,需要配置docker加速.

  • docker下载镜像加速

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

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. 创建目录:sudo mkdir -p /etc/docker
  2. 修改配置docker下载镜像的加速地址(/etc/docker/daemon.json docker服务端的配置文件.)
    sudo tee /etc/docker/daemon.json <<-'EOF'
    {"registry-mirrors": ["https://bjjtv7cs.mirror.aliyuncs.com"]
    }
    EOF
    
  3. 开机自启动与重启
    sudo systemctl daemon-reload
    sudo systemctl restart docker
    sudo systemctl enable  docker
    

3) 载入镜像大礼包(老师资料包中有)

#解压大礼包的oldboyedu_useful_docker_images_v2.tar.gz
tar xf oldboyedu_useful_docker_images_v2.tar.gz#批量导入
cd oldboyedu_useful_docker_images/
for n in `ls` ;
do docker load  -i $n
done 

4. Docker使用案例

1) 案例01:⭐️⭐️⭐️⭐️⭐️启动nginx:1.24镜像并通过宿主机8848端口访问

  • 使用本地已有的镜像(nginx:1.24),如果没有则从远程下载。
  • 运行镜像(进程,容器)
  • 设置访问的端口8848(宿主机)访问容器中的80端口。
  • 浏览器访问10.0.0.62:8848 访问容器的80端口。
docker run -d  -p 8848:80  --name nginx_v1   nginx:1.24 
6f34a5df3a4049423c18ca606bbd3ae05caca4b111804d7aee598c842bd3056dss -lntup|grep 8848 
tcp    LISTEN     0      128       *:8848                  *:*                   users:(("docker-proxy",pid=3680,fd=4))
tcp    LISTEN     0      128    [::]:8848               [::]:*                   users:(("docker-proxy",pid=3686,fd=4))
  • 浏览器访问:http://10.0.0.62:8848

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jTv7AeMH-1691892607336)(assets/image-20230811085033860.png)]

  • 命令与参数
    命令作用
    docker run运行容器
    -d后台运行
    – name指定名字,容器名字不能冲突。如果不指定就会随机分配名字
    - p端口映射 宿主机端口,指定用容器和宿主机的端口进行关联

2) 案例02: ⭐️docker run背后原理

在这里插入图片描述

3) 案例03:⭐️⭐️⭐️⭐️⭐️查看容器

docker ps    #只显示运行中的容器。docker ps -a #查看所有状态的容器关闭,退出,。。。。
  • 启动mysql:8.0-debian
#1 启动mysql 8.0容器 
docker run -d --name mysql_8.0  -p 13306:3306  mysql:8.0-debian 
7d2dc00806dd9ea73638c8ff49a333c408a50c0eab2435b424f5763a102f73ae#2 查看运行中容器,发现没有mysql-8.0容器 docker ps |grep mysql #3. 查看所有状态的容器 发现mysql-8.0是exit退出状态。
docker ps -a 

4)案例04:⭐️⭐️⭐️⭐️⭐️删除容器

docker rm    容器名字或id  #删除已经关闭,退出,非运行容器。
docker rm -f  #强制删除,删除运行中的容器。docker rm -f mysql_8.0

5) 案例05:启动数据库容器

  • 数据库容器需要额外的参数(变量)。
  • 需要通过-e参数设置MYSQL_ROOT_PASSWORD
#1. 启动数据库容器
docker run  -d -p 13306:3306   --name mysql_8.0_v2   -e  MYSQL_ROOT_PASSWORD=1    mysql:8.0-debian #2. 检查容器状态 
docker ps |grep mysql #3. 如果没有则通过ps -a 查看
docker ps -a |grep mysql 

6) 案例06: ⭐️⭐️⭐️⭐️⭐️进入运行中的容器

  • 温馨提示:进入到运行中的容器。
#连接进入mysql容器 
docker exec  -it  mysql_8.0_v2 /bin/bash#连接进入nginx容器
docker exec  -it  nginx_v1 /bin/bash
可以修改首页文件然后访问测试。

连接后可以执行:du -sh /cat /etc/os-release查看一些容器信息。

  • 小结:
    • 核心掌握如何进入运行中的容器。
    • exec
    • -it 交互模式分配终端(命令行)
    • /bin/bash进不去可以改为/bin/sh

7) 案例07: 容器的自启动

重启docker服务后容器都是退出状态(关闭)
通过docker start 一个一个启动容器。
docker start nginx_v3 docker run 的时候加上--restart=always,设置容器什么时候自动运行。
docker run -d -p 8850:80 --restart=always   --name nginx_v4   nginx:1.24
通过systemctl restart docker 测试

8)案例08:查看镜像

docker images  === docker image ls

9) 案例09:拉取镜像

  • 从镜像仓库中下载镜像。

docker pull nginx:alpinedocker images |grep nginx 
nginx        1.24          b6c621311b44   5 weeks ago     142MB
nginx        1.24-alpine   55ba84d7d539   8 weeks ago     41.1MB
nginx        alpine        cc44224bfe20   19 months ago   23.5MB
nginx        latest        605c77e624dd   19 months ago   141MB

10)案例10:删除镜像

docker rmi openjdk:10

注意要把名字和后边的数字连起来

11)案例11:启动系统镜像

#1.
docker run  -itd  --name centos_7_v1   centos:7 
#2.
docker ps |grep centos 

加上-it即可。

12) 小结

docker镜像操作指令
查看docker images
下载docker pull
删除docker rmi(如果镜像有对应的容器,则无法删除。
Docker容器操作指令参数
启动容器docker run-d -p –name --restart -e -itd
查看容器docker ps-a
删除容器docker rm-f
进入容器docker exec-it xxx /bin/bash或/bin/sh

5. Docker初步自定义镜像

目标:我们找到的镜像无法直接瞒足我们的需求。

解决:自定义镜像。

  • 任务目标:nginx镜像包含bird代码,小鸟飞飞代码,选择nginx:1.24。bird.zip

1)启动ngx容器

#1.启动
docker run -d  -p 8080:80  --name bird_v1    nginx:1.24#2.检查
docker ps |grep bird 

2) 连接到容器中

  • 窗口1:链接到容器中
    docker exec  -it  bird_v1 /bin/bash
    
  • 窗口2
    1. 发送bird目录下面的代码到容器中的站的目录 /usr/share/nginx/html/
      unzip bird.zip 
      cd bird/
      
  1. 上传,把宿主机中的文件上传到容器中:docker cp . bird_v1:/usr/share/nginx/html/
    #上传:docker cp 宿主机目录或文件 容器名:容器路径 ※※※※※
    #下载:docker cp 容器名:容器路径 宿主机目录或文件

3)进行测试

  • http://10.0.0.62:8080/
  • 测试成功表示:
    • nginx服务是ok.
    • nginx+代码也是ok.

4)保存镜像

  • 把已经的容器保存成镜像。
  1. 把容器保存成镜像
    1. 语法:docker commit 容器名字 分类:名字版本
    2. 保存:docker commit bird_v1 oldboydiy:lidao_bird_v1
  2. 检查是否有镜像:docker images |grep lidao

5)根据新的镜像创建容器并测试

docker run -d -p 8081:80    --name diy_bird_v1   oldboydiy:lidao_bird_v1

相关文章:

网络安全 Day30-运维安全项目-容器架构上

容器架构上 1. 什么是容器2. 容器 vs 虚拟机(化) :star::star:3. Docker极速上手指南1&#xff09;使用rpm包安装docker2) docker下载镜像加速的配置3) 载入镜像大礼包&#xff08;老师资料包中有&#xff09; 4. Docker使用案例1&#xff09; 案例01&#xff1a;:star::star::…...

深入理解设计模式-创建型之单例模式

为什么要使用单例 1、表示全局唯一 如果有些数据在系统中应该且只能保存一份&#xff0c;那就应该设计为单例类。 如&#xff1a;配置类&#xff1a;在系统中&#xff0c;我们只有一个配置文件&#xff0c;当配置文件被加载到内存之后&#xff0c;应该被映射为一个唯一的【配…...

Vue中路由缓存问题及解决方法

一.问题 Vue Router 允许你在你的应用中创建多个视图&#xff0c;并根据路由来动态切换这些视图。默认情况下&#xff0c;当你从一个路由切换到另一个路由时&#xff0c;Vue Router 会销毁前一个路由的组件实例并创建新的组件实例。然而&#xff0c;有时候你可能希望保持一些页…...

Linux与bash(基础内容一)

一、常见的linux命令&#xff1a; 1、文件&#xff1a; &#xff08;1&#xff09;常见的文件命令&#xff1a; &#xff08;2&#xff09;文件属性&#xff1a; &#xff08;3&#xff09;修改文件属性&#xff1a; 查看文件的属性&#xff1a; ls -l 查看文件的属性 ls …...

NVIDIA Omniverse与GPT-4结合生成3D内容

全球各行业对 3D 世界和虚拟环境的需求呈指数级增长。3D 工作流程是工业数字化的核心&#xff0c;开发实时模拟来测试和验证自动驾驶车辆和机器人&#xff0c;操作数字孪生来优化工业制造&#xff0c;并为科学发现铺平新的道路。 如今&#xff0c;3D 设计和世界构建仍然是高度…...

Windows Server --- RDP远程桌面服务器激活和RD授权

RDP远程桌面服务器激活和RD授权 一、激活服务器二、设置RD授权 系统&#xff1a;Window server 2008 R2 服务&#xff1a;远程桌面服务 注&#xff1a;该方法适合该远程桌面服务器没网络状态下&#xff08;离线&#xff09;&#xff0c;激活服务器。 一、激活服务器 1.打开远…...

关于游戏盾

游戏盾&#xff08;Game Shield&#xff09;是一种针对游戏行业特点的网络安全解决方案&#xff0c;主要针对游戏平台面临的各种网络攻击和安全威胁。以下是一些原因&#xff0c;说明为什么游戏平台需要加游戏盾&#xff1a; 1. DDoS攻击&#xff1a;游戏平台通常容易受到分布式…...

回归预测 | MATLAB实现基于SSA-KELM-Adaboost麻雀算法优化核极限学习机结合AdaBoost多输入单输出回归预测

回归预测 | MATLAB实现基于SSA-KELM-Adaboost麻雀算法优化核极限学习机结合AdaBoost多输入单输出回归预测 目录 回归预测 | MATLAB实现基于SSA-KELM-Adaboost麻雀算法优化核极限学习机结合AdaBoost多输入单输出回归预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本…...

《cpolar内网穿透》外网SSH远程连接linux(CentOS)服务器

本次教程我们来实现如何在外公网环境下&#xff0c;SSH远程连接家里/公司的Linux CentOS服务器&#xff0c;无需公网IP&#xff0c;也不需要设置路由器。 视频教程 [video(video-jrpesBrv-1680147672481)(type-csdn)(url-CSDN直播https://live-file.csdnimg.cn/release/live/…...

IDEA启动报错【java.sql.SQLSyntaxErrorException: ORA-00904: “P“.“PRJ_NO“: 标识符无效】

IDEA报错如下&#xff1a; 2023-08-17 11:26:15.535 ERROR [egrant-biz,b48324d82fe23753,b48324d82fe23753,true] 24108 --- [ XNIO-1 task-1] c.i.c.l.c.RestExceptionController : 服务器异常org.springframework.jdbc.BadSqlGrammarException: ### Error queryin…...

Nginx详解

1、高并发时代 单台tomcat在理想情况下可支持的最大并发数量在200~500之间&#xff0c;如果大于这个数量可能会造成响应缓慢甚至宕机。 解决方案是通过多台服务器分摊并发压力&#xff0c;这不仅需要有多台tomcat服务器&#xff0c;还需要一台服务器专门用来分配请求。这既是…...

摸清一下mysql授权语句的实际执行关系

样例 ---------------------------------------------------------------------- grant all PRIVILEGES on db1.* to test% identified by test1; grant all PRIVILEGES on db2.* to test% identified by test2; grant all PRIVILEGES on db3.* to test127.0.0.1 identified …...

sCrypt于8月12日在上海亮相BSV数字未来论坛

2023年8月12日&#xff0c;由上海可一澈科技有限公司&#xff08;以下简称“可一科技”&#xff09;、 临港国际科创研究院发起&#xff0c;携手美国sCrypt公司、福州博泉网络科技有限公司、复旦大学区块链协会&#xff0c;举办的BSV数字未来论坛在中国上海成功落下帷幕。 本次…...

Hbase的列式存储到底是什么意思?一篇文章让你彻底明白

一、 HBase 定义 Apache HBase™ 是以 hdfs 为数据存储的&#xff0c;一种分布式、可扩展的 NoSQL 数据库。 二、 HBase 数据模型 HBase 的设计理念依据 Google 的 BigTable 论文&#xff0c;论文中对于数据模型的首句介绍。 Bigtable 是一个稀疏的、分布式的、持久的多维排…...

机器学习|Softmax 回归的数学理解及代码解析

机器学习&#xff5c;Softmax 回归的数学理解及代码解析 Softmax 回归是一种常用的多类别分类算法&#xff0c;适用于将输入向量映射到多个类别的概率分布。在本文中&#xff0c;我们将深入探讨 Softmax 回归的数学原理&#xff0c;并提供 Python 示例代码帮助读者更好地理解和…...

EmbedPress Pro 在WordPress网站中嵌入任何内容

EmbedPress Pro可让您通过高级自定义、自定义品牌、延迟加载和更多惊人功能嵌入源。为古腾堡块和Elementor编辑器提供支持的一体化 WordPress 嵌入解决方案。使用 EmbedPress 在古腾堡创建交互式内容。使用 EmbedPress 的古腾堡块立即将任何内容嵌入到您的网站。 网址: EmbedP…...

【C++学习手札】一文带你初识C++继承

食用指南&#xff1a;本文在有C基础的情况下食用更佳 &#x1f340;本文前置知识&#xff1a; C类 ♈️今日夜电波&#xff1a;napori—Vaundy 1:21 ━━━━━━️&#x1f49f;──────── 3:23 …...

【ubuntu18.04】01-network-manager-all.yaml和interfaces和resolv.conf各有什么区别和联系

文章目录 01-network-manager-all.yaml、interfaces 和 resolv.conf 是与网络配置相关的文件&#xff0c;它们在网络设置中有着不同的作用和使用方式。 01-network-manager-all.yaml: 这是一个配置文件&#xff0c;通常在 Ubuntu 系统上使用 NetworkManager 进行网络管理时使用…...

24近3年内蒙古大学自动化考研院校分析

今天给大家带来的是内蒙古大学控制考研分析 满满干货&#xff5e;还不快快点赞收藏 一、内蒙古大学 学校简介 内蒙古大学位于内蒙古自治区首府、历史文化名城呼和浩特市&#xff0c;距北京400余公里&#xff0c;是中华人民共和国成立后党和国家在民族地区创办的第一所综合大…...

大语言模型(LLM)与 Jupyter 连接起来了

现在&#xff0c;大语言模型&#xff08;LLM&#xff09;与 Jupyter 连接起来了&#xff01; 这主要归功于一个名叫 Jupyter AI 的项目&#xff0c;它是官方支持的 Project Jupyter 子项目。目前该项目已经完全开源&#xff0c;其连接的模型主要来自 AI21、Anthropic、AWS、Co…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)

文章目录 1.什么是Redis&#xff1f;2.为什么要使用redis作为mysql的缓存&#xff1f;3.什么是缓存雪崩、缓存穿透、缓存击穿&#xff1f;3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...

如何将联系人从 iPhone 转移到 Android

从 iPhone 换到 Android 手机时&#xff0c;你可能需要保留重要的数据&#xff0c;例如通讯录。好在&#xff0c;将通讯录从 iPhone 转移到 Android 手机非常简单&#xff0c;你可以从本文中学习 6 种可靠的方法&#xff0c;确保随时保持连接&#xff0c;不错过任何信息。 第 1…...

C++.OpenGL (10/64)基础光照(Basic Lighting)

基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...

css3笔记 (1) 自用

outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size&#xff1a;0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格&#xff…...

使用 SymPy 进行向量和矩阵的高级操作

在科学计算和工程领域&#xff0c;向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能&#xff0c;能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作&#xff0c;并通过具体…...

C# 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

Mobile ALOHA全身模仿学习

一、题目 Mobile ALOHA&#xff1a;通过低成本全身远程操作学习双手移动操作 传统模仿学习&#xff08;Imitation Learning&#xff09;缺点&#xff1a;聚焦与桌面操作&#xff0c;缺乏通用任务所需的移动性和灵活性 本论文优点&#xff1a;&#xff08;1&#xff09;在ALOHA…...

【C++特殊工具与技术】优化内存分配(一):C++中的内存分配

目录 一、C 内存的基本概念​ 1.1 内存的物理与逻辑结构​ 1.2 C 程序的内存区域划分​ 二、栈内存分配​ 2.1 栈内存的特点​ 2.2 栈内存分配示例​ 三、堆内存分配​ 3.1 new和delete操作符​ 4.2 内存泄漏与悬空指针问题​ 4.3 new和delete的重载​ 四、智能指针…...

LLMs 系列实操科普(1)

写在前面&#xff1a; 本期内容我们继续 Andrej Karpathy 的《How I use LLMs》讲座内容&#xff0c;原视频时长 ~130 分钟&#xff0c;以实操演示主流的一些 LLMs 的使用&#xff0c;由于涉及到实操&#xff0c;实际上并不适合以文字整理&#xff0c;但还是决定尽量整理一份笔…...

08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险

C#入门系列【类的基本概念】&#xff1a;开启编程世界的奇妙冒险 嘿&#xff0c;各位编程小白探险家&#xff01;欢迎来到 C# 的奇幻大陆&#xff01;今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类&#xff01;别害怕&#xff0c;跟着我&#xff0c;保准让你轻松搞…...