通过idea打包项目到docker的操作方法

很多小伙伴一直想知道如何把项目放到docker中运行,今天就为大家带来如何将自己的项目发布到docker中(Centos)

安装虚拟机下载docker

直接访问官网 链接: docker官方文档.

1、打开官方首页,选择download and install

2、选择docker for linux

3、选择centos版本(这里要根据自己的系统选择合适的版本)

4、直接按照官网的操作来(选择自己必要的步骤)

1)删除之前已经安装的docker(必选)

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

2)安装yum工具包(必选)

sudo yum install -y yum-utils

3)添加docker 仓库(必选)

 sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

4) 可选参数,根据自己的选择添加(可选)

5)安装docker 引擎(必选 若安装其他版本 可以跳过此步)

sudo yum install docker-ce docker-ce-cli containerd.io

6)查看可选版本的docker(若已完成第五步可跳过此步)

yum list docker-ce --showduplicates | sort -r

7) 根据需要安装特定版本的docker(若已完成第五步可跳过此步)

 sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io

8)启动docker(必选)

sudo systemctl start docker

9)设置docker 开机自启动(可选)

systemctl enable docker

10)设置docker镜像加速(可选,可以提高镜像的下载速度)

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://sfgi0c9b.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

5、自此docker 已经安装完毕,这里通过一个手动将一个web项目部署到镜像中的方法来测试docker 的状态,若想了解idea如何发布项目到docker 可以跳过这一步

手动部署web项目到docker

1、创建一个web项目并打包(war)
链接: 下载项目.
2、下载tomcat镜像
所有的镜像都可以去docker hub上搜索

链接: docker hub.


安装tomcat8 选择tags标签页 选择版本

docker pull tomcat:8.5-jdk8-corretto

下载镜像

3、查看下载好的镜像

docker images	

4、运行该镜像的一个实例
创建文件夹

mkdir -p /mydata/tomcat/webapps

将我们的web项目上传到/mydata/tomcat/webapps目录下

安装rz命令(如果有文件传输工具可以用自己的)

yum install lrzsz
cd /mydata/tomcat/webapps

执行rz命令上传文件

rz

查看文件是否存在

ls

启动tomcat实例

docker run --name tomcat -itd -v /mydata/tomcat/webapps:/usr/local/tomcat/webapps -p 8080:8080 d2b

d2b 为镜像id的前三个字母 可以全写 也可以写镜像名加tag的形式
–name 为实例起一个名字
-v 挂载目录 将容器外的mydata/tomcat/webapps与容器内的/usr/local/tomcat/webapps目录挂载一起 方便我们上传项目可以直接在外部上传,而不用进入到容器内部
-p 将内部的8080端口与外部的8080端口绑定起来 我们可以通过外部的8080端口访问到容器内部的8080端口
这三个参数最重要的参数 其他参数可自行参照docker run 参数表自行查看学习
链接: docker run 参数.

我们看到当前的项目包已经解压
查看实例运行

docker ps (查看运行中的实例) 

docker ps -a (查看所有的实例,包括启动跟为启动的)

我们可以看到 实例已经启动
访问试一下效果

http://192.168.240.3:8080/hello/

5、如何修改成80端口号?

1)停止并删除原有的实例

docker stop tomcat
docker rm <实例id>

2)重新运行一个实例 映射80端口

docker run --name tomcat -itd -v /mydata/tomcat/webapps:/usr/local/tomcat/webapps -p 80:80 d2b

3)进入容器内部

docker exec -it tomcat /bin/bash
tomcat为刚才起的实例名

4)找到/usr/local/tomcat/conf/server.xml 进行更改 进入到容器内部 就和外部操作一样了

vi /usr/local/tomcat/conf/server.xml

5)退出容器

exit

6)重启容器

docker restart tomcat
//设置容器开机自启动
docker update --restart=always <容器名字>

6、如何把容器打包在其他地方部署?
我们可以把制作后好的容器进行打包成镜像
1)容器打包成镜像
docker commit -a -m <容器id> <自己起的容器的名字>

docker commit -a "zhnagdong" -m "测试" d98 tomcattest

2)查看打包完成的镜像

docker images

然后导出镜像 两种方法 第一种直接导出文件的形式 进行移动 第二种通过上传到docker hub然后通过远程拉取的方式
3)通过导出文件的方式
直接运行命令

docker save -o tomcat.tar 814
//-o 代表保存成文件 814镜像的id

在合适的地方 导入容器

docker load --input tomcat.tar 或 docker load < tomcat.tar

4)通过上传到docker 仓库的形式 (要有docker hub 的账号 需要先注册)
首先需要打个tag

docker tag tomcattest:latest dwyerdocker/tomcattest:v1

//tomcattest:latest 格式为REPOSITORY:TAG
// dwyerdocker/tomcattest:v1 格式为 username/name:tag name与tag自己起 username必须是docker hub上的用户名 不然无法推上去仓库

