ECS使用感受

简介: 对阿里云飞天加速计划·高校学生在家实践的体验

我目前是网络工程研二的一名学生,通过同学推荐了解到“飞天加速计划·高校学生在家实践”活动,并尝试参与了此次活动,我免费领取了两周的阿里云ECS使用权,通过这两周学到了许多东西,再次分享一下自己的体验感受,并记录一下自己的学习过程。本来想Java后端开发都是在本地部署项目,但是作为学生党笔记本性能有限,多开虚拟机是不可能开的,只有云主机才能维持的了生活。于是学生党就网上逛云服务器,发现阿里云正在搞活动,就先试试两周体验!

第二部分

在阿里云ECS使用过程中我感觉特别顺畅,特别是在做了阿里的小练习之后,感觉得心应手,不过对于国外IP阿里云服务器的设置目前还没有找到,接下来就分享一下我是用阿里云ECS学习linux已经搭建简单的docker服务器的过程:
1.在Windows上写好代码后,打包复制进centos(注意,这里只需要以下文件,不包含target)

image-20210826155345601

2.使用mvn package命令打包生成target文件,文件中包含可以直接运行的jar包

3.直接运行jar包,注意是左边这个java -jar xxx.jar

image-20210826155556937

4.可直接登陆端口8080查看了

其余内容查看网站Spring Boot 2 (四):使用 Docker 部署 Spring Boot - 纯洁的微笑博客 (ityouknow.com)

5.注意吧Dockerfile改一下

FROM openjdk:8-jdk-alpine
VOLUME /tmp
ADD springboot-10-docker-0.0.1-SNAPSHOT.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

springboot-10-docker-0.0.1-SNAPSHOT.jar这个必须写最后生成的jar包名()

mvn package docker:build//这句话的意思是,在打包成jar的同时构建docker镜像
也可以分开进行
1.mvn package//在父模块进行
2.mvn docker:build//在子模块进行

这句话的意思是先生成target文件,然后在运行docker构建镜像

第一次构建速度比较慢,因为需要下载包

运行镜像的时候需要用-d才能在后台运行

docker run --p 8080:8080 -t springboot/spring-boot-docker

Maven 插件构建镜像:

Docker>07 - 使用Maven构建Docker镜像 - 程序员大本营 (pianshen.com)文章


maven插件构建镜像有:全pom标签和读取Dockerfile两种方式。

方式一:全pom方式:

此种方式由于标签的限制,较模板化。

1、pom 依赖添加docker-maven插件

       <build>
        <finalName>app</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <!-- docker的maven插件,官网:https://github.com/spotify/docker‐maven‐plugin -->
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>0.4.13</version>
                <configuration>
                    <!-- 镜像名称 -->
                    <!--<imageName>${project.artifactId}:${project.version}</imageName>-->
                    <imageName>192.168.25.131:4000/${project.artifactId}:${project.version}</imageName>
                    <!-- 插件读取Dockerfile进行构建 不再指定baseImage和entrypoint,而是使用dockerDirectory指定Dockerfile所在的路径 -->
                    <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <!-- 用于指定需要复制的根目录,${project.build.directory}表示target目录。 -->
                            <directory>${project.build.directory}</directory>
                            <!-- 用于指定需要复制的文件。${project.build.finalName}.jar指的是打包后的jar包文件。 -->
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                    <!-- 远程 docker 宿主机地址 ,也就是说宿主机地址与这个docker绑定了,远程连接 docker 需暴露宿主机2375端口,也就是说通过这个端口你可以对你的docker容器进行修改。-->
                    <dockerHost>http://192.168.25.131:2375</dockerHost>
                </configuration>
            </plugin>
        </plugins>
    </build>

2、到工程目录cmd 执行mvn 打包:

# 打包命令,这就是通过读取pom中的信息来构建
mvn clean package docker:build ‐DpushImage

看到如下构建步骤信息:

img

上传信息:
img

查看私有仓库:

img

执行docker images 同样可以看到构建的镜像。

方式二:引入 Dockerfile 构建镜像:


1、项目 src/main 下创建docker 目录,新建 Dockerfile:

img

2、编写 Dockerfile:

# 基础镜像
FROM java:8
# 作者
MAINTAINER Ron
# 数据卷
VOLUME /tmp
# 复制工程打包后 target 目录下的jar 到容器中
ADD app.jar app.jar

# 将docker暴露出12000端口用于控制
EXPOSE 12000
# 创建容器执行的命令



ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

3、修改 pom 依赖:

