android面向切面编程,【Docker开篇第二篇】Docker 掌握核心技(1),【深夜思考】

这篇具有很好参考价值的文章主要介绍了android面向切面编程,【Docker开篇第二篇】Docker 掌握核心技(1),【深夜思考】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

使用--label-file标志从文件中加载多个标签。用EOL标记分隔文件中的每个标签。以下示例从当前目录中的标签文件中加载标签:

$ docker run --label-file ./labels ubuntu bash

标签文件格式与加载环境变量的格式相似。(与环境变量不同,在容器内运行的进程看不到标签。)以下示例说明了标签文件格式:

android面向切面编程,【Docker开篇第二篇】Docker 掌握核心技(1),【深夜思考】,2024年程序员学习,android,docker,容器

您可以通过提供多个--label-file标志来加载多个标签文件。

3.13、将容器连接到网络(–网络)


当您启动容器时,请使用--network标志将其连接到网络。这将busybox容器添加到my-net网络中。

$ docker run -itd --network=my-net busybox

当您在用户定义的网络上启动容器时,您还可以选择带有--ip和--ip6标志的容器的IP地址。

$ docker run -itd --network=my-net --ip=10.10.9.75 busybox

如果您想向网络添加正在运行的容器,请使用docker network connect子命令。

您可以将多个容器连接到同一网络。连接后,容器只能使用另一个容器的IP地址或名称轻松通信。对于支持多主机连接的overlay网络或自定义插件,连接到同一多主机网络但从不同引擎启动的容器也可以以这种方式通信。

默认网桥接网络上无法发现服务。默认情况下,容器可以通过其IP地址进行通信。要通过姓名进行沟通,必须链接。

您可以使用docker network disconnect命令断开容器与网络的连接。

3.14、从容器中安装卷(–volumes-from)


$ docker run --volumes-from 777f7dc92da7 --volumes-from ba8c0c54f0f2:ro -i -t ubuntu pwd

--volumes-from标志挂载所引用容器中的所有已定义。容器可以通过重复--volume -from参数来指定。容器ID后面可以加上“:ro”或“:rw”,分别以只读或读写方式挂载卷。默认情况下,卷的挂载方式与参考容器相同(可读可写或只读)。

像SELinux这样的标签系统要求在安装在容器中的卷内容上放置适当的标签。如果没有标签,安全系统可能会阻止容器内运行的进程使用内容。默认情况下,Docker不会更改操作系统设置的标签。

要在容器上下文中更改标签,您可以在卷挂载中添加两个后缀:z或:Z中的任何一个。这些后缀告诉Docker在共享卷上重新标记文件对象。z选项告诉Docker,两个容器共享卷内容。因此,Docker用共享内容标签对内容进行标签。共享卷标签允许所有容器读取/写入内容。Z选项告诉Docker用私有未共享标签对内容进行标签。只有当前容器可以使用私有卷。

3.15、附加到STDIN/STDOUT/STDERR(-a)


-a标志告诉docker run绑定到容器的STDIN、STDOUT或STDERR。这使得可以根据需要操作输出和输入。

$ echo “test” | docker run -i -a stdin ubuntu cat -

这将数据管道到容器中,并通过仅附加到容器的STDIN打印容器的ID。

$ docker run -a stderr ubuntu echo test

除非出现错误,否则不会打印任何东西,因为我们只附加到容器的STDERR上。容器的日志仍然存储写入STDERR和STDOUT的内容。

$ cat somefile | docker run -i -a stdin mybuilder dobuild

这就是构建时将文件管道到容器中的方式。构建完成后,容器的ID将被打印,并且可以使用docker logs检索构建日志。如果您需要将文件或其他东西管道到容器中,并在容器运行完成后检索容器的ID,这非常有用。

3.16、将主机设备添加到容器(–device)


android面向切面编程,【Docker开篇第二篇】Docker 掌握核心技(1),【深夜思考】,2024年程序员学习,android,docker,容器

通常需要将设备直接暴露在容器中。--device选项启用了此功能。例如,可以将特定的块存储设备或循环设备或音频设备添加到其他非特权容器中(没有--privileged标志),并让应用程序直接访问它。

默认情况下,容器将能够read、write和mknod这些设备。这可以使用每个--device标志的第三组:rwm选项来重写。如果容器以特权模式运行,则指定的权限将被忽略。

