windows环境docker学习随笔(二)使用Dockerfile打包镜像
在windows环境docker学习随笔(一)docker镜像运行中介绍了docker的基本操作和镜像下载运行,但实际开发当中除了一些像数据库之类的镜像可以直接下载,应用相关的镜像是需要自己打包的
什么是Dockerfile
Dockerfile实际上就是包含一段指令的文件,是自己新建的,这些指令其实就是打包的步骤,用来告诉docker在打包的时候要怎么构建我们的镜像,每个镜像打包的时候的操作都不一样,所以Dockerfile的内容也不一样,并不是通用的,所以要理解Dockerfile的指令到底是什么意思。
Dockerfile常用命令
详细的可以看别人的一些汇总dockerfile命令详解,这里记录几个常用的指令。
FROM
当前镜像是基于什么来打包的,一般来说我们的应用是在tomcat下运行的,所以一般来说应用打包这里都是tomcat,意思就是在tomcat的镜像上面重新打包自己的镜像。
MAINTAINER
镜像所有者的信息
COPY
将本地文件复制到镜像的指定位置,注意只能是本地文件
ADD
功能与copy一样,但是不仅限于本地文件
ENTRYPOINT
容器启动的时候默认执行的命令,如果我们是将一个war包打到tomcat下面,tomcat启动的时候自然就会运行,但是如果是jar包或者其他的东西需要另外的命令来启动的话这里就是设置执行的命令,否则启动之后不会自动执行的,需要自行进入到容器中执行。
CMD
与上面的类似,也是在容器启动的时候执行,但是cmd会在启动容器时被run命令指定的指定命令所覆盖,ENTRYPOINT就不会
打包步骤
这里以打包eureka服务为例子
第一步,将我们的eureka服务编译成jar包。
第二步,创建dockerfile文件,不需要任何后缀,并将dockerfile文件与eureka放到同一个目录下面
[code]FROM tomcat MAINTAINER XXXXXX COPY 1001eureka-server.jar /usr/local/tomcat/webapps ENTRYPOINT java -jar /usr/local/tomcat/webapps/1001eureka-server.jar
这个dockerfile的意思是,基于tomcat镜像打包,所有者是XXXXXX,将eureka的jar包复制到/usr/local/tomcat/webapps目录下,启动的时候运行“java -jar /usr/local/tomcat/webapps/1001eureka-server.jar”命令,
第三步,执行build命令,将d:/doc的文件打包,指定镜像的名称为eureka,版本号1.0,然后控制台会输出Dockerfile文件中命令的执行信息
[code]docker build -t eureka:1.0 d:/doc.
成功后可以通过images命令查看,第一个是制定了镜像名称和tag的,第二个是没有指定的会变成<none>,虽然都可以根据imgeid去使用,但是肯定是不方便的
运行刚才的镜像,将容器命名为eurekaServer,将容器的8760端口映射到本地的8761端口
[code]docker run -itd --name eurekaServer -p 8761:8760 eureka:1.0
访问localhost:8761可以进入eureka服务器,证明镜像打包成功,运行正常
- 使用dockerfile来创建环境镜像images
- docker学习笔记3—使用Dockerfile与docker build命令创建一个nginx服务器镜像,并使用浏览器进行访问
- Docker学习笔记之使用Dockerfile创建镜像
- 使用Dockerfile制作基于Centos7支持ssh的java环境镜像
- Docker学习笔记-- 如何使用Dockerfile构建镜像
- windows环境docker学习随笔(三)容器通信
- Docker学习笔记(3)-- 如何使用Dockerfile构建镜像
- Docker学习笔记(3)-- 如何使用Dockerfile构建镜像
- 使用Dockerfile定制LNMP环境镜像
- docker搭建python环境并打包镜像然后使用镜像启动python程序和flask程序
- Docker学习笔记(3)-- 如何使用Dockerfile构建镜像
- Centos下Docker使用镜像和DockerFile方式搭建JAVA Web 开发环境
- Docker学习6 - 使用Dockerfile构建镜像
- Docker学习笔记(3)-- 如何使用Dockerfile构建镜像
- Docker学习笔记-- 如何使用Dockerfile构建镜像
- docker学习笔记(六)使用Dockerfile构建镜像
- docker学习笔记4.1-使用Dockerfile文件构建镜像
- Docker学习笔记(3)-- 如何使用Dockerfile构建镜像
- docker学习系列(二):使用Dockerfile创建自己的镜像
- 使用dockerfile构建镜像