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的⽂件内容为:
查看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的目录结构:
5.3.5部署springboot
1.将Dockerfile文件储存到本地learnDocker目录下
2.构建镜像docker build -t springboot .
3.启动镜像