一. 背景
在docker官网镜像仓库,或者国内的一些镜像仓库(例如网易蜂巢,阿里云等),通过命令都可以下pull到一些基础的镜像,但是在项目中我们需要构建自己的镜像,该怎么做呢。下面就为大家讲解一下。
二. 镜像制作
1. 准备要制作镜像的SpringBoot项目,将项目打包成tar压缩文件。
2. 压缩文件docker-project-bin.tar的目录结构
3. Dockerfile
FROM hub.c.163.com/library/java:latest
MAINTAINER Victor
WORKDIR /docker-project
ADD docker-project-bin.tar /
CMD ["java","-server","-Xms128M","-Xmx256m","-XX:PermSize=128M","-XX:MaxPermSize=256M","-Dlogs.home=./logs","- Dlogging.config=./config/logback-spring.xml","-Dspring.config.location=file:./config/","-Dspring.pid.file=./logs/application.pid","-Dspring.pid.fail-on-write-error=true","-jar","-Xdebug","-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=30036","./lib/docker-project-0.0.1.jar"]
说明:
- 命令行首字符必须大写
- FROM:以某个镜像为基础镜像,这里以网易蜂巢的jdk为镜像,不带前缀,默认从docker官网下载。
- MAINTAINER :镜像作者的个人信息
- WORKDIR :指定工作目录,CMD执行命令即在此目录下
- ADD:如果是目录,则会把目录下的文件拷贝到镜像中;如果是压缩包,则先解压,并把解压后目录下的文件添加到镜中
- CMD: 运行容器时,提供参数
注意:WORKDIR指定的目录必须和ADD解压后的目录保持一致,因为CMD中的命令就是在WOKDIR目录下执行的,否则会报找不到jar包: |
4. 将Dockerfile和docker-project-bin.tar放到服务器的同一个目录下,执行:
docker build -t docker-project:lasted .
5. 查看镜像
6. 启动镜像,生成容器
docker run -d -p8080:8888 1be1a54adf5d
7. 查看日志
docker logs -f -t --tail 100 68f59e181085
8. 访问接口
9. 镜像导出和导入
docker save -o docker-project.tar 1be1a54adf5d
docker load -i docker-project.tar