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

Google

苹果

Facebook

阿里巴巴:阿里云+

腾讯

华为

镜像: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

 

 

 

 

 

posted @ 2022-05-06 19:24  段舒元  阅读(38)  评论(0)    收藏  举报