docker容器化(二)

四、docker容器管理

docker run 镜像名称 这个过程可以理解为:把镜像文件创建成docker容器的一部分,然后再进行启动

4.1容器命令

在运⾏镜像中,后⾯需要带⼀些指令的信息,这些指令的信息具体汇总为如下:

-d:后台运⾏

-it:交互式命令(bash)

--rm:容器挂掉后⾃动被删除

--name:给容器起⼀个名字

-p:端⼝映射

4.2容器信息的查看

1.先打开一个控制台,查看centos镜像,再运行centos,

2.打开另外一个控制台,查看容器运行记录,获取到容器的id,

3.查看容器详细信息:docker container inspect containerID

 

 

容器日志查看的场景:

假设别人问,你们之前是使用Docker来部署环境吗?

答:是的

那如果被测试的程序出问题了,你日志是在哪里看的,怎么反馈给开发的?

1.获取到程序运行的容器ID

2.通过docker logs容器ID来查看错误的日志

3.日志信息获取成功后,发送给开发

4.3 log查看

查看日志方式:

1.一种是查看动态的日志(日志在实时的更新,一直查看最后的日志信息)

命令:docker logs -f containerID

 

 

2.一种是查看静态的日志(把日志文件下载下来,打开查看)

命令:docker logs containerID

 

 

当日志内容很多的时候,只想查看最后的N行

docker logs containerID | tail -N

4.4容器提交

操作步骤: 1、先进入到容器里面 docker run -it --rm centos:7.8.2003 bash

2、在容器里面安装第三方的软件 yum install vim

3、查看容器的ID docker ps -a | findstr centos

4、然后提交(提交期间,容器是不能退出) docker commit containerID newImageName

 

 

 

 

进入vim怎么退出?

1.进入vim,按esc

2.再按shift :

3.再输入q!

使用Docker部署环境流程:(面试题)

1.开发编写代码完成后

2.开发编写Dockerfile文件来构建成镜像

3.然后使用docker run来启动镜像,也就是容器

4.通过如上步骤就可以完成环境部署,测试可以开始测试

五、Dockerfile实战

Dockerfile概述

使⽤dockerfile主要是⽤于构建docker镜像⽂件信息,相当于⼀个脚本,通过dockerfile⾃⼰的指令,来构建软件依赖,⽂件依赖,存储等等情况。

其实可以把它理解为操作Docker一系列命令的集合

5.1Dockerfile组成部分

dockerfile的主要组成部分可以汇总为:

基础镜像信息

制作镜像操作指令 RUN

容器启动时执行指令CMD["/bin/bash"]

 

 

5.2Dockerfile基本指令

dockerfile的指令主要可以汇总为如下,使用dockerfile的前提是学习会这些指令的基本使用,具体如下:

FROM #指令基础镜像

MAINTAINER #指定维护者信息,也可以没有

RUN #具体执行的操作,在命令前面加上RUN即可

ADD #COPY文件,会自动进行解压

WORKDIR #设置当前工作目录

VOLUME #设置卷,挂载主机目录

EXPOSE #指定对外的端口

CMD #指定容器启动后需要干的事情

COPY #复制文件

ENV #环境变量

ENIRYPOINT #容器启动后执行的命令

5.3Dockerfile实战

5.3.1部署centos

1.在桌面创建一个learnDocker文件夹,在里面创建一个Dockerfile记事本(去掉.txt后缀)并保存

2.在控制台进入到learnDocker目录下,再输入docker build .构建镜像

3.docker images:查看所有镜像,找到构建的镜像id

4.docker tag 737925f1c68f centos_a:修改镜像名称,也可以在构建镜像的时候直接给镜像命名:docker build -t centos_a .

5.docker run --rm -it centos_a bash:运行这个镜像

 

 

 

5.3.2部署Nginx

下⾯显示部署nginx的服务,期望部署是启动容器后,可以访问它的地址显示的信息。涉及到的nginx的Dockerfile的⽂件内容为:

 

 

 

 重新打开一个控制台,验证nginx服务可运行,输入命令:curl http://localhost:80

 

 

查看80端口是否被占用,打开一个控制台输入命令:netstat -ano | findstr 80

查看占用80端口的进程id

再输入:tasklist | dfindstr pid

如果需要结束进程,打开任务管理器,找到对应的pid,结束该进程

 

 

5.3.3部署python

本案例主要使⽤Python语⾔,使⽤的WEB框架是Flask,然后来实现⼀个⽹站的部署过程,也就是说写好程序代码

好后,开发dockerfile的代码,执⾏以及⽣成镜像,其他⼈基于该镜像,docker run就可以在电脑跑起来对应的应

⽤程序。

1.将Dockerfile文件和app.py程序代码储存到本地

 

 

 

2.在控制台进入文件所在的目录下,构建镜像

指令为:docker build -t python_web .

 

 

3.运行容器

命令为:docker run --rm -it -p 5000:5000 python_web

 

 

5.3.4部署java

 

开发编写完代码后,开始编写Dockerfile文件,构建,运行,环境部署ok,开发发现问题,开发修改问题,修改问题就等于是更新了代码,又得重新构建镜像,运行

测试环境部署:测试/运维

需要知道是在哪个电脑上、哪个目录下,去构建镜像

 

Dockerfile文件大概知道有哪些内容吗?

1.以Java语言为例,需要centos,jdk(java环境的基础镜像)

2.需要到哪个目录下

3.指定占用的端口,启动的命令 cmd

 

WEB开发一般会使用到框架,这些框架具体是:

1、Django:全栈WEB框架 2、Flask:轻量级WEB框架

 

Java技术栈的微服务开发框架

SpringBoot SpringCloud SpringCloudalibaba

Java的目录结构:

 

 场景: 开发已经更新了代码,并且把打包的命令已经发送给了测试,而且也告诉了测试是在那个目录下执行,这个时候开发说让自己部署环境。

1、进入到开发说的目录下

2、执行打包的命令 mvn package:把java的代码打包成.jar

 3、打包成功后

4、进入到target的目录:cd target

5、执行如下命令直接部署环境 java -jar app-0.0.1-SNAPSHOT.jar

 

 

 

5.3.5部署springboot

1.将Dockerfile文件储存到本地learnDocker目录下

 

 

 2.构建镜像docker build -t springboot .

 

 3.启动镜像

 

 

posted @ 2022-05-07 16:16  lm970418  阅读(57)  评论(0编辑  收藏  举报