idea 配置docker 进行上传镜像,部署启动容器

news/2024/4/25 0:51:18/

前言

 

在我们开发测试过程中,需要频繁的更新docker镜像,然而默认情况下,docker的2375端口是关闭的,下面介绍如何打开端口。

  1. 修改docker配置文件 操作步骤

1.1、修改配置

登录docker所在服务器,修改docker.service文件

/usr/lib/systemd/system/docker.service  目录下 编辑 docker.service  文件

搜索 ExecStart= 找到下面的配置进行修改

修改如下内容:将

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

1.2 重启服务

最后重新加载服务的配置文件和重启docker服务:

systemctl daemon-reload

systemctl restart docker

这样配置后,Docker私有仓库就会在2375端口上运行,可以使用2375端口来进行远程操作。

2 、Idea 安装docker 插件

2.1 在idea 下载安装docker

在setting->plugins->搜索docker 进行安装

2.2配置docker地址:

Tcp socker  配置:tcp://ip:2375

 

3、创建docker文件夹和Dockerfile文件,dockersrc同级

Dockerfile 内容:

index-service 实例:

FROM  openjdk:8-jdk
ENV LANG C.UTF-8
ENV LANGUAGE zh_CN.UTF-8
ENV LC_ALL C.UTF-8
RUN rm -f /etc/localtime \
    && ln -sv /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
    && echo "Asia/Shanghai" > /etc/timezone

ADD /index-service.jar /app.jar
EXPOSE 8199
CMD ["java","-Dfile.encoding=UTF-8","-Dsun.jnu.encoding=UTF-8","-jar","/app.jar"]

4、Pom.Xml 文件增加相关依赖: 在Build中 ,例如:

<build>
  <finalName>index-service</finalName>
  <plugins>
    <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
      <configuration>
        <fork>true</fork> <!-- 如果没有该配置,devtools不会生效 -->
        <jvmArguments>
          -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005
        </jvmArguments>
      </configuration>
    </plugin>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-surefire-plugin</artifactId>
      <version>2.18.1</version>
      <configuration>
        <skipTests>true</skipTests>
      </configuration>
    </plugin>
    <plugin>
      <groupId>com.spotify</groupId>
      <artifactId>docker-maven-plugin</artifactId>
      <version>1.0.0</version>
      <!--将插件绑定在某个phase执行-->
      <executions>
        <execution>
          <id>build-image</id>
          <!--用户只需执行mvn package ,就会自动执行mvn docker:build-->
          <phase>package</phase>
          <goals>
            <goal>build</goal>
          </goals>
        </execution>
      </executions>
      <configuration>
        <!--指定生成的镜像名-->
        <imageName>${project.artifactId}</imageName>
        <!--指定标签-->
        <imageTags>
          <imageTag>latest</imageTag>
        </imageTags>
        <!-- 指定 Dockerfile 路径-->
        <dockerDirectory>${basedir}/docker</dockerDirectory>
        <!--指定远程 docker api地址-->
        <dockerHost>http://192.168.3.240:2375</dockerHost>
        <!-- 这里是复制 jar 包到 docker 容器指定目录配置 -->
        <resources>
          <resource>
            <targetPath>/</targetPath>
            <!--jar 包所在的路径 此处配置的 即对应 target 目录-->
            <directory>${project.build.directory}</directory>
            <!-- 需要包含的 jar包 ,这里对应的是 Dockerfile中添加的文件名 -->
            <include>${project.build.finalName}.jar</include>
            <include>classes/page/</include>
          </resource>
        </resources>
      </configuration>
    </plugin>
  </plugins>
  <resources>
    <resource>
      <directory>src/main/java</directory>
      <includes>
        <include>**/*.xml</include>
      </includes>
    </resource>
    <resource>
      <directory>src/main/resources</directory>
      <includes>
        <include>**/*.*</include>
      </includes>
    </resource>
  </resources>
</build>

5、在idea的右边找到Maven Projects,找到Lifecycle,双击package打包,第一次打包比较慢,需要安静等待

 

  1. 等打包成功后,会生成镜像。在docker中找到images 点击打开 ,找到自己服务的镜像,例如 index-service:latest

  1. 使用镜像创建容器,然后启动: 右键 镜像 点击 create  container (创建容器) ,进行容器创建 ,创建完可以点击下方的 run(启动) 按键 直接进行启动

                    

 

  1. 可以在容器中进行管理操作,在docker中找到container 点击打开 找到自己的容器 右键 ,可以进行启动  启动 、 停止 、 编辑等