登陆docker hub 账号

docker login

推送镜像到远程仓库

docker push dwyerdocker/tomcattest:v1

来到我们的仓库 再合适的地方拉取我们的镜像就可以了

以上就是我们docker的基本使用,下面将为大家讲解如何用idea构建docker镜像并部署项目

通过idea部署项目到docker

1、首先我们小修改docker配置文件 让远程可以访问
由于我们的docker 默认不支持我们的tcp协议 我们要在让tcp协议生效
打开docker 的配置文件

vi /lib/systemd/system/docker.service

在 Execstart最后配置tcp协议 -H tcp://0.0.0.0:2375

重启docker

systemctl daemon-reload
systemctl restart docker

查看进程信息 我们发现此时docker 已经支持tcp协议

ps -ef | grep docker

2、确保idea安装了docker 插件

3、在根路径下创建DockerFile文件

FROM java:8
VOLUME /tmp
ADD /target/spring-demo-0.0.1-SNAPSHOT.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

4、测试docker 是否连通

若访问超时 查看防火墙是否未关闭

systemctl stop firewalld

5、添加配置

配置暴露的端口号


6、打包项目

7、右键点击部署

部署前最好重启一下docker 注意端口号冲突

8、查看效果

到此这篇关于通过idea打包项目到docker的操作方法的文章就介绍到这了,更多相关idea打包到docker内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 浅析SpringBoot打包上传到docker并实现多实例部署(IDEA版)

    最近有一个朋友问我有没有玩过docker,回答起来底气不是很足 ^ - ^ (刚开始玩cloud的时候接触过,玩过一会,后面在实际开发中比较少用,所以基本上可以说是忘记了.),今天花了点时间整理之前的笔记以及整理走一个流程,记录一下吧,下次玩得时候C V 就好啦~ 1. Docker的安装以及开启远程访问 1.1 安装 # 检查虚拟机内核版本,必须是3.10及以上 uname -r # 安装docker yum install docker # 输入y确认安装 # 启动docker system

  • idea集合docker实现镜像打包一键部署

    一.服务器安装docker yum install docker 修改配置文件,打开2375端口 [root@microservice ~]# vim /usr/lib/systemd/system/docker.service 在ExecStart=/usr/bin/dockerd-current 后面加上-H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock \ 重新加载配置文件和启动: systemctl daemon-reload syst

  • idea 打包的jar运行报 "XXX中没有主清单属性"

    使用idea2018打包了一个spring boot项目(打包为jar) 启动是报错如下: 错误原因 打包后的jar文件中的MANIFEST.MF缺少项目启动项,即没有Main-Class和Start-Class 如下: 解决方案如下 1.指定MANIFEST.MF路径 项目打包前 第一步 file–>project structure 弹框后选中Atifacts-> + ---->jar---->from module with dependenceis 第二步 选择一个Main

  • 如何用Intellij idea2020打包jar的方法步骤

    这篇博客,由图片构成,方便我自己记住如何打包,最后一张图带上,如何引入第三方文件 1. 自己鼓捣一个工程,一路新建哈 2.在工程上右键,然后点击Open Moudle Setting 3. 选择 Artifacts 翻译成中文"史前古器物" 看来这个词来自考古学.意思是打包就变成古董了. 4. 顶部的条理,选择 build Artifacts 5. 成功的用Intellij 做成了一个jar 6. 如何引入第三方类包,进行开发 工程下新建一个文件夹 lib 将需要用的第三方类包拷贝进来

  • 将idea工程打包成jar文件的全步骤

    前言 近日在工作中遇到了一个问题,需要把本地的java文件打成jar包,传到云服务器上运行.于是学习了一下如何在intellijidea中将java工程打成jar包. 步骤如下: *File->PorjectStructure *在ProjectSetings中选择Artifects.点击+号选择jar文件中的Empty选项 *在Name选项中修改jar文件的名字.*然后点击下方的CreatManifest按钮,点击ok(应该默认是当前工程) * 点击Main Class右侧的文件夹图标,选择当

  • idea打包成war包部署到tomcat及访问路径问题(图文详解)

    idea将web项目打包成war最重要的是配置atrificats. 首先打开file -> project structure 创建之后,output directory即为输出war包的路径.Name可以随意,之后点击绿色+,打开directory content 选择webapp目录,记得勾选include in project build 点击ok后,新建一个配置 选择artificats 这样就算配置完成,点击run执行之后,就到前面的output directory设置的文件夹里找到

  • 详解idea打包jar的多种方式

    这里总结出用IDEA打包jar包的多种方式,以后的项目打包Jar包可以参考如下形式: 用IDEA自带的打包形式 用Maven插件maven-shade-plugin打包 用Maven插件maven-assembly-plugin打包 用IDEA自带的打包方式: 打开IDEA的file -> Project Structure,进入项目配置页面.如下图: 点击Artifacts,进入Artifacts配置页面,点击 + ,选择如下图的选项. 进入Create JAR from Modules页面,

  • 通过idea打包项目到docker的操作方法

    很多小伙伴一直想知道如何把项目放到docker中运行,今天就为大家带来如何将自己的项目发布到docker中(Centos) 安装虚拟机下载docker 直接访问官网 链接: docker官方文档. 1.打开官方首页,选择download and install 2.选择docker for linux 3.选择centos版本(这里要根据自己的系统选择合适的版本) 4.直接按照官网的操作来(选择自己必要的步骤) 1)删除之前已经安装的docker(必选) sudo yum remove dock

  • Spring Boot将项目打包成war包的操作方法

    1 修改项目打包类型 在pom.xml里,项目打包类型将jar设置成war: <packaging>war</packaging> 2 移除内置tomcat容器 在pom.xml里设置: <dependencies> <!--web启动器依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-s

  • vue项目 npm run build 打包项目防止浏览器缓存的操作方法

    在vue.config.js配置 推荐方法1: const Timestamp = new Date().getTime() module.exports = { ...... configureWebpack: config => { config.output.filename = `js/[name].${Timestamp}.js` config.output.chunkFilename = `js/[name].${Timestamp}.js` }, ...... css: { ...

  • spring boot项目生成docker镜像并完成容器部署的方法步骤

    一.问题产生    把spring boot项目生成的jar打成docker镜像并生成docker容器完成部署是比较简单方便的部署方式,而且部署过程很少会出错. 二.部署步骤 1.利用maven或者gradle完成打包工作,打成jar包的形式. 2.在项目中的任意位置创建Dockerfile文件,本人的文件如下: FROM java:8 VOLUME /tmp ADD front-1.0-SNAPSHOT.jar front.jar RUN bash -c 'touch /front.jar'

  • Spring Boot 打包与热部署的操作方法

    热部署 Spring Boot提供了DevTool.直接在pom.xml文件中添加配置. 1.添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> </dependency> 2.在maven插件依赖中新增 <build> <plugins> <

  • Spring Boot 打包上传Docker 仓库的详细步骤

    重要提示:学习本文之前需要提前了解docker容器相关的知识,了解和熟练运用常用的docker操作命令,如果已经了解了docker容器相关的知识那我们就开搞吧! 以下是完成标题所述功能的大致步骤: 搭建docker镜像仓库 修改Spring Boot 配置文件添加docker仓库配置,打包,上传至docker 镜像仓库 从自己搭的docker镜像仓库拉取上传的镜像文件并运行 Step1 搭建docker镜像私有仓库 搭建docker镜像仓库我们需要依赖docker-registry工具 ,doc

  • es6+angular1.X+webpack 实现按路由功能打包项目的示例

    需求来源 之前使用jspm来打包项目 但是有个最大的缺点,就是只能把项目打包成一个大的js,当项目开发到后期会很大,网上找了很久也没找到合理的jspm打包方式. 所以开始调研可以打包angular项目成多个文件的工具. 调研过程 过程中看了些 vue,react配合webpack按路由功能打包的demo,感觉webpack对于打包成多个文件比较擅长. 结果 第一步 核心模块依赖加载 #core.module.js //核心模块 import 'angular-route'; //官方路由依赖 i

  • iOS 缩小打包项目ipa大小的实现方法

    之前项目上线完全由技术老大搞,这次独立开发自己来,觉得自己的打包项目体积略大,网上搜索了一些比较不错的方法,这里总结下. 1.配置编译选项 (Levels选项内)Genetate Debug Symbols 设置为NO,这个配置选项应该会让你减去小半的体积. 2.舍弃架构armv7,因为armv7用于支持4s和3gs,4s是2011年11月正式上线,虽然还有小部分人在使用,但是追求包体大小的完全可以舍弃了. 3.编译的版本必须是发布版本, 4.查找内部使用到的第三方库,一方面可以进行删减代码,用

  • 解决vue打包项目后刷新404的问题

    vue打包项目后刷新404的问题Nginx配置 server { listen 80; server_name localhost; index index.html; root /root/dist; location / { root /root/dist; try_files $uri $uri/ /index.html =404; } } 以上这篇解决vue打包项目后刷新404的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们. 您可能感兴趣的文章: Vu

  • Mac下部署springBoot项目到Docker中(demo)

    SpringCloud + Docker 的便利和强大真的超乎想象,我已经入坑了-好了,不说废话,记录一个简单的 Demo 供其他同学排坑. 前言 惯例不能丢,先上源代码:docker-demo 这个项目的代码是我执行在Docker上部署SpringBoot的java代码和Dockerfile配置文件,相关的执行命令语句也记录在上. 操作流程 本地部署 在 Mac 上安装启动 Docker.详细步骤请参考:MacOS安装Docker clone 项目:docker-demo,然后依次执行: do

随机推荐