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.repo

cat >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;"]
> EOF

docker 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.mfbz.cn/a/793891.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Facebook的AI革命:人工智能如何改变社交体验

随着科技的不断进步&#xff0c;人工智能&#xff08;AI&#xff09;作为一项革命性的技术&#xff0c;正在深刻影响着社交媒体的发展和用户体验。作为全球最大的社交平台之一&#xff0c;Facebook积极探索并应用AI技术&#xff0c;以提升用户的社交互动、内容分享和个性化体验…

插片式远程 I/O模块:热电阻温度采集模块与PLC配置案例

XD系列成套系统主要由耦合器、各种功能I/O模块、电源辅助模块以及终端模块组成。有多种通讯协议总线的耦合器&#xff0c;例如Profinet、EtherCAT、Ethernet/IP、Cclink IE以及modbus/TCP等。I/O 模块可分为多通道数字量输入模块、数字量输出模块、模拟量输入模块、模拟量输出模…

Python实战:拥有设闹钟功能的可视化动态闹钟的实现

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…

昇思25天学习打卡营第11天 | FCN图像语义分割

昇思25天学习打卡营第11天 | FCN图像语义分割 文章目录 昇思25天学习打卡营第11天 | FCN图像语义分割FCN模型数据处理下载数据集创建训练集可视化训练集 网络构建网络结构张量操作 训练准备导入VGG-16部分预训练权重&#xff1a;损失函数模型评估指标 模型训练模型评估模型推理…

「C++系列」一篇文章说透【存储类】

文章目录 一、C 存储类1. 类的定义2. 对象的创建3. 对象在内存中的布局4. 对象的存储位置 二、auto 存储类1. auto的基本用法2. auto与存储类的关系1) 自动存储类&#xff08;最常见的&#xff09;2) 静态存储类3) 动态存储类&#xff08;通过new&#xff09; 三、register 存储…

SSRF漏洞深入利用与防御方案绕过技巧

文章目录 前言SSRF基础利用1.1 http://内网资源访问1.2 file:///读取内网文件1.3 dict://探测内网端口 SSRF进阶利用2.1 Gopher协议Post请求2.2 Gopher协议文件上传2.3 GopherRedis->RCE2.4 JavaWeb中的适用性&#xff1f; SSRF防御绕过3.1 Url黑名单检测的绕过3.2 Url白名单…

【PHP安装内置扩展】

PHP安装内置扩展 1、首先查看php源码以及查询是否有需要的扩展;本次以zlib扩展为例子 2、进入需要安装的扩展目录,执行命令 cd zlib 执行 make clean 清掉之前的安装的残留文件; 不需要的话直接略过,新安装也略过3、运行phpize,执行/usr/local/php/bin/phpize 注意这个路径一…

【BES2500x系列 -- RTX5操作系统】深入探索CMSIS-RTOS RTX -- 配置篇 -- 初识GPIO --(六)

&#x1f48c; 所属专栏&#xff1a;【BES2500x系列】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &#x1f49…

子任务:IT运维的精细化管理之道

在当今的企业运营中&#xff0c;信息技术已成为支撑业务发展的核心力量。根据Gartner的报告&#xff0c;IT服务管理&#xff08;ITSM&#xff09;的有效实施可以显著提升企业的运营效率&#xff0c;降低成本高达15%&#xff0c;同时提高服务交付速度和质量。随着业务的复杂性和…

7个外贸网站模板

Nebula独立站wordpress主题 Nebula奈卜尤拉wordpress主题模板&#xff0c;适合搭建外贸独立站使用的wordpress主题。 https://www.jianzhanpress.com/?p7084 Starling师大林WordPress独立站模板 蓝色橙色风格的WordPress独立站模板&#xff0c;适合做对外贸易的外贸公司搭建…

pytorch 是如何调用 cusolver API 的调用

0&#xff0c;环境 ubuntu 22.04 pytorch 2.3.1 x86 RTX 3080 cuda 12.2 1, 示例代码 以potrs为例&#xff1b; hello_cholesk.py """ hello_cholesky.py step1, Cholesky decompose; step2, inverse A; step3, Cholesky again; python3 hello_cholesky.py -…

Hi3861 OpenHarmony嵌入式应用入门--华为 IoTDA 设备接入

华为云物联网平台&#xff08;IoT 设备接入云服务&#xff09;提供海量设备的接入和管理能力&#xff0c;可以将自己的 IoT 设备 联接到华为云&#xff0c;支撑设备数据采集上云和云端下发命令给设备进行远程控制&#xff0c;配合华为云物联网平台的服 务实现设备与设备之间的控…

【区块链农场】:农场游戏+游戏

我的酒坊是一款非常受玩家欢迎的经营手游,游戏中你需要合理经营一家酒厂,将其做大做强。通过制定合理的战略,例如新建厂房,并采用传统工艺制作,针对不同的人群研制多重口味。

配置sublime的中的C++编译器(.sublime-build),实现C++20在sublime中的使用,小白教程

一&#xff0c;前期准备 首先我们需要准备一下 C 环境&#xff0c;当然如果你觉得你当前的C环境配置好了&#xff0c;并且C的版本也能完成您日常的使用需求&#xff0c;您可以使用下面两条命令对C的版本进行查询 g -vg --version通过返回的版本简单的判断是否能解决您的需求&…

[Godot3.3.3] - 过渡动画

过渡动画 ScreenTransitionAnimation 项目结构 添加场景&#xff0c;根节点为 CanvasLayer2D 并重命名为 ScreenTransition: 添加子节点 ColorRect 和 AnimationPlayer&#xff0c;在 ColorRect 中将颜色(Color)设置为黑色&#xff1a; 找到 Material&#xff0c;新建 Shader…

【Element-UI 表格表头、内容合并单元格】

一、实现效果&#xff1a; &#x1f970; 表头合并行、合并列 &#x1f970; &#x1f970; 表格内容行、合并列 &#x1f970; thead和tbody分别有单独的合并方法 二、关键代码&#xff1a; <el-table size"mini" class"table-th-F4F6FB" align&qu…

初识c++(类与对象——上)

一、类的定义 1、类定义格式 • class为定义类的关键字&#xff0c;Stack为类的名字&#xff0c;{}中为类的主体&#xff0c;注意类定义结束时后面分号不能省 略。类体中内容称为类的成员&#xff1a;类中的变量称为类的属性或成员变量; 类中的函数称为类的方法或 者成员函…

【C++初阶】类和对象(上)

【C初阶】类和对象&#xff08;上&#xff09; &#x1f955;个人主页&#xff1a;开敲&#x1f349; &#x1f525;所属专栏&#xff1a;C&#x1f96d; &#x1f33c;文章目录&#x1f33c; 1. 面向过程和面向对象初步认识 2. 类的引入 3. 类的定义 4. 类的访问限定符及封…

python 实验八 数据分析与展示

一、实验目的 掌握掌握matplotlib库中pyplot模块的使用。 二、实验环境 Window10&#xff08;x64&#xff09;&#xff0c;Python 3.8&#xff08;x64&#xff09;&#xff0c;PyCharm Community Edition 2020.3.2&#xff08;x64&#xff09; 三、实验内容 现有列表hight…

jmeter分布式(四)

一、gui jmeter的gui主要用来调试脚本 1、先gui创建脚本 先做一个脚本 演示&#xff1a;如何做混合场景的脚本&#xff1f; 用211的业务比例 ①启动数据库服务 数据库服务&#xff1a;包括mysql、redis mysql端口默认3306 netstat -lntp | grep 3306处于监听状态&#xf…