9、启动后可以在 docker 中查看自己的服务 


http://www.ppmy.cn/news/48084.html

相关文章

深入浅出剖析JAVA多线程原理

1. 线程基础知识 1.1 线程与进程 1.1.1 进程 ●程序由指令和数据组成&#xff0c;但这些指令要运行&#xff0c;数据要读写&#xff0c;就必须将指令加载至 CPU&#xff0c;数据加载至内存。在指令运行过程中还需要用到磁盘、网络等设备。进程就是用来加载指令、管理内存、管理…

聚观早报|马斯克将TruthGPT挑战ChatGPT;腾讯披露自研芯片新进展

今日要闻&#xff1a;马斯克将TruthGPT挑战ChatGPT&#xff1b;苹果在印度年销售额近60亿美元&#xff1b;腾讯披露自研芯片沧海最新进展&#xff1b;特斯拉中国工厂普通工人月薪约1万元&#xff1b;飞猪将直接向阿里CEO张勇汇报 马斯克将TruthGPT挑战ChatGPT 4 月 18 日消息&…

【大厂直通车】哔哩哔哩日常实习_测开面经

📑哈喽,大家好,我是小浪;本篇博客更新的是最新B站测开面经,本专栏非常适合目前准备找实习,或者准备冲秋招测试,测开方向的同学阅读订阅,持续更新各大厂真题面经,带你成为offer收割机!! 🧃对于订阅本专栏的同学们,博主在努力更新,只需要一杯奶茶钱,订阅本专栏,…

数据结构(三)—— 哈希表

文章目录 一、哈希表积累1.1 哈希map1.2 哈希set 二、哈希表基础三、题3.1 242 有效的字母异位词3.2 349 两个数组的交集3.3 202 快乐数3.4 1 两数之和3.5 54 四数相加II 一、哈希表积累 什么时候想到用哈希法&#xff1a;当要需要查询一个元素是否出现过、判断一个元素是否出…

从单兵作战到生态共创,纵目科技打响智驾2.0新战役

4月18日&#xff0c;第十二届上海国际汽车工业展览会&#xff08;简称&#xff1a;2023上海车展&#xff09;在上海国家会展中心盛大启幕。纵目科技携最新自动驾驶解决方案——Amphiman 3000、8000行泊一体解决方案、Trinity 3000、8000舱行泊一体解决方案以及众多摄像头产品强…

C++智能指针unique_ptr

智能指针的设计思路 智能指针是类模板&#xff0c;在栈上创建智能指针对象。把普通指针交给智能指针对象。当智能指针对象过期时&#xff0c;调用析构函数释放普通指针的内存。 有unique_ptr,shared_ptr和weak_ptg三种智能指针 unique_ptr unique_ptr独享它指向的对象&…

深度学习笔记之残差网络(ResNet)

深度学习笔记之残差网络[ResNet] 引言引子&#xff1a;深度神经网络的性能问题核心问题&#xff1a;深层神经网络训练难残差网络的执行过程残差网络结构为什么能够解决核心问题残差网络的其他优秀性质 引言 本节将介绍残差网络( Residual Network,ResNet \text{Residual Netwo…

【nacos配置中心】源码部分解析

启动初始化 SpringApplication.prepareContext applyInitializers 回调ApplicationContextInitializer的initialize方法 getInitializers()从applicationContext获取List<ApplicationContextInitializer<?>> initializers 这个集合是通过SpringApplication的…

第三十二章 配置镜像 - 编辑或删除故障转移成员

文章目录 第三十二章 配置镜像 - 编辑或删除故障转移成员编辑或删除故障转移成员 第三十二章 配置镜像 - 编辑或删除故障转移成员 编辑或删除故障转移成员 导航至编辑镜像页面(系统管理>配置>镜像设置>编辑镜像)。使用备份故障转移成员上的删除镜像配置按钮将其从镜…

ChatGpt API接口编程基础与使用