主要添加了 指定 Dockerfile 的位置

     <build>
        <finalName>app</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <!-- docker的maven插件,官网:https://github.com/spotify/docker‐maven‐plugin -->
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>0.4.13</version>
                <configuration>
                    <!-- 镜像名称 -->
                    <!--<imageName>${project.artifactId}:${project.version}</imageName>-->
                    <imageName>192.168.25.131:4000/${project.artifactId}:${project.version}</imageName>
                    <!-- 插件读取Dockerfile进行构建 不再指定baseImage和entrypoint,而是使用dockerDirectory指定Dockerfile所在的路径 -->
                    <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <!-- 用于指定需要复制的根目录,${project.build.directory}表示target目录。 -->
                            <directory>${project.build.directory}</directory>
                            <!-- 用于指定需要复制的文件。${project.build.finalName}.jar指的是打包后的jar包文件。 -->
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                    <!-- 远程 docker 宿主机地址 ,相当于2375端口与12000端口联系在一起,访问宿主机的2375等于访问docker12000,这样就可以对docker进行操作了-->
                    <dockerHost>http://192.168.25.131:2375</dockerHost>
                </configuration>
            </plugin>
        </plugins>
    </build>

4、同方式一,到工程目录cmd 执行mvn 打包:

# 打包命令



mvn clean package docker:build ‐DpushImage

可在控制台看到构建及上传的日志信息。

至此,全pom 和引入Dockerfile 两种方式都已实现镜像的构建。

docker run -p 8080:8080 -t springboot/spring-boot-docker

最后运行容器,由于tomcat默认暴露8080端口,所以可以将宿主机8080端口指定绑在某一个容器的8080端口

最后十分开心能够使用阿里云

相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
相关文章
|
6月前
|
存储 弹性计算 大数据
阿里云服务器怎么样?谈谈阿里云服务器的使用感受
阿里云服务器ECS是一种安全可靠的云计算服务,具备弹性伸缩能力,支持多种实例规格如ECS经济型e、通用算力型u1、计算型c7等。用户可根据需求选择不同计算架构、存储类型(云盘、本地盘)及网络方案(VPC专有网络)。ECS提供快照备份、多种镜像类型及灵活的计费模式(包年包月、按量付费等)。阿里云还提供免费试用计划,适用于个人和企业用户。ECS优势包括稳定、弹性、安全性高及高性能等特点。广泛应用于Web应用、在线游戏、大数据分析及深度学习等多个场景。知名用户包括新浪微博、火花思维等。
|
8月前
|
弹性计算 运维 关系型数据库
ECS使用感受
ECS使用感受
|
8月前
|
弹性计算 运维 关系型数据库
ECS使用感受
ECS使用感受
|
弹性计算
云服务器ECS使用感受
通过使用云服务器ECS,我仿佛打开了新世界的大门,通过几个云上开发学习项目,我对云服务器有了一个基本了解,并能根据教程制作个人简历、搭建云上博客,希望未来我还能继续深入学习云上开发,感受云服务器ECS的魅力。
云服务器ECS使用感受
|
弹性计算 Ubuntu Linux
阿里云平台的云服务器ECS使用感受
利用阿里云平台的云服务器ECS编写了个人简历,在这过程中完成了网页运行环境的安装、搭建云端开发环境等,对阿里云平台的云服务器ECS有了更加深刻的了解和认识。
210 0
阿里云平台的云服务器ECS使用感受
|
存储 弹性计算 Ubuntu
ECS使用感受
很开心在这里分享我最近一段时间使用ECS的体验感受。我是一名来自上海大学通信学院的学生,对于通信学院的学生来讲,一套稳定可靠的服务器是十分重要的,感谢阿里云给我们免费使用的机会。
|
弹性计算 数据可视化 Java
ECS云服务器使用感受
放假在家无聊,参加了阿里云的高校计划
ECS云服务器使用感受
|
存储 弹性计算 运维
飞天加速计划·高校学生在家实践-------ECS云计算器免费使用感受
计算机科学与技术专业Java后端开发大四学生ECS云计算器免费使用感受以及分享
312 0
飞天加速计划·高校学生在家实践-------ECS云计算器免费使用感受
|
云安全 弹性计算 监控
ECS使用感受
阿里云服务器初体验
|
弹性计算 数据可视化 前端开发
云服务器ECS使用感受
通过云翼计划领取一台ECS,Centos7系统。第一次做前后端分离的项目,最初是想把项目部署到Linux上,方便前端拿到接口文档。我在Linux上完成了java环境的基本搭建。如mysql数据库,Tomcat服务器。实现了远程连接,这样更方便于项目开发的合作。
140 0