android面向切面编程,【Docker开篇第二篇】Docker 掌握核心技(1),【深夜思考】,2024年程序员学习,android,docker,容器

--device选项无法安全地与短暂的设备一起使用。不得将可能删除的块设备添加到带有--device不受信任的容器中。

对于Windows,传递给–device选项的字符串格式为--device=<IdType>/<Id>。从Windows Server 2019和Windows 10 2018年10月更新开始,Windows仅支持IdTypeclass和作为设备接口类GUID的ID。有关容器支持的设备接口类GUID的列表,请参阅Windows容器文档中定义的表。

如果为进程隔离的Windows容器指定了此选项,则容器中提供了所有实现请求的设备接口类GUID的设备。例如,下面的命令使主机上的所有COM端口在容器中可见。

PS C:> docker run --device=class/86E0D1E0-8089-11D0-9CE4-08003E301F73 mcr.microsoft.com/windows/servercore:ltsc2019

--device选项仅在进程隔离的Windows容器上受支持。如果容器隔离为hyperv或在Windows(LCOW)上运行Linux容器时,此选项将失败。

3.17、使用动态创建的设备(–device-cgroup-rule)


容器可用的设备在创建时被分配。分配的设备将添加到cgroup.allow文件中,并在运行后创建到容器中。当需要将新设备添加到正在运行的容器时,这会带来问题。

解决方案之一是为容器添加更宽松的规则,允许它访问更广泛的设备。例如,假设我们的容器需要访问大数42和任何次要数字的字符设备(在新设备出现时添加),将添加以下规则:

$ docker run -d --device-cgroup-rule=‘c 42:* rmw’ -name my-container my-image

然后,用户可以要求udev执行一个脚本,docker执行my-container mknod newDevX c 42 <minor>添加所需的设备。

最初的设备仍然需要显式地添加到docker run / docker create命令中。

3.18、访问NVIDIA GPU


--gpus标志允许您访问NVIDIA GPU资源。首先,您需要安装nvidia-container-runtime。有关更多信息,请访问指定容器的资源。

要使用--gpus,请指定要使用哪些GPU(或全部)。如果没有提供值,则使用所有可用的GPU。下面的示例公开了所有可用的GPU。

$ docker run -it --rm --gpus all ubuntu nvidia-smi

使用device选项指定GPU。下面的示例公开了特定的GPU。

$ docker run -it --rm --gpus device=GPU-3a23c669-1f69-c64e-cf85-44e9b07e7a2a ubuntu nvidia-smi

下面的示例公开了第一个和第三个GPU。

$ docker run -it --rm --gpus ‘“device=0,2”’ nvidia-smi

3.19、重启策略(–restart)


使用Docker的–restart指定容器的重新启动策略。重新启动策略控制Docker守护进程在退出后是否重新启动容器。Docker支持以下重新启动策略:

| Policy | Result |

| — | — |

| no | 容器退出时不要自动重新启动。这是默认值。 |

| on-failure[:max-retries] | 仅当容器以非零退出状态退出时,才重新启动。或者,限制重试Docker守护进程尝试的次数。 |

| unless-stopped | 重新启动容器,除非它被显式停止或Docker本身被停止或重新启动。 |

| always | 无论退出状态如何,请务必重新启动容器。当您始终指定时,Docker守护进程将尝试无限期地重新启动容器。无论容器的当前状态如何,容器也将始终在守护进程启动时启动。 |

$ docker run --restart=always redis

这将运行具有始终重新启动策略的redis容器,这样如果容器退出,Docker将重新启动它。

3.20、将条目添加到容器主机文件(–add-host)


您可以使用一个或多个--add-host标志将其他主机添加到容器的/etc/hosts文件中。此示例为名为docker的主机添加了静态地址:

android面向切面编程,【Docker开篇第二篇】Docker 掌握核心技(1),【深夜思考】,2024年程序员学习,android,docker,容器

有时,您需要从容器内连接到Docker主机。要启用此功能,请使用--add-host标志将Docker主机的IP地址传递给容器。要查找主机的地址,请使用ip addr show命令。

您传递给ip addr show的标志取决于您在容器中使用IPv4还是IPv6网络。对于名为eth0的网络设备,请使用以下标志进行IPv4地址检索:

$ HOSTIP=ip -4 addr show scope global dev eth0 | grep inet | awk '{print $2}' | cut -d / -f 1 | sed -n 1p