在研读完OpenAi官网文档的基础上&#xff0c;本文大部分内容是围绕编程方面&#xff0c;包括ChatGPT模型接口、图像生成接口、敏感数据拦截等&#xff0c;只有一小部分内容围绕如何通过temperature调参优化使用提示技巧。 一、OpenAi Api调用库 OpenAi开放了一系列模型接口API…

AUTOSAR存储服务之FEE换页策略介绍

概述 如下图是AUTOSAR Memory Stack的架构图,对于Memory Stack的介绍请参考AUTOSAR MemoryStack详细介绍_钢琴上的汽车软件的博客-CSDN博客 随着现在MCU携带的内置flash空间越来越大,从成本节省以及方便使用等方面考虑,在产品设计和开发过程中常用Flash EEPROM Emulation技…

Perl学习教程大纲

以下是一个可能的 Perl 学习教程大纲&#xff1a; 一、Perl 简介 Perl 的历史和发展 Perl 的特点和优点 Perl 的应用领域 二、Perl 基础语法 Perl 的变量和数据类型 Perl 的运算符和表达式 Perl 的控制结构&#xff08;if、while、for、foreach 等&#xff09; Perl 的…

Linux操作系统网络模块

Linux操作系统的网络模块是负责网络通信的核心部分。它通过实现各种协议和算法&#xff0c;使得计算机能够在网络中进行数据交换和通信。网络模块主要包括以下几个方面的功能&#xff1a; &#xff08;1&#xff09;IP协议栈&#xff1a;负责处理网络层的数据包&#xff0c;实…

Java语法理论和面经杂疑篇《十一. JDK8新特性》

目录 1. Java版本迭代概述 1.1 发布特点&#xff08;小步快跑&#xff0c;快速迭代&#xff09; 1.2 名词解释 1.3 各版本支持时间路线图 1.4 各版本介绍 1.5 JDK各版本下载链接 1.6 如何学习新特性 2. Java8新特性&#xff1a;Lambda表达式 2.1 关于Java8新特性简介 …

C++ 原型模式探秘:轻松复制对象的高效解决方案

目录标题 引言&#xff1a;原型模式概述&#xff08;Introduction: Overview of Prototype Pattern&#xff09;设计模式简介&#xff08;Brief Introduction to Design Patterns&#xff09;原型模式的定义及作用&#xff08;Definition and Purpose of Prototype Pattern&…

ijkplayer 编译增加支持更多的音视频格式

ijkplayer是B站开源的一款基于ffmpeg的移动端播放器。但为了减少播放器的体积&#xff0c;很多音视频的格式播放默认都是不支持的&#xff0c;需要自己下载ijkplayer源码进行编译。这里以mac环境下android为例&#xff0c;简述ijkplayer的编译过程&#xff0c;以及为了支持更多…

好兄弟离职了,一周面试了20多场,我直呼内行

好兄弟离职之后&#xff0c;一周面试了20多场&#xff0c;最后进了阿里&#xff0c;分享一些面试经历&#xff0c;希望能对大家有帮助&#xff01; 我的面试感受 先说一个字 是真的 “ 累 ” 安排的太满的后果可能就是经常一天只吃一顿饭&#xff0c;一直奔波在路上 不扯这个…

4. VBA宏注释

完整版下载链接&#xff1a; https://download.csdn.net/download/xijinno1/87716168 注释用于记录程序逻辑和用户信息&#xff0c;其他程序员将来可以阅读并理解相同的代码无缝工作。 它包括由开发者&#xff0c;修改者以及还可以包括合并逻辑的信息。 解释器在执行时忽略注释…

python数据结构与算法-动态规划(最长公共子序列)

一、最长公共子序列问题 1、问题概念 一个序列的子序列是在该序列中删去若干元素后得 到的序列。 例如&#xff1a;"ABCD”和“BDF”都是“ABCDEFG”的子序列。 最长公共子序列(LCS) 问题: 给定两个序列X和Y&#xff0c;求X和Y长度最大的公共子字列。 例:X"ABBCBDE”…

第05讲:OpenTracing 简介,先有标准后有天

自从 Google Dapper 的论文发布之后&#xff0c;各大互联网公司和开源社区开发的分布式链路追踪产品百花齐放&#xff0c;同时也给使用者带来了一个问题&#xff0c;各个分布式链路追踪产品的 API 并不兼容&#xff0c;如果用户在各个产品之间进行切换&#xff0c;成本非常高。…