Docker-Dockerfile

什么是 Dockerfile?

Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。

FROM 和 RUN 指令的作用

FROM:定制的镜像都是基于 FROM 的镜像,这里的 openjdk 就是定制需要的基础镜像。后续的操作都是基于 openjdk

 

在我的项目中创建两个文件:

位置:和src同一目录

Docker-Dockerfile_第1张图片

文件一(build.sh):

#!/usr/bin/env bash
mvn clean package -Dmaven.test.skip=true
docker build -t jenkins:latest .

注意:最后的 . 代表本次执行的上下文路径

上下文路径,是指 docker 在构建镜像,有时候想要使用到本机的文件(比如复制),docker build 命令得知这个路径后,会将路径下的所有内容打包。

解析:由于 docker 的运行模式是 C/S。我们本机是 C,docker 引擎是 S。实际的构建过程是在 docker 引擎下完成的,所以这个时候无法用到我们本机的文件。这就需要把我们本机的指定目录下的文件一起打包提供给 docker 引擎使用。

如果未说明最后一个参数,那么默认上下文路径就是 Dockerfile 所在的位置。

上下文路径下不要放无用的文件,因为会一起打包发送给 docker 引擎,如果文件过多会造成过程缓慢。

文件二(Dockerfile):

FROM  openjdk:oraclelinux7
COPY  target/jenkins-0.0.1-SNAPSHOT.jar  /jenkins.jar
ENTRYPOINT  ["java","-jar","-Dspring.profiles.active=dev","/jenkins.jar"]

 

第一步:

1.拉取代码,进入到项目下一级,执行build.sh脚本

2.执行  docker  run -it -p 8088:8088 jenkins:latest

效果:

Docker-Dockerfile_第2张图片

学习总结:

docker  pull openjdk:7-jre
docker  images|grep  jdk
docker  run  -it  --entrypoint  bash  openjdk:7-jre
docker  build  -t   eshop-server:latest .
docker  pull python:3.6
python  -V  查看python版本
docker  run  -it  --entrypoint  bash   python:3.6
uname  -a    查看系统内核
docker  run -it  eshop-server:latest  --redis.address=127.0.0.1
docker-compose  up -d
docker-compose  up -d  eshop-server-service  单独启动一个服务
java -jar  -tf  eshop-server.jar  查看jar包里面的文件内容

docker  ps|grep user
docker  exec  -it  contained bash
curl  eshop-server-service:9090

 学习参考资料:https://www.runoob.com/docker/docker-dockerfile.html

你可能感兴趣的:(Docker-Dockerfile)