maven项目使用idea+docker插件打包docker镜像到linux 服务器上

maven项目,使用idea开发工具,用idea自带的docker插件,打包项目镜像文件到公司的开发服务器中,并在服务器上直接启动镜像文件,成功访问项目。

前提:linux服务器上已经安装了docker

参考几位大佬的文章:

https://www.cnblogs.com/spll/p/10059542.html

https://blog.csdn.net/weixin_42054155/article/details/90815393

自我试验:

目录

一、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中是下面图片的样子:

        2.配置docker插件 参数,服务器上的docker地址配置在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


  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值