CONTAINER(containers文件夹可以删除吗)
case和container的区别
在海运单上:CASE在实际操作中用的比较多,可以说是木箱或者柳条箱;CONTAINER是集装箱
如何理解 yarn 的 container
container就是“一组资源”,现在是“内存+CPU”,未来还有可能把网络带宽之类的也包含进去。
当有一个Application(在MRV1里叫Job),第一个container就用来跑ApplicationMaster,然后ApplicationMaster再申请一些container来跑Mapper,之后再申请一些container来跑Reducer。
container既可以跑Mapper也可以跑Reducer,就不像MRV1里的map slot只能跑map、reduce slot只能跑reduce。
container程序员打的是什么意思?
container是很多框架里面的一个布局容器,主要用来设置默认样式的,比如前端框架bootstrap,后端框架layui等,项目代码中都使用了这个容器。下面是软件开发中的部分知识:
瀑布模型式就是是最典型的预见性的方法,严格遵循预先计划的需求、分析、设计、编码、测试的步骤顺序进行。敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。
一、瀑布开发
瀑布模型式是最典型的预见性的方法,严格遵循预先计划的需求、分析、设计、编码、测试的步骤顺序进行。步骤成果作为衡量进度的方法,例如需求规格,设计文档,测试计划和代码审阅等等。
瀑布式的主要的问题是它的严格分级导致的自由度降低,项目早期即作出承诺导致对后期需求的变化难以调整,代价高昂。瀑布式方法在需求不明并且在项目进行过程中可能变化的情况下基本是不可行的。
需求隔离:由于各阶段的人员只能接触到自己工作范围内的东西,所以对客户需求的理解程度高低不等,开发人员更像是定义为流水线上的工人。
变更代价大:既然叫作瀑布,就意味着不应该走回头路。否则如果出现返工,付出的代价会很大。需求变更,编码人员会很强的抵触情绪。
束缚创造性:由于强调文档管理,所以管理人员会比较喜欢,但是他束缚了开发人员的创造性。
周期漫长:整个开发持续的生命周期很长,需求和设计的时间会耗费特别多,有时候会占用三分之一甚至更多时间,这样整个周期就会变长,大都在半年到一年左右的时间,所以更适合需求相对稳定的大项目。
二、敏捷软件开发
敏捷软件开发是基于敏捷宣言定义的价值观和原则的一系列方法和实践的总称。自组织、跨职能团队运用适合他们自身环境的实践进行演进得出解决方案。
敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。
缺点:
很难进行准确的资源规划,很难准确的定义“轻量的“或必要的文档,很难把握整体产品的一致性,很难预测有限的终点,很难有效地进行度量。
希望能帮到你,谢谢!

container 并非一直处于 running 状态
第一次接触 docker,都会有个错觉,认为运行一个 container 就和运行一个虚拟机一样, docker run ... 之后,该 container 即一直处于 running 状态。
Sorry! You are absolutely wrong!
container 刚起来的时候,用户可以通过 dockerfile 中的 CMD,ENTRYPOINT,或者直接在 docker run 后面接 comand,来指定 container 启动时执行的程序。如果指定的程序只是一个短暂的任务,比如 echo sorry 。那么,sorry,container 在输出 “sorry” 之后,就退出了。可以通过 docker inspect 看到,container 状态变成了 Exited 。
有人说,这有什么关系,container 还在那里,没有销毁,只是状态值不是 running 而已。
可是,可是,这个真是有关系啊!
一旦进入 Exited 状态,以下命令将不再 work:
这两个命令都需要 container 处于 running!
在非常不情愿接受以上事实之后,你或许马上想到了解决方案—— docker start
官方文档里有明确指出, docker start container 可以重新启动 container ,那它又可以转成 running 状态啦~~
是的,没错!
但是,(很残忍滴告诉你)问题依然没有解决!
刚刚 start 的 container 在启动之后,会再一次执行 CMD 的命令。然后。。然后。。它又很快完成任务,进入 Exited 状态休息了。。。
如果启动一个 container 之后,想把它当做一个虚拟机使用(也就说,使用 docker exec 在 container 内部环境中运行程序),那么一定要保证这个 container 一直处于 running 的状态。
有两种情况需要考虑:
对于第二种情况,container 中一直运行着 web 服务器,作为一个 service,除非你主动 stop 它,这个 service 会一直跑着。于是,起来的 container 也会一直 running,于是执行 docker exec 没有任何问题
对于第一种情况,很明显 container 不久之后就会 Exited。让它一直处于 running 的方法至少有两种:
其中, docker ps -ql 用于获得最近创建的 container 的 id。这个方法的缺点在于,多创建了一个 image,占用空间。这里可能看不出来有啥影响,考虑 CI/CD 情形的话,这个缺点几乎是不能忍。
docker 的container模式
Docker网络container模式是指,创建新容器的时候,通过 --net container 参数,指定其和已经存在的某个容器共享一个 Network Namespace。如下图所示,右方黄色新创建的container,其网卡共享左边容器。因此就不会拥有自己独立的 IP,而是共享左边容器的 IP 172.17.0.2,端口范围等网络资源,两个容器的进程通过 lo 网卡设备通信。
但这两个容器在其他的资源上,如文件系统、进程列表等还是隔离的。
使用busybox镜像新建bb容器,bb容器网络模型默认采用的bridge模式
使用Nginx镜像新建nginx容器,并用 --net container:bb 参数,指定该容器的网络模型为container模式,和bb容器共用相同的网络命名空间。
进入bb容器
使用命令查看网络端口情况
可以看到,nginx容器的80端口已经映射到了bb容器的80端口
在bb容器内部访问bb容器本机的80商品,我们可以看到实际上可以访问到nginx容器的
查看bb容器的ip地址,并退出bb容器
使用上面得到IP地址,从云环境主机的环境,去访问
也会得到
总结
Docker container网络模式,这种模式可以节约一定的网络资源,并能降低容器间的通信的难度。container网络模式使多个容器共享网络环境,在这种模式下容器可以通过访问localhost来访问 namespace下的其他容器,网络性能高