docker(1)

一、DevOps持续交付:

传统模式部署环境:

1、开发写代码(Java语言),写完代码后使用构建工具(Ant,Maven)把代码构建成一个.war包

2、开发把.war包发送给运维(或者是测试),然后运维把.war部署到TOMCAT这个WEB容器

3、启动TOMCAT,然后产品就可以访问以及可以测试了

4、运维同步开发或者测试,反馈环境已部署OK,可以开始测试

 

现在模式:

从代码提交到环境部署,全部都是自动化的模式,中间减少了人为的沟通成本,这个模式的流程具体总结如下:

1、开发提交代码到Git,触发Jenkins自动使用构建工具(Ant,Maven)来构建成.war包

2、构建.war包成功后,通过ssh服务把.war自动发送到TOMCAT的webapps目录

3、自动的启动TOMCAT服务

4、TOMCAT服务启动成功后,通过钉钉(企业微信)自动告诉相关的人,环境部署已OK,可以开始测试

(传统模式 、现在模式部署环境 面试可能会问)

 

技术栈:

Git,GitLab,Docker,Jenkins,K8S,云服务器

 

二、Docker解决了什么?

Docker是一种轻量级的虚拟化技术,同时是一个开源的应用容器运行环境搭建平台,可以让开发者以便捷方式打包应用到一个可移植的容器中,然后安装至任何运行Linux或Windows等系统的服务器上。相较于传统虚拟机,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

阿里巴巴:阿里云+

腾讯

 

四、docker下载与安装

见环境搭建笔记

查看docker版本

出现以下画面 则表示docker环境已经ok

 

 

五、镜像与容器

【输入命令是在cmd控制台中,要先打开docker软件。】

术语:

镜像image: win7 (同步 获取:docker pull)

容器container :一个镜像运行后的程序就是容器

https://hub.docker.com/_/hello-world 镜像平台

5.1.获取镜像

docker pull 镜像名称

(获取镜像都是从docker hub镜像平台 获取的)

获取image的步骤:

  1. docker pull imageName(镜像名称)

  2. 在docker hub网站搜索是否存在imageName

  3. 存在 就获取下来 不存在就报错

 

5.2查看所有镜像

docker images

 ↑ 镜像名称      镜像版本     镜像id       发布的时间     镜像大小

 

5.3过滤查看镜像:

docker images | grep  镜像名称          (mac)

docker images | findstr 镜像名称     (windows)
 

 

5.4运行镜像

docker run --rm 镜像名称

 

 

例: 获取Linux镜像

docker pull centos:7.8.2003

冒号后面是它的版本

 

运行镜像

docker run --rm -it 名称 版本

获取docker的镜像后,就可以运⾏对应的docker的镜像信息了,运⾏的命令为run,具体指令总结如下:

  • -it:开启交互式的命令 (命令行模式)

  • --rm:容器退出时删除容器的记录信息

  • --name:指定容器的名称

  • -d:后台⽅式运⾏容器

运行linux镜像:

docker run --rm -it centos:7.8.2003 bash (指定名称和版本)

 

给容器再定义一个名称(以centos为例)

--name 后面跟名字 (centos的名称为linux)

 

5.5查看所有运行容器的运行记录

docker ps -a

(如果运行镜像命令中带着--rm ,退出镜像后就搜索不到记录。

如果当前处于运行容器中 我们需要查看记录 可以重新打开一个cmd 来查看容器的运行记录)

 

通过过滤名称 查看容器运行的记录信息

docker ps -a | findstr 名称 

 

图中的container id 是容器id,每运行一次容器就会有一次记录,有一个新的容器id

 

5.6只显示镜像id

docker images -q

 

5.7根据id查看镜像的具体信息

docker image inspect 镜像id
 

 

5.8镜像修改(复制一份 然后修改复制出来的镜像的名称)

docker tag imageID 修改后的镜像名称
 

 

5.9镜像删除

5.9.1、docker的镜像未被容器运行

根据name删除镜像:

docker rmi 镜像名称

根据id删除镜像:

docker rmi 镜像id

注意:镜像id 一致的时候不能用id删除成功(例如我们前面修改名字时复制出来的镜像 ,他们的id是一样的)

 

5.9.2、docker的镜像被容器运行

如果⼀个镜像被容器运⾏了,那么删除镜像的步骤可以总结为:

  • 得到容器的ID信息

  • 停止容器

     

  • 删除关联的容器ID

  • 使⽤name或者ID来删除镜像

具体步骤如下:

1、运行nginx 2、查看容器的记录 3、在浏览器访问nginx 4、删除nginx的镜像 5、停止nginx的运行 6、删除nginx的容器记录 7、删除nginx的镜像

 

第一步:运行nginx (nginx是一个服务 ,运行需要指定端口,所以需要先获取到端口)

容器id的获取方式:

1、docker ps -a(查看容器的运行记录)

2、container id 就是容器id

 

 查看容器的端口: docker port 容器id

 

运行nginx

docker  run -p 80:80 nginx

nginx:反向代理的中间件,俄罗斯人发明

所有的服务,都是有端口的。nginx的默认端口是80

第一个80 是电脑的80端口要开放 第二个80是服务器的80端口要开放

-p:指定运行容器的端口

 

第二步:查看容器的记录()

 

第三步:在浏览器访问nginx

http://localhost:80

第四步:删除nginx的镜像

这时容器是在运行中的,肯定是删除镜像会有报错 无法删除,这时我们执行下面的步骤,先停止容器的运行,再删除容器的记录,最后删除容器就可以了

 

第五步:停止nginx容器的运行

docker stop  containerID(容器id)

 

第六步:删除nginx的容器记录

docker ps -a                     查看到容器的运行记录 并且获取到容器id

docker rm 容器id             通过容器id删除容器记录    注意:删除容器命令是rm,删除镜像命令是rmi

如果镜像运行了多次,有多个容器,就要删除多个容器

 

第七步 :删除nginx的镜像 (这一步不操作,否则还要获取一个镜像,比较费时间)

docker rmi 名称/镜像id

 

查看容器的端口:

docker port 容器id
 

容器的停止和启动

docker stop  containerID(容器id)
docker start containerID(容器id)

容器在控制台停止以后,在浏览器中就无法访问

 

5.10导入导出的场景:

1、比如开发在本地构建一个镜像

2、开发导出

3、把文件发送给测试

4、测试导入到docker

5、测试运行镜像、环境ok、 开始测试

 

导出:

docker image save 镜像名称 -o 路径/镜像名称.taz

 

 导入:

docker image load -i 镜像名称.taz

注意:导入镜像前,要先进入到镜像存放的目录

 

例:

 

 

posted @ 2022-05-06 17:03  jia---  阅读(121)  评论(0)    收藏  举报