首先要打开docker主机,开放远程端口
在打包工程的电脑上配置环境变量
DOCKER_HOST=tcp://192.168.1.119:2375
打开cmd窗口,确定环境变量配置生效:输入 echo %DOCKER_HOST%,会输出 tcp://192.168.1.119:2375
创建Dockerfile文件,要跟pom文件同级目录
# Docker image for springboot application
# VERSION 0.0.1
# Author: Hansson
### 基础镜像,使用alpine操作系统,openjkd使用8u201
FROM openjdk:8u201-jdk-alpine3.9
#作者
MAINTAINER Hansson <liuhanqingboy@vip.qq.com>
#系统编码
ENV LANG=C.UTF-8 LC_ALL=C.UTF-8
#声明一个挂载点,容器内此路径会对应宿主机的某个文件夹
VOLUME /tmp
#暴露8080端口
EXPOSE 8080
#定义参数
#ARG JAR_FILE
#应用构建成功后的jar文件被复制到镜像内,名字也改成了app.jar
#ADD ${JAR_FILE} demo.jar
ADD target/demo-0.0.1-SNAPSHOT.jar demo.jar
#touch命令的作用是修改这个文件的访问时间和修改时间为当前时间,而不会修改文件的内容。
#RUN bash -c 'touch /demo.jar'
#启动容器时的进程
ENTRYPOINT ["java","-Dfile.encoding=UTF8","-Duser.timezone=GMT+08","-jar","demo.jar"]
用IDEA的Docker插件将应用构建成镜像并在远程Docker上运行
这里注意:Dockerfile中的 ADD 命令后面jar包位置不能用JAR_FILE,容器运行会出错:Error: Invalid or corrupt jarfile demo.jar
连接远程Docker服务
创建Dockerfile配置
Dockerfile详细配置
执行的打包命令
docker build -t hanssondemo:v0.0.1 . && docker run -p 1010:8080 --name springbootdemo hanssondemo:v0.0.1
查看镜像
查看容器
查看启动应用
使用maven编译打包镜像
确定DOCKER_HOST环境变量配置生效
echo %DOCKER_HOST%
set DOCKER_HOST
编译项目并构建docker镜像,编译结束自动推送镜像到docker主机中
mvn clean package dockerfile:build -Dmaven.test.skip=true
查看镜像
运行容器
docker run -itd --name springdemo -p 2020:8080 hansson/demo:0.0.1-SNAPSHOT /bin/bash