$ docker run --add-host=docker:${HOSTIP} --rm -it debian

对于IPv6,请使用-6标志而不是-4标志。对于其他网络设备,请将eth0替换为正确的设备名称(例如,桥接设备的docker0)。

3.21、在容器中设置ulimits(–ulimit)


由于在容器中设置ulimit设置需要默认容器中不可用的额外权限,您可以使用--ulimit标志设置这些权限。--ulimit使用软限制和硬限制指定如下:<type>=<soft limit>[:<hard limit>],例如:

$ docker run --ulimit nofile=1024:1024 --rm debian sh -c “ulimit -n”

如果您不提供hard limit,soft limit将用于这两个值。如果没有设置ulimits,它们将从守护进程上设置的默认ulimits继承。as选项现已禁用。换句话说,不支持以下脚本:

$ docker run -it --ulimit as=1024 fedora /bin/bash

值在设置时发送到适当的syscall。Docker不执行任何字节转换。在设置值时考虑到这一点。

3.22、对于nproc使用


小心使用ulimit标志设置nproc,因为nproc是由Linux设计的,可以设置用户使用的最大进程数量,而不是容器。例如,使用daemon用户启动四个容器:

$ docker run -d -u daemon --ulimit nproc=3 busybox top

$ docker run -d -u daemon --ulimit nproc=3 busybox top

$ docker run -d -u daemon --ulimit nproc=3 busybox top

$ docker run -d -u daemon --ulimit nproc=3 busybox top

第4个容器失败,并报告“[8]系统错误:资源暂时不可用”错误。这失败是因为调用者setnprocnproc=3导致前三个容器用完了为daemon用户设置的三个进程配额。

3.22、带有信号的停止容器(–stop-signal)


--stop-signal标志设置系统调用信号,该信号将发送到容器退出。此信号可以是SIG格式的信号名称,例如SIGKILL,也可以是与内核syscall表中位置匹配的无符号数字,例如9。

如果没有指定,默认值为SIGTERM

3.23、可选的安全选项(–security-opt)


在Windows上,此标志可用于指定 credentialspec选项。credentialspec必须位于formatfilefile://spec.txt或registry://keyname

3.24、停止带超时的容器(–停止超时)


--stop-timeout标志设置了发送预定义(见--stop-signal)系统调用信号后等待容器停止的秒数。如果容器在超时后没有退出,它将被SIGKILL信号强行杀死。

如果--stop-timeout设置为-1,则不应用超时,守护进程将无限期等待容器退出。

默认值由守护进程决定,Linux容器为10秒,Windows容器为30秒。

3.25、指定容器的隔离技术(–隔离)


自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
android面向切面编程,【Docker开篇第二篇】Docker 掌握核心技(1),【深夜思考】,2024年程序员学习,android,docker,容器
android面向切面编程,【Docker开篇第二篇】Docker 掌握核心技(1),【深夜思考】,2024年程序员学习,android,docker,容器
android面向切面编程,【Docker开篇第二篇】Docker 掌握核心技(1),【深夜思考】,2024年程序员学习,android,docker,容器
android面向切面编程,【Docker开篇第二篇】Docker 掌握核心技(1),【深夜思考】,2024年程序员学习,android,docker,容器
android面向切面编程,【Docker开篇第二篇】Docker 掌握核心技(1),【深夜思考】,2024年程序员学习,android,docker,容器
android面向切面编程,【Docker开篇第二篇】Docker 掌握核心技(1),【深夜思考】,2024年程序员学习,android,docker,容器
android面向切面编程,【Docker开篇第二篇】Docker 掌握核心技(1),【深夜思考】,2024年程序员学习,android,docker,容器

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip204888 (备注Android)
android面向切面编程,【Docker开篇第二篇】Docker 掌握核心技(1),【深夜思考】,2024年程序员学习,android,docker,容器

最后

写到这里也结束了,在文章最后放上一个小小的福利,以下为小编自己在学习过程中整理出的一个学习思路及方向,从事互联网开发,最主要的是要学好技术,而学习技术是一条慢长而艰苦的道路,不能靠一时激情,也不是熬几天几夜就能学好的,必须养成平时努力学习的习惯,更加需要准确的学习方向达到有效的学习效果。

android面向切面编程,【Docker开篇第二篇】Docker 掌握核心技(1),【深夜思考】,2024年程序员学习,android,docker,容器

