赞
踩
构建三步骤:
不废话,直接上案例,这是本人在公司使用的打镜像方式,与上面的构建步骤略有不同。
以下文件都是在同一个目录文件夹下!!!
1、编写Dockerfile文件,通过Dockerfile文件将jar包打成镜像
FROM:
基础镜像,当前新镜像是基于哪个镜像的,指定一个已经存在的镜像作为模板,第一条必须是FROM
EXPOSE:
当前容器对外暴露出的端口
ENTRYPOINT:
用来指定一个容器启动时要运行的命令,类似于 CMD 指令,但是ENTRYPOINT不会被docker run后面的命令覆盖, 而且这些命令行参数会被当作参数送给 ENTRYPOINT 指令指定的程序
- #方式一:
- FROM openjdk:8
- EXPOSE 9099
- ENTRYPOINT ["sh","/usr/data/run.sh"]
-
- ---------------------------------------
-
- #方式二:
- FROM openjdk:8-jre
- #把jar包添加到镜像中
- Add app.jar /usr/data/app.jar
- #设置时区
- RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
- EXPOSE 8088
- CMD java -jar /usr/data/app.jar
2、编写执行脚本(方式二不用)
很简单,就是执行jar包的命令
vim run.sh
java -jar /usr/data/app.jar
3、通过dockerfile构建镜像
将jar包上传至Dockerfile文件同一目录下,执行docker build
格式:
docker build -f Dockerfile路径 -t 镜像名称:版本号 .
docker build -f /home/xxx/Dockerfile -t app:1.0.0 .
注意最后有一个 “ . ” !!!
看到Successfully镜像就构建成功了。
4、查看镜像
docker images
5、运行docker镜像
- docker run
- -it --log-opt max-size=1024m
- --log-opt max-file=31 --restart=always
- -d --name=app-service
- -p 9099:9099
- -v /home/xxx:/usr/data #本地Dockerfile所在的文件目录挂载到容器内
- -v /etc/localtime:/etc/localtime:ro
- -v /var/run/docker.sock:/var/run/docker.sock
- -v /usr/bin/docker:/usr/bin/docker
- app:1.0.0
-
- -------------------------------------------
-
- docker run -d --restart=always --privileged=true -p 80:80 --name=app app:latest
查看启动的容器
docker ps
6、将压缩成tar包镜像下载到本地
- # XXX是你刚生成的镜像
- docker save XXX:1.0 | gzip > XXX_1.0.tar.gz
7、将镜像部署到另一个docker容器里
docker load -i XXX_1.0.tar.gz
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。