一、关键字
1.1、docker 镜像
docker镜像实际上是由一层一层的系统文件组成,这种层级的文件系统被称为UnionFS( Union file system 统一文件系统),镜像可以基于dockerfile构建,而镜像本身构建之后都是只读的。
1.2、docker 容器
docker容器是由docker镜像构成的运行实例,因为docker镜像已经提供容器需要运行的所有的基础。所以容器就是镜像运行状态,每个容器之间都是相互隔离的,都有自己独立文件系统,可以把容器看作一个简易版的linux环境(包含root用户权限,进程空间,用户空间和网络空间等)和运行在其中的应用程序。
1.3、dockerfile
dockerfile是一个描述文件,里面包含了若干条密令,每条命令都会对基础文件系统创建新的层次结构。
二、步骤
2.1、上传jar包并创建Dockerfile
[root@node1 ~]# cd test/
[root@node1 test]# ll
总用量 410424
-rw-r--r-- 1 root root 0 11月 18 11:32 Dockerfile
-rw-r--r-- 1 root root 420272008 11月 18 11:31 test.jar
vi Dockerfile
# 基于哪个镜像,需要用一个已有的镜像做载体来创建,这里我使用的java8镜像,如果大家的docker镜像中没有java8,它就会自动去下载
FROM java:openjdk-8-jre-alpine
# 将本地文件夹挂载到当前容器,指定/tmp目录并持久化到Docker数据文件夹,因为Spring Boot使用的内嵌Tomcat容器默认使用/tmp作为工作目录
VOLUME /tmp
# 添加自己的项目到 test.jar中 这里我是取了test.jar的名字,这个名字可以随便取的,只要后面几行名字和这个统一就好了
ADD test.jar test.jar
# 开放9404端口
EXPOSE 9404
# ENTRYPOINT指定容器运行后默认执行的命令
CMD java -jar test.jar
FROM 这里因为我docker镜像中已经有的 所以直接指定名称和版本即可,如果本地没有镜像会联网镜像拉取,不过注意需要修改对应的名称和版本号。
我这里简单编写几条指令,能运行jar包就行,如果需要详细了解dockerfile的使用请参考:Dockerfile 详解,看这一篇就够了 - 知乎
2.2、构建镜像
docker build -f ./Dockerfile -t test:latest .
2.3、运行并查看日志
docker run -d -p 9404:9404 test:latest
# 查看运行容器的id和状态
docker ps -a
# 查看容器日志
docker logs 2044230149c1