docker 构建自己的image 镜像文件

摘要:
Docker build构建自己的映像文件。在maven配置文件中,注意:必须指定生成文件后要运行的主函数mian。否则,结果可能是无法访问主功能。波姆。Maven配置的xml文件4.0.0com.springbootfirstSpringboot0.0.1-SNAPSHOTorg.springframework.bootspringbootstarter parent2.0.0.RELEASEorg.springbramework.bootspringbootStarter weborg.springframework。boot</groupId><artifactId>spring boot starter tomcat</artifactId></dependent><dependency><groupId>org.apache.tomcat。嵌入tomcat嵌入jasperfirstSpringbootorg。springframework启动springframework-maven插件com。springboot必须指定为Applicationtrue重新打包org。阿帕奇。专家插件主要部署插件2.8.2trueViewCodespringmvc,将打印此语句。在本地文档下启动jar包,看看它是否可以启动/Usr/local/dockerappcd/Usr/localkdirdockapp,然后通过ftp或secureCRT将jar包上传到服务器。

docker build 构建自己的镜像文件。

1、在本地工程中运行生成一个springboot的可运行的jar。

因为我习惯用eclipse,所以在eclipse下新建一个springboot的工程,firstSpringboot的工程。

maven配置文件中,注意:必须指定生成文件后运行的主函数mian,否则可能导致的结果是无法访问main函数的错误。

docker 构建自己的image 镜像文件第1张

maven配置的pom.xml文件

docker 构建自己的image 镜像文件第2张docker 构建自己的image 镜像文件第3张
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.springboot</groupId>
    <artifactId>firstSpringboot</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.0.RELEASE</version>
    </parent>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
        </dependency>
    </dependencies>
    <build>
        <!-- 生成文件的包名称 -->
        <finalName>firstSpringboot</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <!-- 必须指定主函数 -->
                <configuration>
                    <mainClass>com.springboot.Application</mainClass>
                    <executable>true</executable>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-deploy-plugin</artifactId>
                <version>2.8.2</version>
                <configuration>
                    <skip>true</skip>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>
View Code

springmvc中,访问后,会打印出这样一句话。

docker 构建自己的image 镜像文件第4张

执行 maven命令打包,也可通过工具直接build。mvn clean package 或install  都可以。

生成文件后如图所示。

docker 构建自己的image 镜像文件第5张

2、在本地测试一下是否可访问。

在本机doc下启动我们的jar包看看看是否可以启动。

如果没主函数main指定,会报找不到主干数错误。

doc下启动服务命令:

java -jar 路径firstSpringboot
	argetfirstSpringboot-0.0.1-SNAPSHOT.jar

docker 构建自己的image 镜像文件第6张

启动完成,本地测试,在浏览器中输入 :

http://localhost:8090/hello

访问通了,可见我们的jar包是ok的,页面展示如下:

docker 构建自己的image 镜像文件第7张

3、在/usr/local下创建一个dockerapp的目录,将本地生成的jar文件上传到docker服务器上的这个目录。/usr/local/dockerapp

cd /usr/loca
mkdir dockapp

然后通过ftp、或者secureCRT将我们的jar包上传到服务器下。

docker 构建自己的image 镜像文件第8张

  

4、在上传文件的目录/usr/local/dockerapp 下新建一个Dockerfile文件,文件内容定义jar包信息在docker容器中的名称。保存文件。

创建Dockerfile文件。

文件内容:意思是使用的是jdk8,将firstSpringboot.jar文件添加到docker容器下,并且名字为first-springboot.jar,对外声明启动端口是8090,跟我们的application.yml配置文件一样。最后就是执行命令生成

###java8环境镜像
FROM java:8
###复制文件到容器app-springboot
ADD firstSpringboot.jar /first-springboot.jar
###声明启动端口号
EXPOSE 8090
###配置容器启动后执行的命令
ENTRYPOINT ["java","-jar","/first-springboot.jar"]

