docker-2

27.构建python应用镜像-dockerfile实践项目

1.基于官方的镜像,构建python代码运行环境 dockerfile

2.运行镜像,开启一个读写的容器空间(定制操作,将代码丢进去,运行调试)

3.提交这个变化的容器层数据,提交新的镜像 docker commit

4.运行新镜像,加入参数,运行的容器可以端口映射且访问页面

5.这里还要写容器内的应用程序的启停脚本:-v 将脚本映射到容器去

 --改进:镜像只提供一个运行环境,其他数据:配置文件、源码、脚本,都尽量使用-v 映射进去方便进行维护

28.容器的无状态和有状态

容器运行的nginx产生的数据可以随意丢弃,称为无状态

容器运行的数据库产的数据很重要,需要对数据持久化存储,称为有状态

dockerfile中volume参数的作用:将数据映射出来,防止运维运行忘记主动使用-v参数

29.Docker存储卷用法

volume数据卷

作用:避免重要的数据,因容器重启而丢失,避免容器不断变大,产生大朗的数据,容器最终可以提供为镜像

可以使用-v参数,主动修改 -v 宿主机:容器:权限,权限2

30.搭建nginx+centos镜像 

cd /opt/dockerfile/7.9test
curl -o ./Centos-7.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -o ./epel-7.repo http://mirrors.aliyun.com/repo/epel-7.repocat >Dockerfile <<'EOF'
> FROM centos:7.9.2009
> RUN rm -rf /etc/yum.repos.d/*
> ADD *.repo /etc/yum.repos.d/
> RUN yum makecache fast \
> && yum install nginx -y \
> && yum clean all
> EXPOSE 80
> CMD ["nginx","-g","daemon off;"]
> EOFdocker bulit -t nginx .

之后 dokcer run -d -P nginx  然后访问端口发现报错403.根据 docker部署nginx报403 拍错

31.cmd、entrypoint关系

32.dockerfile的优化方案(官网里有)

33.Dockerfile多阶段构建jar包

每一个镜像,都可以作为公共镜像,让其他镜像再使用

centos + jdk环境

运行jar包,下载对应jar包,docker run -v 把jar映射到容器内 使用镜像 java -jar xxx.jar包

34.mysql为什么要加入-v 一些参数,才能容器化启动?

因为mysql容器中有entryponit中的脚本中,必须运行的时候必须要有指定的 参数才能启动

35.docker history完整信息截取

docker history -- help 有一个完全信息参数   |  gerp -i +需要查询的关键信息

36.拿到镜像怎么做?

首先查询docker hub中文档,再查看该镜像的entrypoint脚本中需要指定的参数,怎么运行

37.提取容器ip格式化语法---format语法学一下

docker inspect `docker ps -aq`|grep -i IPaddress

docker inspect --format='{{.NetworkSettings.Networks.bridge.IPAddress}}' 容器名

# 简单玩法, 基于key 提取value,格式化主机名,容器ip

docker inspect --format='{{.Name}}   {{.NetworkSettings.Networks.bridge.IPAddress}}'  `docker ps -aq`

38.容器部署zabbix、jenkins等

39.yaml语法

基于容器化部署的应用,都是使用yaml语法

json网站格式,理解yaml格式类型(主要是字典和列表),使用工具yaml转json对应看

{  }--字典,里面每一个,就是一个元素---网站对应看


version: '3'      # yaml语法版本,版本越高,支持字段就越多,得看官网文档,有有哪些字段语法
services:		   #定义服务,名字myjenkins:		# myenkins服务image: 'jenkins/jenkins:latest'  # 镜像名container_name: myjenkins   # 你运行容器的名字 restart: always   # 容器重启策略privileged: true		# 特权化运行容器user: root		# 制定容器进程执行用户 ports:- '8080:8080'  - '50000:50000'volumes:- '/linux0224_data/jenkins:/var/jenkins_home'- '/var/run/docker.sock:/var/run/docker.sock'- '/usr/bin/docker:/usr/bin/docker'- '/root/.ssh:/root/.ssh'

40.docker-compse使用(注意有缩进)

1.安装 2.写docker-compose.yml  3.语法校验docker-compose.yml ,然后运行docker-compose up -d

41.私有仓库docker-harbor

1.下载harbor软件包、yaml文件

2.查看解压文件,修改相关参数   运行部署脚本

3.修改docker配置,支持非https镜像仓库

4.推送到私有镜像仓库,需要修改镜像tag,指定项目地址

5.登录docker harbor  login输入账号密码才能推和拉取镜像

42.私有registry仓库,纯api形式的仓库

43.docker所有网桥信息查询

docker inspect  `docker network ls -q` |grep -i '"Subnet"'

docker network ls

docker查看资源信息的命令

docker inspect image xx

docker inspect container xx

docker inspect network  xx

44.docker网桥与虚拟网络接口的关系

45.docker网桥的增删改查

46.容器访问控制

容器和宿主机之间通信 宿主机和外网之前通信

容器与容器之间的通信:使用同一个网桥

47.容器通信方式

网桥模式:一般docker network ls name为bridge的是dokcer0

docker0为二层交换机,分配ip地址

-net 的参数含义(网桥有用默认的网桥,也有自创的,也有用已存在的网桥)

主机模式:容器不创建单独的网络环境,直接使用宿主机的network

none:单机无网络环境的容器,需要计算产生数据的一些服务,比如AI 深度学习纯计算服务

48.网桥创建的时候,可以使用网络工具  百度搜 子网创建器

49.brctl show 、ifconfig:br-开头的都是自建网桥、docker network ls

50.查看网桥和容器的关系,查看网桥有哪些容器使用?

docker inspect 网桥 -->查看该网桥的子网网段 和 containers中使用该网桥的容器名及ip

51.如何使用自建网桥br-X,创建一个veth接口: docker run -d -p XXX:XXX --network=该网桥id 镜像,使用该网桥就自动创建相应的虚拟网络接口

52.修改docker0网段

查看docker0信息 docker inspect bridge

docker run -it busybox  --- ifconfig查看docker0网段信息

公司对容器网络环境有要求,给了ip范围,说了你们的容器的环境只能是192.168.15.0/24,去修改docker配置文件 添加zip 192.168.15.1/24

53.网络总结

1. 桥接模式(Bridge)

优点

  • 隔离性好:每个容器都有独立的网络命名空间,相互之间隔离,不会互相干扰。
  • 简单易用:桥接网络是Docker的默认网络模式,无需额外配置,容器可以直接进行通信。
  • 支持跨主机通信:虽然桥接模式本身主要适用于单机部署,但可以通过端口映射或Overlay网络实现跨主机通信。
  • 支持端口映射:方便外部访问容器内的服务。

缺点

  • 性能损失:桥接网络需要进行网络地址转换(NAT),可能会引入一定的性能损失。
  • 端口冲突:如果多个容器使用相同的端口号,可能会导致端口冲突。
  • 网络隔离性限制:虽然容器间网络隔离,但容器仍可通过宿主机的网桥进行通信,这可能带来一定的安全风险。

2. 主机模式(Host)

优点

  • 性能最优:容器直接使用宿主机的网络接口和IP地址,无需进行额外的网络地址转换,性能最高。
  • 简化网络配置:容器与宿主机共享网络命名空间,无需进行端口映射或网络转发配置。
  • 无需网络策略:只要能访问到宿主机,就能访问到容器。

缺点

  • 安全性降低:容器与宿主机共享网络命名空间,容器可以直接访问主机上的网络资源,增加安全风险。
  • 端口冲突:如果多个容器使用相同的端口号,可能会导致端口冲突。
  • 隔离性差:容器不再拥有独立的网络栈,网络环境隔离性差。

3. 容器模式(Container)

优点

  • 高效通信:两个容器共享同一个网络命名空间,容器间通信非常高效,无需经过宿主机的网络栈。
  • 简化配置:对于需要紧密协作的容器(如微服务架构中的容器),容器模式可以简化网络配置。

缺点

  • 隔离性差:与桥接模式一样,宿主机意外的其他主机无法访问到容器。
  • 安全性问题:由于容器间共享网络命名空间,一个容器的网络安全问题可能影响到其他容器。

4. 自定义网络模式

优点

  • 高度可配置:支持各种网络驱动(如bridge、overlay、macvlan等),可以根据需要创建复杂的网络拓扑。
  • 提供隔离性和安全性:通过子网、网关、DNS等配置,实现容器间的隔离和通信控制。
  • 支持服务发现:在自定义网络中,容器可以通过服务名进行通信,而无需关注底层网络配置。

缺点

  • 配置复杂度较高:需要适当的网络知识来配置自定义网络。
  • 可能涉及额外的网络性能开销:特别是在使用跨主机网络通信时。

5. 无网络模式(None)

优点

  • 安全性增强:容器与外部网络完全隔离,提供更高的安全性。
  • 资源节省:无需为容器分配网络接口和IP地址,节省网络资源。

缺点

  • 无法进行网络通信:容器无法与外部网络或其他容器进行通信,仅适用于不需要网络连接的场景。

54.先想好命令怎么敲--->再转为yaml格式

55.如何使用docker-compose

docker-compose命令语法

教程文档:

https://yeasy.gitbook.io/docker_practice/compose/compose_file

粘贴代码使用粘贴模式 set paste

56.docker-compose部署zabbix

学习软件 sublime Text、Notepad++

把yaml格式都放到sublime Text中加入yaml格式写看,再使用vim 的粘贴模式粘贴

docker-compose容器编排后也要用docker-compose命令管理,尽量别使用docker命令管理

57.使用docker-compose部署wordpress

docker-compose -f wordpress.yml ps

docker inspect wordpress-compose_db_1 

# 容器内,暴露的数据卷
            "Volumes": {
                "/var/lib/mysql": {}
            },

# 挂在再外部的信息
 },
        "Mounts": [
            {
                "Type": "volume",  # 卷的类型
                "Name": "wordpress-compose_db_data",
                "Source": "/var/lib/docker/volumes/wordpress-compose_db_data/_data",
                "Destination": "/var/lib/mysql",
                "Driver": "local",
                "Mode": "rw",
                "RW": true,
                "Propagation": ""
            }
        ],

# volume 类型解释
# volume   容器内的数据,映射到宿主机的 /var/lib/docker/volumes/卷的名字
# bind类型   docker run -v 宿主机目录:容器目录

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

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

相关文章

cal命令

1、命令详解&#xff1a; cal&#xff08;全称&#xff1a;Calendar&#xff09;该命令用来显示当前日历或者指定日期的公历。 2、官方参数&#xff1a; -1, --one 仅显示当前月份&#xff08;默认&#xff09;-3, --three 显示上个月、当前月和下个月-s, --sunday…

谷粒商城P85发布商品时规格参数不显示问题

P85讲&#xff0c;发布商品&#xff0c;点击下一步之后&#xff0c;发现规格参数不显示 打开控制台发现报错forEach...错误 查了问题原因&#xff0c;发现返回的分组中个别组的关联属性(attrs)可能为null 所以这个时候&#xff0c;需要确保后端返回的attrs不能为null 方式1…

数据结构之顺序存储线性表实现详解与示例(C,C#,C++)

文章目录 一、顺序存储线性表的基本概念二、顺序存储线性表的实现1、数据结构定义2、初始化3、添加元素4、访问元素5、修改元素6、删除元素7、销毁 三、示例C语言示例C#语言示例C语言示例 顺序存储线性表是一种基本的数据结构&#xff0c;它将线性表的元素按照一定的顺序存放在…

每天一个数据分析题(四百二十五)- 单因素方差分析

关于下表&#xff0c;错误说法是&#xff08; &#xff09; A. 这是单因素方差分析的输出结果 B. 表中 F< F crit, 与 P-value 大于显著性水平是等价的 C. 表内组间均方差没有显著大于组内均方差 D. 由于组内SS数值显著大于组间SS&#xff0c;因此可以推断不同分类对于…

机器学习——决策树(笔记)

目录 一、认识决策树 1. 介绍 2. 决策树生成过程 二、sklearn中的决策树 1. tree.DecisionTreeClassifier&#xff08;分类树&#xff09; &#xff08;1&#xff09;模型基本参数 &#xff08;2&#xff09;模型属性 &#xff08;3&#xff09;接口 2. tree.Decision…

最新开源免费数字人工具

使用步骤更是简单到不行&#xff1a; 1. 输入图片&#xff1a;选择你想要生成动态视频的肖像图片。 2. 输入音频&#xff1a;提供与图片匹配的音频文件&#xff0c;EchoMimic会根据音频内容驱动肖像的动态效果。 3. 设置参数&#xff1a;一般保持默认设置即可&#xff0c;当然&…

《梦醒蝶飞:释放Excel函数与公式的力量》11.4 ISERROR函数

第11章&#xff1a;信息函数 第四节 11.4 ISERROR函数 11.4.1 简介 ISERROR函数是Excel中的一个信息函数&#xff0c;用于检查指定单元格或表达式是否产生错误。如果单元格或表达式产生任何类型的错误&#xff08;如N/A、VALUE!、REF!等&#xff09;&#xff0c;则返回TRUE&…

全开源TikTok跨境商城源码/TikTok内嵌商城+搭建教程/前端uniapp+后端

多语言跨境电商外贸商城 TikTok内嵌商城&#xff0c;商家入驻一键铺货一键提货 全开源完美运营 海外版抖音TikTok商城系统源码&#xff0c;TikToK内嵌商城&#xff0c;跨境商城系统源码 接在tiktok里面的商城。tiktok内嵌&#xff0c;也可单独分开出来当独立站运营 二十一种…

leetcode165.解密数字

题目表述&#xff1a; 这道题目和斐波那契数列以及跳台阶问题十分相似。 斐波那契数列&#xff1a;0、1、1、2、3、5, 8、13、21、34 …… leetcode跳台阶问题&#xff1a;1、1、2、3、5, 8、13、21、34....... 这类题目的特点都是第N项的结果等于前两项的和。 但是解密数…

【深度学习】图形模型基础(7):机器学习优化中的方差减少方法(1)

摘要 随机优化是机器学习中至关重要的组成部分&#xff0c;其核心是随机梯度下降算法&#xff08;SGD&#xff09;&#xff0c;这种方法自60多年前首次提出以来一直被广泛使用。近八年来&#xff0c;我们见证了一个激动人心的新进展&#xff1a;随机优化方法的方差降低技术。这…

车载测试资料学习和CANoe工具实操车载项目(每日直播)

每日直播时间&#xff1a;&#xff08;直播方式&#xff1a;腾讯会议&#xff09; 周一到周五&#xff1a;20&#xff1a;00-23&#xff1a;00 周六与周日&#xff1a;9&#xff1a;00-17&#xff1a;00 向进腾讯会议学习的&#xff0c;可以关注我并后台留言 直播内容&#xff…

Simscape物理建模步骤

为了介绍构建和仿真物理模型的步骤&#xff0c;这里以simulink自带示例模型Mass-Spring-Damper with Controller为例&#xff0c;下图为建立好的模型。 详细物理建模和仿真分析步骤如下&#xff1a; 步骤 1&#xff1a;使用 ssc_new 创建新模型 使用 ssc_new 是开始构建 Sims…

李彦宏所说的卷应用到底是什么?

李彦宏在2024世界人工智能大会上的发言强调了一个重要的观点&#xff0c;那就是在AI时代&#xff0c;技术的应用比技术本身更为关键。他所提出的“卷应用”而非“卷模型”&#xff0c;实际上是在呼吁业界关注AI技术的实际落地和价值创造&#xff0c;而不是单纯地在模型精度或规…

案例|LabVIEW连接S7-1200PLC

附带&#xff1a; 写了好的参考文章&#xff1a; 通讯测试工具和博图仿真机的连接教程【内含图文完整过程软件使用】 解决博图V15 V16 V17 V18等高版本和低版本在同款PLC上不兼容的问题 目录 前言一、准备条件二、步骤1. HslCommunicationDemo问题1&#xff1a;连接失败?问题…

Lingo学习(二)——线性规划基础、矩阵工厂

一、线性规划基础 &#xff08;一&#xff09;方法 ① 一个线性规划中只含一个目标函数。(两个以上是多目标线性规划,Lingo无法直接解) ② 求目标函数的最大值或最小值分别用max …或min …来表示。 ③ 以!开头,以;结束的语句是注释语句; ④ 线性规划和非线性规划的本质…

01、Kerberos安全认证之原理及搭建命令使用学习笔记

文章目录 前言一、Kerberos原理1.1、数据安全防护&#xff08;kerberos所属的层次&#xff09;1.2、Kerberos介绍1.3、Kerberos名词介绍1.4、Kerberos术语1.5、Kerberos认证流程1.5.1、Kerberos流程图1.5.2、第一次通信&#xff1a;客户端与AS1.5.3、第二次通信&#xff1a;客户…

60、基于浅层神经网络的数据拟合(matlab)

1、基于浅层神经网络的数据拟合的简介、原理以及matlab实现 1&#xff09;内容说明 基于浅层神经网络的数据拟合是一种常见的机器学习方法&#xff0c;用于通过输入数据来拟合一个非线性函数。这种方法通常包括一个输入层、一个或多个隐藏层和一个输出层。神经网络通过学习权…

广电日志分析系统

需求 广电集团中有若干个系统都产生日志信息&#xff0c;目前大约分布与70到80台服务器中&#xff0c;分别是windows与Linux操作系统。需要将服务器上产生的日志文件利用我们的技术进行解析 设计 每个日志工作站负责30-50个服务器的日志解析工作。可以根据实际需求进行设置&…

ENSP实现防火墙区域策略与用户管理

目录 实验拓扑与要求​编辑 交换机与防火墙接口的配置 交换机&#xff1a; 创建vlan 接口配置 防火墙配置及接口配置 防火墙IP地址配置 云配置​编辑​编辑​编辑 在浏览器上使用https协议登陆防火墙&#xff0c;并操作 访问网址&#xff1a;https://192.168.100.1:844…

51单片机嵌入式开发:9、 STC89C52RC 操作LCD1602技巧

STC89C52RC 操作LCD1602技巧 1 代码工程2 LCD1602使用2.1 LCD1602字库2.2 巧妙使用sprintf2.3 光标显示2.4 写固定长度的字符2.5 所以引入固定长度写入方式&#xff1a; 3 LCD1602操作总结 1 代码工程 承接上文&#xff0c;在原有工程基础上&#xff0c;新建关于lcd1602的c和h…