Docker开启远程访问+idea配置docker+dockerfile发布java项目

news2024/11/16 0:05:03

一、docker开启远程访问

1.编辑docker服务文件
vim /usr/lib/systemd/system/docker.service

docker.service原文件如下:

[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target docker.socket firewalld.service containerd.service time-set.target
Wants=network-online.target containerd.service
Requires=docker.socket

[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutStartSec=0
RestartSec=2
Restart=always

# Note that StartLimit* options were moved from "Service" to "Unit" in systemd 229.
# Both the old, and new location are accepted by systemd 229 and up, so using the old location
# to make them work for either version of systemd.
StartLimitBurst=3

# Note that StartLimitInterval was renamed to StartLimitIntervalSec in systemd 230.
# Both the old, and new name are accepted by systemd 230 and up, so using the old name to make
# this option work for either version of systemd.
StartLimitInterval=60s

# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity

# Comment TasksMax if your systemd version does not support it.
# Only systemd 226 and above support this option.
TasksMax=infinity

# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes

# kill only the docker process, not all processes in the cgroup
KillMode=process
OOMScoreAdjust=-500


[Install]
WantedBy=multi-user.target

找到ExecStart头添加代码如图所示:

-H tcp://0.0.0.0

添加完成,如下图标记
在这里插入图片描述

2.重启docker的daemon服务
systemctl daemon-reload
3.重启docker服务
systemctl restart docker
4.开启防火墙指定端口:2375
firewall-cmd --zone=public --add-port=2375/tcp --permanent
5.重启防火墙
firewall-cmd --reload
6.进入浏览器中访问:http://ip:2375/version

如图所示
在这里插入图片描述
能够访问到该页面说明已经开启了远程访问。

二、idea配置docker

1.进入idea,进入目录:File-Settings-Plugins搜索:docker,并安装:如图:

在这里插入图片描述

2.配置docker,进入目录:File-Settings-Build,Execution,Deployment

如图:
在这里插入图片描述
Engine API URL:

tcp://ip:2375

最后点击Apply,再点击ok

3.在配置docker部署时就可以选择以上添加的docker了

如图:
在这里插入图片描述
在这里插入图片描述

三、编写一个java Demo,使用dockerfile部署

项目工程如下:
在这里插入图片描述
代码展示:HelloWorldController.java

package com.hcl.helloworld.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("hello")
public class HelloWorldController {

    @GetMapping("world")
    public String hello(){
        return "蜉蝣之羽,衣裳楚楚。<br/>"+
                "心之忧矣,於我归处?<br/>" +
                "蜉蝣之翼,采采衣服。<br/>" +
                "心之忧矣,於我归息?<br/>" +
                "蜉蝣掘阅,麻衣如雪。<br/>" +
                "心之忧矣,於我归说?";
    }
}

代码展示:HelloWorldApplication.java

package com.hcl.helloworld;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class HelloWorldApplication {

    public static void main(String[] args) {
        SpringApplication.run(HelloWorldApplication.class, args);
    }

}

代码展示:application.yaml

server:
  port: 8081

代码展示:Dockerfile

# 指定环境镜像作为该容器的基础环境,如springboot应用最起码得有jdk环境
FROM openjdk:8

# 执行维护者信息
MAINTAINER abliner

# 创建一个存放工程的目录
RUN mkdir -p /data/project-bak

ADD target/hello-world-0.0.1-SNAPSHOT.jar /data/project-bak/hello-world-0.0.1-SNAPSHOT.jar

# 对外暴露的端口
EXPOSE 8084

# 执行启动
ENTRYPOINT ["/bin/sh","-c","java -jar /data/project-bak/hello-world-0.0.1-SNAPSHOT.jar"]

四、开始配置

1.进入配置,如图:

在这里插入图片描述

2.添加docker,选择Dockerfile如图:

在这里插入图片描述

3.如图

在这里插入图片描述
最后点击Apply再点击ok
注意:dockerfile中对外暴露的端口也就是上面配置的端口“8084”开启防火墙的一定要去开放端口,否则无法访问。如果是阿里云上面则也要配置打开该端口。

4.idea打包项目,先clear再package,保证是最新的包

如图:
在这里插入图片描述

5.启动

如图:
在这里插入图片描述

6.访问

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1083764.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【深蓝学院】手写VIO第7章--VINS初始化和VIO系统--笔记

0. 内容 1. VIO回顾 整个视觉前端pipeline回顾&#xff1a; 两帧图像&#xff0c;可提取特征点&#xff0c;特征匹配&#xff08;描述子暴力匹配或者光流&#xff09;已知特征点匹配关系&#xff0c;利用几何约束计算relative pose([R|t])&#xff0c;translation只有方向&…

2023年中国睡眠检测仪产量、销量及市场规模分析[图]

睡眠检测仪行业是指生产和销售用于监测和评估人类睡眠质量和睡眠相关指标的设备和工具的行业。睡眠检测仪可以通过监测人体的脑电图、心率、呼吸、体动等生理信号&#xff0c;来评估睡眠的深度、时长、睡眠阶段的分布等信息&#xff0c;帮助人们了解自己的睡眠状况&#xff0c;…

一款轻量级事件驱动型应用程序框架

QP™/C 实时嵌入式框架 &#xff08;RTEF&#xff09; 是专为实时嵌入式 &#xff08;RTE&#xff09; 系统量身定制的活动对象计算模型的轻量级实现。QP 既是用于构建由活动对象&#xff08;参与者&#xff09;组成的应用程序的软件基础结构&#xff0c;也是用于以确定性方式执…

有更新:2023华为HCIA+HCIP最全Datacom题库解析(附全套文档赠送)

2023华为数通Datacom认证考试题库更新&#xff0c;答案解析&#xff1a; 1、所示的BGP/MPLS IP VPN场景&#xff0c;CE和PE之间运行0SPF协议&#xff0c;且区域号为0&#xff0c;当PE1和PE2的域标识符都为NULL时&#xff0c;PE2将向CE2发 送以下哪一类型的LSA? A.Type2 B.T…

了解三层架构:表示层、业务逻辑层、数据访问层

目录 背景&#xff1a; 三层架构 什么是三层: 分层的目的&#xff1a; 三层的结构关系​编辑 三层表现形式:​编辑 三层的优缺点&#xff1a; 总结: 背景&#xff1a; 三层架构是一种软件设计模式&#xff0c;可称为客户端-服务器-架构&#xff0c;把各个功能模块划分…

第二证券:汇金增持有望催化银行板块 白酒企稳信号凸显

昨日&#xff0c;两市股指盘中震动上扬&#xff0c;创业板指、科创50指数一度涨超1%&#xff0c;但沪指午后涨幅逐渐回落。到收盘&#xff0c;沪指涨0.12%报3078.96点&#xff0c;深成指涨0.35%报10084.89点&#xff0c;创业板指涨0.8%报2003.9点&#xff0c;科创50指数涨1.29%…

3.3 数据定义

思维导图&#xff1a; 前言&#xff1a; **核心概念**&#xff1a; - 关系数据库支持**三级模式结构**&#xff1a;模式、外模式、内模式。 - 这些模式中包括了如&#xff1a;模式、表、视图和索引等基本对象。 - SQL的数据定义功能主要包括了模式定义、表定义、视图和索引的定…

AnolisOS升级SSH,不升级SSL

由于ssh有漏洞需要升级&#xff0c;但是为了最小化升级不影响ssl&#xff0c;因为ssl里面带了加密库&#xff0c;系统中很多核心服务的加密都是用ssl进行加密的&#xff08;像网络服务&#xff0c;系统用户登录等&#xff09;&#xff0c;如果ssl升级出现不兼容&#xff0c;就可…

【Python语义分割】Segment Anything(SAM)模型全局语义分割代码+掩膜保存(二)

我上篇博文分享了Segment Anything&#xff08;SAM&#xff09;模型的基本操作&#xff0c;这篇给大家分享下官方的整张图片的语义分割代码&#xff08;全局&#xff09;&#xff0c;同时我还修改了一部分支持掩膜和叠加影像的保存。 1 Segment Anything介绍 1.1 概况 Meta A…

201、RabbitMQ 之 Exchange 典型应用模型 之 工作队列(Work Queue)

目录 ★ 工作队列介绍代码演示测试注意点1&#xff1a;注意点2&#xff1a; ★ 工作队列介绍 工作队列&#xff1a; 就是让多个消费者竞争消费同一个消息队列的消息&#xff0c;相当于多个消费者共享消息队列。 ▲ RabbitMQ可以让多个消费者竞争消费同一个消息队列 ▲ 消息队…

MS4344:24bit、192kHz 双通道数模转换电路

MS4344 是一款立体声数模转换芯片&#xff0c;内含插值滤波器、 multi-bit 数模转换器、输出模拟滤波器。 MS4344 支持大部分 的音频数据格式。 MS4344 基于一个带线性模拟低通滤波器的 四阶 multi-bit Δ-Σ 调制器&#xff0c;而且本芯片可以通过检测信号频率 和主时钟频…

【Axure高保真原型】冻结固定中继器表格首行+首尾列

今天和大家分享冻结固定中继器表格首行首尾列的原型模板&#xff0c;我们可以滚动或者拖动滚动条上下左右查看表格更多的数据&#xff0c;表格的首行和首尾两列都是固定的&#xff0c;鼠标移入对应行会有高亮显示的效果&#xff0c;点击操作列的删除按钮可以删除该行数据。那这…

智能油烟机 优化烹饪体验

如果说空调是夏天最伟大的发明&#xff0c;那么油烟机则是健康厨房的伟大推进者。随着科技的发展&#xff0c;智能化的油烟机逐渐走进了人们的日常生活。每当我们在爆炒、油炸食物的时候&#xff0c;油烟总能呛得人眼睛痛、鼻子难受&#xff0c;传统的油烟机面前我们还需要手动…

蒙自源荣登“2022年度中国快餐TOP100”榜单!

2023年9月26日&#xff0c;由中国烹饪协会主办的第27届中国快餐产业大会在浙江宁波盛大召开。 对于行业而言&#xff0c;这是一次至关重要的聚会。本次大会以“增量博弈&#xff0c;智造无限机遇”为主题&#xff0c;聚集了众多餐饮业的意见领袖&#xff0c;共同探讨行业发展焦…

第二证券:市净率高好还是低好?

市净率是一个衡量公司股票投资价值的指标&#xff0c;通过比较公司股票价格和公司每股净资产的比值来评估公司股票的估值水平。市净率高好还是低好这个问题并没有一个简单的答案&#xff0c;取决于具体的市场环境和投资者的需求。本文将从多个角度分析市净率高好还是低好。 首…

云HIS医院信息化管理平台源码,SaaS模式、springboot框架

HIS系统作为医院信息化的核心业务系统&#xff0c;如今已成为各个医疗机构的必备品了。大到三级二级医院&#xff0c;小到社区卫生服务中心&#xff0c;门诊&#xff08;门诊管理系统也可以理解为门诊的his系统&#xff0c;只是功能简单&#xff0c;模块较少&#xff09;。随着…

STM32F103C8T6一些集成模块(ADC)

ADC ADC&#xff0c;Analog-to-Digital Converter的缩写&#xff0c;指模/数转换器或者模数转换器 [1] 。是指将连续变化的模拟信号转换为离散的数字信号的器件。真实世界的模拟信号&#xff0c;例如温度、压力、声音或者图像等&#xff0c;需要转换成更容易储存、处理和发射的…

Git 速通以及常用指令!!

参考视频 01 - Git - 教程简介_哔哩哔哩_bilibili 在需要使用git的文件夹打开git bash&#xff0c;指令如下↓ 当然图形化界面也很香&#xff01;github desktop也很舒服&#xff01; 查看文件 版本号 git cat-file -p 版本号 仓库操作 在当前文件夹下创建git仓库 git ini…

轻量级Composition

MEF&#xff0c;全称Managed Extensibility Framework&#xff08;托管可扩展框架&#xff09;。MEF是专门致力于解决扩展性问题的框架。MEF 位于 ComponentModel.Composition 程序集中&#xff0c;添加 System.ComponentModel.Composition 和 System.ComponentModel.Compositi…

是谁制造了TikTok的商业化困境?

随着社交媒体的崭露头角&#xff0c;TikTok已成为数字营销界备受瞩目的新星。这款以短视频为特色的应用程序在全球范围内拥有数亿用户&#xff0c;吸引了众多品牌和创业者的关注。 然而&#xff0c;尽管TikTok拥有巨大的用户基础和潜力&#xff0c;但它也面临着商业化方面的一…