idea 连接远程 docker 并部署项目到 docker
idea 连接远程 docker
1. 安装 docker 插件

2. 登录远程服务器,修改docker配置
(1) 修改 docker.service 文件,位于 /lib/systemd/system/docker.service

打开该文件,将原来的 ExecStart 前面加上#号注释掉,在该行下面添加 ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
[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
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutStartSec=0
RestartSec=2
Restart=always
(2) 重新加载配置
systemctl daemon-reload
(3) 重启 docker 服务
systemctl restart docker.service
3. 添加云服务器防火墙规则

4. idea 配置连接 docker
打开 idea,打开 Setting,在 docker 项配置云服务器tcp://公网IP:2375,点击 ok 即可连上 docker,如下图:

然后,就可以在 Services 中看到 docker 了

点击左边的 connect 就可以连接上 docker,可以看到 docker 中的镜像和容器信息

部署项目到 docker
1. 创建并编写Dockerfile
我这里将dockerfile 创建在根目录下

dockerfile 文件内容:
# 指定基础镜像
FROM openjdk:8-jre-slim
# 作者
MAINTAINER gzl
# 将容器的时区设置为"Asia/Shanghai"
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \&& echo 'Asia/Shanghai' >/etc/timezone
# 复制主机文件至镜像内,复制的目录需放置在 Dockerfile 文件同级目录下
ADD target/chatgpt-api-0.0.1-SNAPSHOT.jar chatgpt-api.jar
# (和项目端口号等同)
EXPOSE 8080
# 在容器启动时执行该应用程序
ENTRYPOINT ["java", "-jar", "/chatgpt-api.jar"]
2. 运行配置
(1) 点击 Edit Configurations...

(2) 点击左上角+,找到 dockerfile

(3) 填写配置信息

- Bind ports:映射端口:项目端口
- Before launch:
选择Run Maven Goal,Command line 填写clean package -U -DskipTests,表示在构建之前清理项目的目标目录,以确保没有旧的构建残留,同时跳过运行单元测试,可加快构建过程
(4) 运行
点击运行

运行成功

Nginx 配置
修改 nginx 配置
server {
listen 80;
server_name 公网ip;
# 首页
index index.html;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
location /api/ {
auth_request /auth;
# 鉴权通过后的处理方式
proxy_pass http://公网ip:8080/success;
}
location = /auth {
# 发送子请求到HTTP服务,验证客户端的凭据,返回响应码
internal;
# 设置参数
set $query '';
if ($request_uri ~* "[^\?]+\?(.*)$") {
set $query $1;
}
# 验证成功,返回200 OK
proxy_pass http://公网ip:8080/verify?$query;
# 发送原始请求
proxy_pass_request_body off;
# 清空 Content-Type
proxy_set_header Content-Type "";
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
idea 连接远程 docker 并部署项目到 docker的更多相关文章
- SpringBoot使用Docker快速部署项目
1.简介 建议阅读本文最好对Dokcer有一些了解 首先我们先了解一下Docker是什么 Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口.它是目前最流行的 Linux 容器 ...
- Docker Compose部署项目到容器-基于Tomcat和mysql的项目yml配置文件代码
场景 Docker-Compose简介与Ubuntu Server 上安装Compose: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...
- IDEA远程部署项目到Docker
前言 最近在写东西部署到服务器,结构是springboot工程配合docker部署. 但是每次部署都3个步骤: 本地构建jar 复制jar到远程服务器 用DockerFile构建镜像 部署次数一多,我 ...
- Idea连接服务器docker并部署代码到docker实现一键启动
好记性不如烂笔头,写笔记是为了回头看的. 谁要是不小心搜了看了,如有不足之处敬请谅解. 一.准备工作 虚拟机centos7.X,docker1.3.X,Win10 Idea2018.1 默认Idea已 ...
- Docker Compose部署项目到容器-基于Tomcat和mysql的商城项目(附源码和sql下载)
场景 Docker-Compose简介与Ubuntu Server 上安装Compose: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...
- linux下docker安装部署项目(全)
一 .系统安装 基于CentOS-7-x86_64-Minimal-1708.iso安装系统 1.2. 配置系统 1.2.1 在线更新内核版本(建议更新,旧版内核会有docker BUG) 1.2 ...
- idea中使用docker插件部署项目
安装docker 如果你之前安装过 docker,请先删掉 sudo yum remove docker docker-common docker-selinux docker-engine 安装一些 ...
- idea 部署项目到 docker 运行
1.在远程服务器上开启 docker 远程连接 $vim /usr/lib/systemd/system/docker.service # ExecStart=/usr/bin/dockerd -H ...
- docker中部署项目时遇到的问题
容器和宿主机时间不同步问题? 将本地时间复制到docker容器内的etc文件夹下即可 docker cp /etc/localtime scrapy_8:/etc/ 启动crontab错误? 报错: ...
- idea远程调试tomcat部署项目(windows环境)
1.tomcat启动之前,修改apache-tomcat-8.5.34\bin\catalina.bat文件,设置调试端口 如下设置(windows环境): rem ----------------- ...
随机推荐
- 零基础实现Java直播(一):集成
从泛娱乐的秀场直播,到直播带货潮流中的电商直播,直播已经成为2020年最热的应用技术之一,越来越多的产品希望加入直播功能.下面我们基于即构Express Video SDK,来分享如何从零实现线上直播 ...
- Nginx之数据流代理stream模块简介和使用 ---九五小庞
一.stream模块简介 stream模块一般用于TCP/UDP数据流的代理和负载均衡,通过stream模块我们可以代理转发tcp报文.ngx_stream_core_module模块从1.9.0 ...
- 报错 no currentsessioncontext configured!
no currentsessioncontext configured! 使用hibernate框架报错 配置了session工厂类,使用getCurrentSession();时候引起的,原因是cu ...
- base64详解
base64详解 前置知识 位与字节 二进制系统中,每个0或1就是一个位(bit,比特),也叫存储单元,位是数据存储的最小单位. 其中8bit就称为一个字节(Byte). 1B=8位 位运算 与运算: ...
- C++笔记(2)——函数
六. 函数 6.1 函数基础 一个典型的函数(function)定义包括:返回类型(return type).函数名字,由0或多个形参(parameter)组成的列表以及函数体.我们通过调用运算符来执 ...
- 三级缓存---解决 Spring 循环依赖
1. 循环依赖 1.1 什么是循环依赖 首先,什么是循环依赖?这个其实好理解,就是两个 Bean 互相依赖,类似下面这样: """ @Service public cla ...
- 【linux】你需要以 root 身份执行此命令
1.设置root用户的密码: sudo passwd root 2.切换到root用户权限 su 3.切换回个人用户权限 exit
- go-zero 是如何实现令牌桶限流的?
原文链接: 上一篇文章介绍了 如何实现计数器限流?主要有两种实现方式,分别是固定窗口和滑动窗口,并且分析了 go-zero 采用固定窗口方式实现的源码. 但是采用固定窗口实现的限流器会有两个问题: 会 ...
- DAY001_二进制运算
左移和右移 无符号左移? Java没有无符号左移 无符号右移 左边补0 有符号右移 左边用原符号位补位 即正数补0效果同无符号右移.负数补1 有符号左移 右边补0 import org.junit.T ...
- SDP协议理解
目录 SDP协议 协议格式说明 协议格式 常见属性 协议版本号 v= -- Protocol Version 会话发起者: o= -- Origin 会话名 s= 连接数据:c= 媒体描述:m= 附加 ...