普通项目jar包打docker镜像

521 阅读1分钟

docker基本命令 1、删除容器

docker rm 容器ID
docker rmi 镜像名称

1)首先需要停止所有的容器

docker stop $(docker ps -a -q)

2)删除所有的容器(只删除单个时把后面的变量改为container id即可)

docker rm $(docker ps -a -q)

2、删除镜像

1)查看host中的镜像

docker images

2)删除指定id的镜像

docker rmi

想要删除untagged images,也就是那些id为的image的话可以用

docker rmi $(docker images | grep "^" | awk "{print $3}")

3)删除全部的images

docker rmi $(docker images -q) 3、保存镜像到本地

docker save -o /app.tar appdemo
/app.tar:保存的文件名称
appdemo:镜像名称

4 加载镜像,把镜像上传到服务器

docker load </usr/local/app.tar

/usr/local/app.tar:文件名称

image.png

5、查询镜像

docker images

6、运行镜像

docker run --name appdemo  -d appdemo

7、停止运行的容器

docker ps  --列出容器
docker stop 容器的ID

编写Dockerfile

FROM java:8
VOLUME /tmp
ADD  application-jar-with-dependencies.jar application.jar
RUN bash -c 'touch /app.jar'
ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom -jar /app.jar

构建镜像

#最后的点不能少
#-t 给新构建的镜像取名
docker build -f Dockerfile -t 镜像名称:版本名 .
#如果不指定镜像名和版本名
#使用下面的命令指定打包完的镜像
docker tag 镜像id appdemo:latest

image.png

maven项目打包带依赖

    <plugins>
            <!--<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <configuration>
                    <archive>
                        <manifest>
                            <addClasspath>true</addClasspath>
                            <mainClass>
                                com.asiainfo.common.service.GenerateTaskService
                            </mainClass>
                            <classpathPrefix>./</classpathPrefix>
                        </manifest>
                    </archive>
                </configuration>
            </plugin>-->
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <archive>
                        <manifest>
                            <addClasspath>true</addClasspath>
                            <!--下面必须指定好主类-->
                            <mainClass>com.*.common.*.MainApplicatiion</mainClass>
                        </manifest>
                    </archive>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                </configuration>
                <executions>
                    <execution>
                        <id>make-my-jar-with-dependencies</id>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

            <plugin>

                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source><!-- 源代码使用的开发版本 -->
                    <target>1.8</target><!-- 需要生成的目标class文件的编译版本 -->
                    <!-- 一般而言,target和source保持一致的,但有时候不同:为了让程序能在其他版本的jdk中运行(对于低版本目标jdk,源代码中需要不使用低版本jdk不支持的语法) -->
                </configuration>
            </plugin>
        </plugins>

打包命令 mvn clean -DskipTests package