了解Docker
了解Docker为了解决虚拟机的缺点而诞生Docker用途:搭建测试环境:最常用的,能解决环境不一致的问题:例如程序环境变量Docker是通过同一镜像去扩展每一个容器,所以只要用的镜像是一致的,就能保证代码等环境变量也是一致的搭建各类基础服务用例管理软件:禅道等极大提高搭建的效率只需要在官方下载相关镜像,解决环境搭建复杂环境依赖问题搭建测试执行环境Docker与...
目录
了解Docker
为了解决虚拟机的缺点而诞生
Docker用途:
搭建测试环境:
最常用的,能解决环境不一致的问题:例如程序环境变量
Docker是通过同一镜像去扩展每一个容器,所以只要用的镜像是一致的,就能保证代码等环境变量也是一致的
搭建各类基础服务
用例管理软件:禅道等
极大提高搭建的效率
只需要在官方下载相关镜像,解决环境搭建复杂环境依赖问题
搭建测试执行环境
在可见的5-8年的未来,计算机领域是离不开Docker,离不开K8S的,现在连银行都用Docker。
Docker与虚拟机的区别
虚拟机是虚拟化操作系统的内核S
Docker没有虚拟化操作系统的内核,而是直接虚拟化上层的软件,所有容器
共享宿主机内核
Docker优点:轻量级、启动极快,能打开更多的软件(容器)
缺点:若有一个容器把宿主机内核搞坏了,那整台服务器就瘫痪了
缺点2:一旦应用是挑内核(指定内核),就不好放在Docker上。如:编译C++、不能拿Docker来兼容性测试:因为不虚拟内核,内核会出现不一致,所以只能用虚拟机
缺点3:不能用来做兼容性测试。
容器是什么
容器=虚拟机
都是虚拟化方案
Docker怎样做到隔离的呢?
Namespace名称空间
用来隔离各种事情,如网络隔离空间隔离网络,进程隔离空间隔离进程
联合文件系统
Cgroups:
用来隔离资源的:cpu、内存等
配置加速器:http://www.cnblogs.com/atuotuo/p/6264800.html 这样下载外国镜像会快些
找镜像和Docker常用指令:
Jenkins、mysql等
打开网址:hub.docker.com
找official标注的,说明是最好的
有哪些坑,说明文档基本都会有描述
docker pull jenkins # 拉取镜像
docker images # 列出已经安装的镜像
docker images | grep mysql
docker pull mysql:5.6 # 这样就下载了mysql:5.6
docker rmi mysql:5.6 # 删除mysql
docker tag mysql:5.7 mysql:5.7.1 # 多出一个mysql:5.7.1与mysql:5.7一样的
相当于新建了一个索引
没网络的环境下常用:
docker save nginx > mynginx.tar # 将nginx 打包为mynginx.tar
docker load < mynginx.tar
docker run --name myJenkins -d -p 8099:8080 jenkins/jenkins # 启动镜像
--name 取一个名称为 myJenkins
-d是在后台运行
-p 8099:8080 把宿主机的8099端口映射到容器的8080端口
docker ps # 查看启动的所有容器
docker rm -f myJenkins # -f是强制,强制删除运行中的 myJenkins
docker logs -f myJenkins # 查看 myJenkins容器日志
容器网络是一个私有的虚拟网络,这些容器的ip地址都没进入路由表,
外部访问不了
docker exec是让容器去运行一条命令
-it :是登陆 其实就是tty(虚拟的shell端口)
docker exec -it myjenkins bash # 就会登入到myjenkins容器里面
exit # 退出登陆的容器
docker info # 产看各项信息
docker cp container:myJenkins:/var/jenkins_home/text.txt . # 把myjenkins中text.txt拷贝出来放到当前目录
镜像里的东西是要放在容器里跑的
容器被删除,里面的数据也丢失
docker run --name myJenkins -d -p 8099:8080 -v jenkins/jenkins:/var/jenkins_home # -v后面是工作目录
-v:把宿主机某个文件的目录挂载在容器上,容器的所有读写操作就会同步在宿主机上,即使容器出现文件,数据也得到保留
掌握以上的原理和指令基本就够用了。
=============================================
更多推荐
所有评论(0)