Docker学习(一)
docker
DevOps持续交付:
传统模式部署环境:
1.开发写代码(Java语言),写完代码后使用构建工具(Ant,Maven)把代码构建成一个.war包
2.然后开发把.war发送给运维(或者是测试),然后运维把.war部署到TOMCAT的WEB容器
3.启动TOMCAT,然后产品就可以访问以及测试了
4.运维同步开发或者测试,反馈环境已部署ok,可以开始测试
现在模式:
从代码提交到环境部署,全部都是自动化的模式。中间减少了人为沟通的成本,这个模式的流程具体总结如下:
1.开发提交代码到Gitlab,触发Jenkins自动使用构建工具(Ant,Maven)来构建成.war包
2.构建.war成功后,通过ssh服务把.war自动发送到TOMCAT的WEBAPPS目录下
3.自动启动TOMCAT的服务
4.TOMCAT服务启动成功后,通过钉钉(企业微信)自动告诉相关人员,环境已部署好,可以开始测试
技术栈:Git,GitLab,Docker,Jenkins,K8S,云服务器
Docker解决了什么?
微服务架构最初是由几个顶级的架构师提出的一种新的架构模式,但是这种新的架构模式非常具备前瞻性,但在落地的过程中由于环境部署的问题,迟迟不能在企业落地。Docker以及K8S容器化遍排技术的开源和发展,解决了微服务架构最后一公里的技术问题(环境部署)。
主流编程语言:
Java:企业级主流的语言,业内阿里巴巴所有的产品都是Java
Python:主流的开发语言,最早是豆瓣使用,后来各个互联网公司使用,也是Google四大语言之一
Go:Google发明的语言,被称为21世纪的C语言,Go语言非常优秀但是一直不温不火,随着Google开源了K8S,Go语言也迅速的占据了市场,Go语言主要应用于底层微服务,容器化开发,其中业内的字节跳动要求测试开发都得具备Go语言的基础开发能力。
Net:微软主导的语言,企业级语言
C/C++:底层开发语言,如操作系统等都是使用C/C++的语言开发的,都是高手使用的语言
PHP:轻量级语言,适合几个人的研发团队来使用,不适合大型研发使用
JavaScript:前端核心语言,必须掌握的,前端的三大框架(Vue,React,AngleJS)都是使用JavaScript来开发的
主流操作系统:windows,Linux,unix
科技公司:
Microsoft
Oracle
苹果
阿里巴巴:阿里云+
腾讯
华为
镜像:image容器container:一个镜像运行后的程序就是容器
获取image的方法:
1、docker pull imagename
2、在docker hub网站搜索是否存在imageaName
3、存在,就获取下来,不存在,就报错

查询存在的所有镜像:
docker images
只查询某一个镜像:
docker images | findstr imageName
查询结果解析:第一个是镜像的名称、第二个是版本、第三个是镜像的id、第四个是发布的时间、第五个是镜像的大小
运行镜像:
docker run --rm imageName
以运行hello-world为例子

获取linux的镜像:
docker pull centos:7.8.2003

docker image inspect imageID

运⾏镜像
获取docker的镜像后,就可以运⾏对应的docker的镜像信息了,运⾏的命令为run,具体指令总结如下:
-it:开启交互式的命令
--rm:容器退出时删除容器的记录信息

--name:指定容器的名称

-d:后台⽅式运⾏容器
查看容器的记录:
docker ps -a
docker ps -a | findstr imagename #查看运行的容器记录信息
修改命令
docker tag imageID 修改后的镜像名称

删除命令
docker rmi imageName
docker rmi imageID
先用名称删除再用id删除
多个一样的id用id删除删不掉

docker的镜像被容器运⾏
如果⼀个镜像被容器运⾏了,那么删除镜像的步骤可以总结为:
得到容器的ID信息
删除关联的容器ID
使⽤name或者ID来删除镜像
nginx:反向代理的中间件,俄罗斯人发明
-p:指定端口 所有的服务,都是有端口的
nginx的默认端口是80
启动nginx docker run -p 80:80 nginx
查看容器的端口: docker port 93e79f125938
-p :指定运行容器的端口
docker port containerID:查看运行的容器的端口
docker ps -a :查看所有运行的容器记录
docker ps -a | grep name
删除容器:docker rm imageID
容器的停止和启动 docker stop containerID docker start containerID
导入导出的场景:
1、比如开发在本地构建一个镜像 2、开发导出 3、把文件发送给测试 4、测试导入到docker 5、测试运行镜像,环境OK,开始测试
导出: docker image save nginx -o /Users/liwangping/Desktop/nginx.taz
docker image save imageName -o 路径/nginx.taz
导入: docker image load -i nginx.taz


浙公网安备 33010602011771号