本文已被CODING开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》收录

一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!

AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算文章来源地址https://www.toymoban.com/news/detail-853281.html

o-1712235408600)]

本文已被CODING开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》收录

一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!

AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算

到了这里,关于android面向切面编程,【Docker开篇第二篇】Docker 掌握核心技(1),【深夜思考】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • AOP(面向切面编程)

    AOP 为 Aspect Oriented Programming 的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP 是 OOP(面向对象编程)的延续,是软件开发中的一个热点,也是 Spring 框架中的一个重要内容,是函数式编程的一种衍生范型。利用 

    2024年02月05日
    浏览(47)
  • Spring面向切面编程(AOP)

    AOP(Aspect Oriented Programming),即面向切面编程,利用一种称为\\\"横切\\\"的技术,剖开封装的对象内部,并将那些影响了多个类的公共行为封装到一个可重用模块,并将其命名为\\\"Aspect\\\",即切面。所谓\\\"切面\\\",简单说就是那些与业务无关,却为业务模块所共同调用的逻辑或责任封装

    2024年02月07日
    浏览(45)
  • Spring AOP:面向切面编程

    在软件开发中,我们经常会遇到一些横切关注点(cross-cutting concerns),如日志记录、事务管理和安全性等。这些关注点不属于特定的模块或类,而是横跨整个应用程序。传统的面向对象编程方法往往会将这些关注点与核心业务逻辑混杂在一起,导致代码的可读性和可维护性下

    2024年02月09日
    浏览(44)
  • AOP 面向切面编程 入门练习

    添加依赖 Spring配置文件 接口类和实现类 切面类 测试类

    2024年04月11日
    浏览(42)
  • JAVA:面向切面编程AOP

            把某一些功能提取出来与某一对象进行隔离,提取之后可以对某哥单方面的功能进行修改和扩展         也就是把众多方法中的的所有公共代码抽取出来,放到某个地方集中管理         对业务逻辑的各个部分进行了隔离,从而降低业务逻辑各部分之间的耦合,

    2024年02月07日
    浏览(50)
  • Spring第三讲:SpringAOP面向切面编程

    5、1什么是AOP AOP(Aspect Orient Programming),面向切面编程,AOP 是一种编程思想,是面向对象编程(OOP)的一种补充。面向切面编程,实现在不修改源代码的情况下给程序动态统一添加额外功能的一种技术。AOP可以拦截指定的方法并且对方法增强,而且无需侵入到业务代码中,使

    2024年02月12日
    浏览(43)
  • [SSM]Spring面向切面编程AOP

    目录 十五、面向切面编程AOP 15.1AOP介绍 15.2AOP的七大术语 15.3切点表达式 15.4使用Spring的AOP 15.4.1准备工作 15.4.2基于AspectJ的AOP注解式开发 15.4.3基于XML配置方式的AOP(了解) 15.5AOP的实际案例:事务处理 15.6AOP的实际案例:安全日志 IoC使软件组件松耦合。AOP让你能够捕捉系统中经

    2024年02月15日
    浏览(46)
  • 认识 spring AOP (面向切面编程) - springboot

    本篇介绍什么是spring AOP, AOP的优点,使用场景,spring AOP的组成,简单实现AOP 并 了解它的通知;如有错误,请在评论区指正,让我们一起交流,共同进步! 本文开始 AOP: 面向切面编程,也就是面向某一类编程,对某一类事情进行统一处理; spring AOP: 是实现了AOP这种思想的一

    2024年02月14日
    浏览(49)
  • Spring AOP(面向切面编程)和方法拦截

    Spring AOP(面向切面编程)和方法拦截 Spring是一款广泛使用的Java开发框架,提供了丰富的功能和工具,用于简化企业级应用程序的开发。其中一个重要的特性是面向切面编程(AOP)和方法拦截。本文将介绍Spring AOP和方法拦截的概念、工作原理以及在实际开发中的应用。 在软

    2024年02月05日
    浏览(44)
  • C# 面向切面编程之AspectCore实践(二)

    在上一篇中对AspectCore进行了初步的了解,用于拦截的属性加在了具体类的方法上。 C# 面向切面编程之AspectCore初探 这一篇验证一下把拦截属性加在接口上,这样实现该接口的类中所对应的方法都会被拦截到;另外示例中还尝试对方法的入参进行了修改,验证了通过AspectConte

    2024年01月17日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包