dockerfile
Dockerfile概述
使用dockerfile主要是用于构建docker镜像文件信息,相当于一个脚本,通过dockerfile自己的指令,来构建软件依赖,文件依赖,存储等等情况。
Dockerfile使用
在docker中创建镜像可以分为两个方法,这两个方法具体可以总结为如下:
• 手动修改容器内容,然后docker commit提交容器为新的镜像文件
• 通过在dockerfile中定义一系列的命令和参数构成的脚本,然后这些命令应用于基础镜像,依次添加层,最终生成一个新的镜像,这样就极大的简化了部署的工作。
Dockerfile组成部分
dockerfile的主要组成部分可以汇总为:
• 基础镜像信息
• 制作镜像操作指令 RUM
• 容器启动时执行指令CMD["/bin/bash"]
Dockerfile基本指令
dockerfile的指令主要可以汇总为如下,使用dockerfile的前提是学习会这些指令的基本使用,具体如下:• FROM #指令基础镜像
• MAINTAINER #指定维护者信息,也可以没有
• RUN #具体执行的操作,在命令前面加上RUN即可
• ADD #COPY文件,会自动进行解压
• WORKDIR #设置当前工作目录
• VOLUME #设置卷,挂载主机目录
• EXPOSE #指定对外的端口
• CMD #指定容器启动后需要干的事情
• COPY #复制文件
• ENV #环境变量
• ENIRYPOINT #容器启动后执行的命令
创建一个文件夹learnDocker
在这个文件夹里面创建一个文件:Dockerefile
环境部署基本流程:
1、开发编写完代码进行自测
2、编写Dockerfile来构建镜像
3、执行编写的Dockerfile的文件
4、执行Dockerfile文件成功后,也就是构建镜像成功
1、开发编写完代码进行自测
2、编写Dockerfile来构建镜像
3、执行编写的Dockerfile的文件
4、执行Dockerfile文件成功后,也就是构建镜像成功
构建:docker build -t app -f Dockerfile .
5、使用docker images,就可以查看到构建成功的镜像信息
5、使用docker images,就可以查看到构建成功的镜像信息
6、把镜像导出,发送给测试同学
导出:docker image save hello-world:latest(被导入的镜像) -o C:\xuexi\hello.taz(被导出的镜像在本地的记录,名称为自定义)
7、测试再导入,使用docker run来运行这个镜像,运行成功后,环境部署OK
7、测试再导入,使用docker run来运行这个镜像,运行成功后,环境部署OK
导入:docker load -i /Users/caiying/learnDocker/app.taz (被导出的镜像在本地的记录,名称为自定义)
运行:docker run --rm -p8081:8081 app
8、开始测试验证
8、开始测试验证
mvn clean #清空,现象就是target的文件夹就会消失
mvn package #把服务(应用程序)打包成jar文件,现象就是在项目的目录下出现了target的文件夹,打包成功的jar世纪就是在target的文件夹里面。
运行jar包的命令:
java -jar xxx.jar
mvn package #把服务(应用程序)打包成jar文件,现象就是在项目的目录下出现了target的文件夹,打包成功的jar世纪就是在target的文件夹里面。
运行jar包的命令:
java -jar xxx.jar
将打包好的jar包下载放到和dockerfile的同级目录下:

构建jar的过程:
1、Dockerfile的文件内容
FROM centos
FROM java:8
MAINTAINER 无涯
#复制文件到容器目录
COPY app-0.0.1-SNAPSHOT.jar /opt
#切换目录
WORKDIR /opt
#启动服务
EXPOSE 8081
CMD ["java","-jar","app-0.0.1-SNAPSHOT.jar"]

2、构建过程输出的信息
docker build -t app -f Dockerfile .
3、查看镜像 docker images

4、运行镜像
docker run --rm -p8081:8081 centos_name

如果8081端口被占用错误提示信息如下: 
解决办法:kill -9 进程号




浙公网安备 33010602011771号