Skip to main content

如果在linux下面做开发就知道docker的妙处了。

http://gengwg.blogspot.com/

如果在linux下面做开发就知道docker的妙处了。其实docker不光是有虚拟机的特性,
还加上了版本的概念,docker里面有两个重要概念,image和container。

image就是系统镜像,这个就好比git里面的一个master branch,这个branch你可以从
docker hub下载回来,也可以自己push一个上去,dock hub和git hub的概念类似。

拿到image之后,你可以基于这个image run出具体的container,这个container就是一
个isolated的running instance,可以理解为从branch fork出了一个新的branch并且
在上面工作。和git一样,针对一个image,你可以run无数个container,相当与一套配
置可以跑无数个实例,非常方便。

如果你对于某个实例做了自己的改动,想把这些改动持久化的话,可以commit到原有的
image,覆盖之前的版本,也可以commit到一个新的image,这样你就有了自己的image
,同时以前的image也还在。更妙的是,因为这些image是相互依赖的,所以保存下来的
image只是一个基于以前image的增量副本,节省了大量的空间,要知道image都是以百M
为单位来占用系统空间的。

具体到应用场景的话,比如你想对你现在的build跑一些测试,但又担心测试过程可能
会破坏现有的数据,或者你想保存每次测试的结果数据以供以后参考。在传统的流程里
面,你得用脚本去stage测试对象,测试完之后再把结果保存下来,重新stage新的测试
数据,难免会出现无法预期的问题。但是有docker的话就方便了。做好一个image之后
,用脚本启动测试,每次测试启动一个新的container实例,在里面跑完测试之后关闭
实例,启动新的实例跑下一个测试。这样以来所有的测试结果都会和真实情况一样保存
在自己独立的环境里面,是不是很方便?
--

Comments

Popular posts from this blog

CKA Simulator Kubernetes 1.22

  https://killer.sh Pre Setup Once you've gained access to your terminal it might be wise to spend ~1 minute to setup your environment. You could set these: alias k = kubectl                         # will already be pre-configured export do = "--dry-run=client -o yaml"     # k get pod x $do export now = "--force --grace-period 0"   # k delete pod x $now Vim To make vim use 2 spaces for a tab edit ~/.vimrc to contain: set tabstop=2 set expandtab set shiftwidth=2 More setup suggestions are in the tips section .     Question 1 | Contexts Task weight: 1%   You have access to multiple clusters from your main terminal through kubectl contexts. Write all those context names into /opt/course/1/contexts . Next write a command to display the current context into /opt/course/1/context_default_kubectl.sh , the command should use kubectl . Finally write a second command doing the same thing into ...

OWASP Top 10 Threats and Mitigations Exam - Single Select

Last updated 4 Aug 11 Course Title: OWASP Top 10 Threats and Mitigation Exam Questions - Single Select 1) Which of the following consequences is most likely to occur due to an injection attack? Spoofing Cross-site request forgery Denial of service   Correct Insecure direct object references 2) Your application is created using a language that does not support a clear distinction between code and data. Which vulnerability is most likely to occur in your application? Injection   Correct Insecure direct object references Failure to restrict URL access Insufficient transport layer protection 3) Which of the following scenarios is most likely to cause an injection attack? Unvalidated input is embedded in an instruction stream.   Correct Unvalidated input can be distinguished from valid instructions. A Web application does not validate a client’s access to a resource. A Web action performs an operation on behalf of the user without checkin...