生产可用Dockerfile

# 若用docker部署,将该文件复制到项目工程下
FROM openjdk:8-jre-alpine
VOLUME /tmp
ADD 项目应用名称-0.0.1-SNAPSHOT.jar app.jar
# RUN bash -c 'touch /app.jar'
ENV TZ=PRC
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","app.jar"]
EXPOSE 8761

执行成功。如图所示:

5、用docker build -t 文件名称 . 这个命令构建镜像文件image ,后面那个“.”表示当前目录。

docker build -t first-springboot .

docker 构建自己的image 镜像文件第9张

6、查看镜像文件是否生成。

docker images

docker 构建自己的image 镜像文件第10张

7、运行docker run 命令启动我们的应用。

启动应用。

docker run -p 8080:8090 first-springboot

服务启动成功,如下图所示

docker 构建自己的image 镜像文件第11张

8、测试应用是否可访问。

访问地址:http://192.168.5.129:8080/hello

浏览器显示如下:证明很ok。

docker 构建自己的image 镜像文件第12张

9、测试原端口是否可以访问。

访问:http://192.168.5.129:8090/hello

请求失败。。

10、设置服务在后台运行

#在后台运行,在run后面加-d
docker run -d -p 8080:8090 first-springboot
#查看有哪些容器在运行
docker ps

  如图

docker 构建自己的image 镜像文件第13张

 总结:docker部署流程,有点复杂,但是熟练后,应该很简单。接着学。

免责声明:文章转载自《docker 构建自己的image 镜像文件》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇vuecli 清除console debugger等维数灾难下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

在浏览器上开发GO和Vue!(基于code-server)

在浏览器上开发GO和Vue!(基于code-server) 曾几何时,开发者们都被安装编程环境苦恼,尽管现在很多语言的开发环境已经不难装了,但是如果我们能有一个运行在云端的编译器,那么我们就可以随时随地通过浏览器编写、编译我们的代码啦!! 先看我们最终效果: 完美运行Go程序!下面开始整个环境搭建。 打包好的镜像 配置完成的Go+Vue的编译+Debug...

docker 容器使用

主要参考如下链接: https://www.runoob.com/docker/docker-container-usage.html 后台运行 在大部分的场景下,我们希望 docker 的服务是在后台运行的,我们可以过 -d 指定容器的运行模式。 $ docker run -itd --name ubuntu-test ubuntu /bin/bash...

svn 基础 入门 (Good!)

前言: 软件不能完全解决因沟通造成的问题。 什么是 svnsubversion的版本库是一种文件服务器,它记录每一次改变,每个文件的改变,甚至是目录树本身的改变,例如文件和目录的添加、删除和重新组织。一般情况下,客户端从版本库中获取的数据是文件系统树中的最新数据。但是客户端也具备查看文件系统树以前任何一个状态的能力。举个例子,客户端有时会对一些历史性问题感...

Docker下安装 GRAYLOG 3.3

最近因为需要日志收集,对比了一下在graylog和传统的ELK之间选择了graylog 本篇目前只涉及安装部署,使用的是docker compose和拉取镜像安装,默认已安装docker 一、安装Docker-Compose yum install docker-compose 验证一下是否安装 docker-compose --version 二、安装...

docker离线安装zabbix+grafana

第一部分:下载安装zabbix所须的镜像 所须镜像包为:mysql、zabbix-server、zabbix-web-nginx、zabbbix-agent 1、搜索镜像 docker search [想要搜索的镜像名] [root@localhost ~]# docker search mysql INDEX NAME...

国产系统安装docker-ce、配置mysql

银河麒麟安装docker 一、安装 添加用户组和用户,非root启动docker groupadd docker useradd -m -g docker docker -s /sbin/nologin 添加权限 sudo tee /etc/sudoers.d/docker >/dev/null <<EOF docker ALL=(AL...