网络安全 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-docker | 10.0.0.62/172.16.1.62 | 2c4G(至少1c2G) |
1)使用rpm包安装docker
-
解压oldboyedu_docker_24_rpms.tar.gz(老师资料包中):
tar xf oldboyedu_docker_24_rpms.tar.gz -
进入目录并安装rpm包
cd docker_24_rpms/ yum localinstall -y *.rpm -
检查是否安装成功
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下载镜像加速
阿里云,腾讯云有加速用的地址.
-
阿里云为例,说明如何获取加速用的地址



- 创建目录:
sudo mkdir -p /etc/docker - 修改配置docker下载镜像的加速地址(/etc/docker/daemon.json docker服务端的配置文件.)
sudo tee /etc/docker/daemon.json <<-'EOF' {"registry-mirrors": ["https://bjjtv7cs.mirror.aliyuncs.com"] } EOF - 开机自启动与重启
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)]](https://img-blog.csdnimg.cn/718e6c0e8e944bffb2ba54a1a970ae38.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
- 发送bird目录下面的代码到容器中的站的目录 /usr/share/nginx/html/
unzip bird.zip cd bird/
- 发送bird目录下面的代码到容器中的站的目录 /usr/share/nginx/html/
- 上传,把宿主机中的文件上传到容器中:
docker cp . bird_v1:/usr/share/nginx/html/
#上传:docker cp 宿主机目录或文件 容器名:容器路径 ※※※※※
#下载:docker cp 容器名:容器路径 宿主机目录或文件
3)进行测试
- http://10.0.0.62:8080/
- 测试成功表示:
- nginx服务是ok.
- nginx+代码也是ok.
4)保存镜像
- 把已经的容器保存成镜像。
- 把容器保存成镜像
- 语法:
docker commit 容器名字 分类:名字版本 - 保存:
docker commit bird_v1 oldboydiy:lidao_bird_v1
- 语法:
- 检查是否有镜像:
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)使用rpm包安装docker2) docker下载镜像加速的配置3) 载入镜像大礼包(老师资料包中有) 4. Docker使用案例1) 案例01::star::star::…...
深入理解设计模式-创建型之单例模式
为什么要使用单例 1、表示全局唯一 如果有些数据在系统中应该且只能保存一份,那就应该设计为单例类。 如:配置类:在系统中,我们只有一个配置文件,当配置文件被加载到内存之后,应该被映射为一个唯一的【配…...
Vue中路由缓存问题及解决方法
一.问题 Vue Router 允许你在你的应用中创建多个视图,并根据路由来动态切换这些视图。默认情况下,当你从一个路由切换到另一个路由时,Vue Router 会销毁前一个路由的组件实例并创建新的组件实例。然而,有时候你可能希望保持一些页…...
Linux与bash(基础内容一)
一、常见的linux命令: 1、文件: (1)常见的文件命令: (2)文件属性: (3)修改文件属性: 查看文件的属性: ls -l 查看文件的属性 ls …...
NVIDIA Omniverse与GPT-4结合生成3D内容
全球各行业对 3D 世界和虚拟环境的需求呈指数级增长。3D 工作流程是工业数字化的核心,开发实时模拟来测试和验证自动驾驶车辆和机器人,操作数字孪生来优化工业制造,并为科学发现铺平新的道路。 如今,3D 设计和世界构建仍然是高度…...
Windows Server --- RDP远程桌面服务器激活和RD授权
RDP远程桌面服务器激活和RD授权 一、激活服务器二、设置RD授权 系统:Window server 2008 R2 服务:远程桌面服务 注:该方法适合该远程桌面服务器没网络状态下(离线),激活服务器。 一、激活服务器 1.打开远…...
关于游戏盾
游戏盾(Game Shield)是一种针对游戏行业特点的网络安全解决方案,主要针对游戏平台面临的各种网络攻击和安全威胁。以下是一些原因,说明为什么游戏平台需要加游戏盾: 1. DDoS攻击:游戏平台通常容易受到分布式…...
回归预测 | MATLAB实现基于SSA-KELM-Adaboost麻雀算法优化核极限学习机结合AdaBoost多输入单输出回归预测
回归预测 | MATLAB实现基于SSA-KELM-Adaboost麻雀算法优化核极限学习机结合AdaBoost多输入单输出回归预测 目录 回归预测 | MATLAB实现基于SSA-KELM-Adaboost麻雀算法优化核极限学习机结合AdaBoost多输入单输出回归预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本…...
《cpolar内网穿透》外网SSH远程连接linux(CentOS)服务器
本次教程我们来实现如何在外公网环境下,SSH远程连接家里/公司的Linux CentOS服务器,无需公网IP,也不需要设置路由器。 视频教程 [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报错如下: 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之间,如果大于这个数量可能会造成响应缓慢甚至宕机。 解决方案是通过多台服务器分摊并发压力,这不仅需要有多台tomcat服务器,还需要一台服务器专门用来分配请求。这既是…...
摸清一下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日,由上海可一澈科技有限公司(以下简称“可一科技”)、 临港国际科创研究院发起,携手美国sCrypt公司、福州博泉网络科技有限公司、复旦大学区块链协会,举办的BSV数字未来论坛在中国上海成功落下帷幕。 本次…...
Hbase的列式存储到底是什么意思?一篇文章让你彻底明白
一、 HBase 定义 Apache HBase™ 是以 hdfs 为数据存储的,一种分布式、可扩展的 NoSQL 数据库。 二、 HBase 数据模型 HBase 的设计理念依据 Google 的 BigTable 论文,论文中对于数据模型的首句介绍。 Bigtable 是一个稀疏的、分布式的、持久的多维排…...
机器学习|Softmax 回归的数学理解及代码解析
机器学习|Softmax 回归的数学理解及代码解析 Softmax 回归是一种常用的多类别分类算法,适用于将输入向量映射到多个类别的概率分布。在本文中,我们将深入探讨 Softmax 回归的数学原理,并提供 Python 示例代码帮助读者更好地理解和…...
EmbedPress Pro 在WordPress网站中嵌入任何内容
EmbedPress Pro可让您通过高级自定义、自定义品牌、延迟加载和更多惊人功能嵌入源。为古腾堡块和Elementor编辑器提供支持的一体化 WordPress 嵌入解决方案。使用 EmbedPress 在古腾堡创建交互式内容。使用 EmbedPress 的古腾堡块立即将任何内容嵌入到您的网站。 网址: EmbedP…...
【C++学习手札】一文带你初识C++继承
食用指南:本文在有C基础的情况下食用更佳 🍀本文前置知识: C类 ♈️今日夜电波:napori—Vaundy 1:21 ━━━━━━️💟──────── 3:23 …...
【ubuntu18.04】01-network-manager-all.yaml和interfaces和resolv.conf各有什么区别和联系
文章目录 01-network-manager-all.yaml、interfaces 和 resolv.conf 是与网络配置相关的文件,它们在网络设置中有着不同的作用和使用方式。 01-network-manager-all.yaml: 这是一个配置文件,通常在 Ubuntu 系统上使用 NetworkManager 进行网络管理时使用…...
24近3年内蒙古大学自动化考研院校分析
今天给大家带来的是内蒙古大学控制考研分析 满满干货~还不快快点赞收藏 一、内蒙古大学 学校简介 内蒙古大学位于内蒙古自治区首府、历史文化名城呼和浩特市,距北京400余公里,是中华人民共和国成立后党和国家在民族地区创办的第一所综合大…...
大语言模型(LLM)与 Jupyter 连接起来了
现在,大语言模型(LLM)与 Jupyter 连接起来了! 这主要归功于一个名叫 Jupyter AI 的项目,它是官方支持的 Project Jupyter 子项目。目前该项目已经完全开源,其连接的模型主要来自 AI21、Anthropic、AWS、Co…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...
MongoDB学习和应用(高效的非关系型数据库)
一丶 MongoDB简介 对于社交类软件的功能,我们需要对它的功能特点进行分析: 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具: mysql:关系型数据库&am…...
8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂
蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...
(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...
【算法训练营Day07】字符串part1
文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接:344. 反转字符串 双指针法,两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...
汇编常见指令
汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...
如何在网页里填写 PDF 表格?
有时候,你可能希望用户能在你的网站上填写 PDF 表单。然而,这件事并不简单,因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件,但原生并不支持编辑或填写它们。更糟的是,如果你想收集表单数据ÿ…...
技术栈RabbitMq的介绍和使用
目录 1. 什么是消息队列?2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...
Docker 本地安装 mysql 数据库
Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker ;并安装。 基础操作不再赘述。 打开 macOS 终端,开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...
【从零学习JVM|第三篇】类的生命周期(高频面试题)
前言: 在Java编程中,类的生命周期是指类从被加载到内存中开始,到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期,让读者对此有深刻印象。 目录 …...
