一、Docker服务安装
docker服务安装请下载docker桌面版本(笔者是windows10),直接安装即可,下载路径:
https://www.docker.com/products/docker-desktop
二、新建Dockerfile
现将源码导入到IDEA中,这里会以IDEA来例子来进行说明。在项目根目录下新建一个Dockerfile文件,如下图所示:
三、编辑Dockerfile内容
FROM java:8
WORKDIR /app
#拷贝文件到容器
ADD target/autotestserver-0.0.1-SNAPSHOT.jar /app/app.jar
#暴露8000端口
EXPOSE 8000
#设置环境变量
ENV JAVA_OPTS="-server -Xms1024m -Xmx1024m"
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app/app.jar" ]
四、编译项目
在打包镜像之前,要确保被打包的源代码或者配置文件,是最新的,这样子才能保证我们打包出来的docker镜像集成了最新的代码和配置。我们在maven中,先clean,再package,这样子就能保证target/classes目录下是最新的资源了。
五、打开Docker Desktop
六、构建Docker image
打开CMD窗口,进入到Dockerfile所在的目录,执行以下命令:
docker build -t autotestserver . --rm
-t 以“name:tag”格式命名和选择标记,其中name就是autotestserver,不指定tag就是latest
. 表示当前目录下
--rm 表示如果之前存在这个镜像则删除
当执行命令之后会得到以下输出,就证明镜像打包成功
在Docker Deskstop中,可以看到最新打包出来的镜像
七、把镜像包文件导出,并上传到部署服务器
注意:如果是在服务器上打包的镜像,则不需要做此操作,因为镜像已经在服务器中的本地仓库中。直接进行【八】操作即可
#镜像文件导出
docker save -o autoserver.tar autotestserver:latest
将镜像tar包上传到服务器,切换到上传所在目录,导入上传的镜像包
docker load -i autoserver.tar
八、启动docker镜像
执行以下命令:
docker run -p 8000:8000 -itd autotest:latest
-p ;8000:8000 指的是 将docker容器的8000端口映射成主机的8000端口上
-itd :-i 即使没有连接,也要保持标准输入保持打开状态。-t分配一个伪tty,一般与 -i 连用。-d表示后台运行
autotestserver:latest :其中的autotestserver是镜像的名称,tag就是latest