maven项目,使用idea开发工具,用idea自带的docker插件,打包项目镜像文件到公司的开发服务器中,并在服务器上直接启动镜像文件,成功访问项目。
前提:linux服务器上已经安装了docker
自我试验:
目录
一、idea安装并配置docker,生成镜像文件
1.idea安装docker插件。
2.配置docker插件 参数,服务器上的docker地址配置在TCP socket中
3.编写项目中的Dockerfile文件(D一定要大写)并放在项目的根目录下。
4.编写pom文件
5.先clean,再package
二、在linux上启动镜像并创建容器
1.先执行docker images命令,查看创建的镜像是否存在
2.已存在:执行创建并运行容器的命令,命令执行后出现一长串数字+英文,表示创建成功
3.查看创建好的、运行中的容器
4.查看所有容器
一、idea安装并配置docker,生成镜像文件
1.idea安装docker插件。
idea版本:2020.2.3(这个版本自带docker插件),在plugins中是下面图片的样子:
TCP socket中
3.编写项目中的Dockerfile文件(D一定要大写)并放在项目的根目录下。
# 指定基础镜像
FROM java:8
# 维护者信息
MAINTAINER xxx
# 用于指定持久化目录
VOLUME /tmp
# 将本地文件添加到容器中(这时是打包到本地项目中的target目录下,因为jar有个前缀是target)
ADD target/v2x-information-service-1.0.0.jar informationservice.jar
ADD target/config config
#COPY target/lib
#ADD target/conf
# 指定于外界交互的端口
EXPOSE 12345
#设置时区 run后面
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
# 配置容器,使其可执行化
#ENTRYPOINT exec java -Xms512m -Xmx512m -jar /app.jar
ENTRYPOINT exec java $JAVA_OPTS -jar -Duser.timezone=GMT+08 /informationservice.jar
ENV LC_ALL en_US.UTF-8
4.编写pom文件
<build>
<finalName>${project.artifactId}-${project.version}</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<version>1.4.10</version>
<executions>
<execution>
<id>default</id>
<goals>
<!-- 如果package时不想用docker打包,就注释掉这个goal -->
<goal>build</goal>
<goal>push</goal>
</goals>
</execution>
</executions>
<configuration>
<repository>${project.artifactId}</repository>
<dockerHost>xx.xxx.xxx.xxx:2375</dockerHost>
<tag>latest</tag>
<dockerfile>${project.basedir}</dockerfile>
<buildArgs>
<!-- 提供参数向Dockerfile传递 -->
<JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
</buildArgs>
</configuration>
</plugin>
</plugins>
</build>
5.先clean,再package
此时可以看到项目的target目录下,生成了两个jar、一个original(此时已经把项目和所有配置文件都打包到镜像文件了)
二、在linux上启动镜像并创建容器
1.先执行docker images命令,查看创建的镜像是否存在
2.已存在:执行创建并运行容器的命令,命令执行后出现一长串数字+英文,表示创建成功
docker run -d -p 端口号:端口号 --name name1 name1
-d:后台运行容器,并返回容器ID;
-p:指定端口映射,格式为:主机(宿主)端口:容器端口;(这一步操作是为了映射访问项目的端口号)
--name:为容器指定一个名称;第一个name1:主机名称,第二个name1:自己定义的容器名称
3.查看创建好的、运行中的容器
docker ps
4.查看所有容器
docker ps -a