Docker开启远程访问、IDEA Docker 连接 linux 上的 Docker
2023-09-14 08:57:05 时间
前提条件:Docker开启远程访问
修改Docker服务文件:
vi /lib/systemd/system/docker.service
将文件内的ExecStart注释,添加如下代码:
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
重新加载配置文件、重启Docker服务
systemctl daemon-reload
systemctl restart docker
查看端口号(若指令无法使用,执行yum install net-tools)
netstat -nplt |grep 2375
安装插件(最新版IDEA已经内置Docker插件)
-
Docker插件,首先需要在你的IDEA中安装Docker插件,定位到File-Setting-Plugins后搜索Docker Integration安装
-
配置Docker服务器,在IDEA中定位到File-Setting-build,Execution,Deployment-Docker
运行 idea 项目到 远程 linux docker 上
1、编写 Dockerfile 文件
FROM jdk1.8:v1.0_271
EXPOSE 9000
WORKDIR /usr/local/data/myProject
VOLUME /usr/local/data
ADD shop.jar /usr/local/data/myProject
ENTRYPOINT ["java","-jar","/usr/local/data/myProject/shop.jar"]
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:UTF-8
ENV LC_ALL en_US.UTF-8
其中,jdk1.8:v1.0_271为自定义镜像。
2、添加 maven 依赖
1 <build> 2 <finalName>${project.artifactId}</finalName> 3 <plugins> 4 <plugin> 5 <groupId>org.springframework.boot</groupId> 6 <artifactId>spring-boot-maven-plugin</artifactId> 7 </plugin> 8 9 <!--使用docker-maven-plugin插件--> 10 <plugin> 11 <groupId>com.spotify</groupId> 12 <artifactId>docker-maven-plugin</artifactId> 13 <version>1.0.0</version> 14 15 <!--将插件绑定在某个phase执行--> 16 <executions> 17 <execution> 18 <id>build-image</id> 19 <!--将插件绑定在package这个phase上。也就是说,用户只需执行mvn package ,就会自动执行mvn docker:build--> 20 <phase>package</phase> 21 <goals> 22 <goal>build</goal> 23 </goals> 24 </execution> 25 </executions> 26 27 <configuration> 28 <!--指定生成的镜像名--> 29 <imageName>zhangjianbin1991/${project.artifactId}</imageName> 30 <!--指定标签--> 31 <imageTags> 32 <imageTag>latest</imageTag> 33 </imageTags> 34 <!-- 指定 Dockerfile 路径--> 35 <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory> 36 37 <!--指定远程 docker api地址--> 38 <dockerHost>http://192.168.75.132:2375</dockerHost> 39 40 <!-- 这里是复制 jar 包到 docker 容器指定目录配置 --> 41 <resources> 42 <resource> 43 <targetPath>/</targetPath> 44 <!--jar 包所在的路径 此处配置的 即对应 target 目录--> 45 <directory>${project.build.directory}</directory> 46 <!-- 需要包含的 jar包 ,这里对应的是 Dockerfile中添加的文件名 --> 47 <include>${project.build.finalName}.jar</include> 48 </resource> 49 </resources> 50 </configuration> 51 </plugin> 52 </plugins> 53 </build>
此处,小编使用版本号+时间戳作为镜像tag
<build> <!--${build.time} 错误提示不影响--> <!--<finalName>shop-v1.0.0_${build.time}</finalName>--> <finalName>${project.artifactId}</finalName> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <includeSystemScope>true</includeSystemScope> <fork>true</fork> </configuration> </plugin> <!-- 跳过单元测试 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <skipTests>true</skipTests> </configuration> </plugin> <!--打包时间--> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <version>1.10</version> <executions> <execution> <id>timestamp-property</id> <goals> <goal>timestamp-property</goal> </goals> <configuration> <name>build.time</name> <pattern>yyyyMMddHHmmss</pattern> <locale>zh_CN</locale> <timeZone>Asia/Shanghai</timeZone> </configuration> </execution> </executions> </plugin> <!--使用docker-maven-plugin插件--> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>1.0.0</version> <!--将插件绑定在某个phase执行--> <executions> <execution> <id>build-image</id> <!--将插件绑定在package这个phase上。也就是说,用户只需执行mvn package ,就会自动执行mvn docker:build--> <phase>package</phase> <goals> <goal>build</goal> </goals> </execution> </executions> <configuration> <!--指定生成的镜像名--> <imageName>shop/${project.artifactId}</imageName> <!--指定标签--> <imageTags> <imageTag>v1.0.0_${build.time}</imageTag> </imageTags> <!-- 指定 Dockerfile 路径--> <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory> <!--指定远程 docker api地址--> <dockerHost>http://192.168.56.11:2375</dockerHost> <!-- 这里是复制 jar 包到 docker 容器指定目录配置 --> <resources> <resource> <targetPath>/</targetPath> <!--jar 包所在的路径 此处配置的 即对应 target 目录--> <directory>${project.build.directory}</directory> <!-- 需要包含的 jar包 ,这里对应的是 Dockerfile中添加的文件名 --> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin> </plugins> <!--打包时开启,排除yml--> <!--<resources> <resource> <directory>src/main/resources</directory> <excludes> <exclude>**/application.properties</exclude> <exclude>**/application.yml</exclude> </excludes> </resource> </resources>--> </build>
3、mvn 打包
打包容器,启动容器前,完成端口映射
参考:https://www.cnblogs.com/zhangjianbin/p/9277229.html
相关文章
- linux下创建且挂载光盘镜像
- linux创建新用户以及修改密码
- Linux crontab定时任务示例
- linux一键安装docker命令
- 【docker】Docker快速入门总结笔记(命令大全)
- Linux下查看进程和线程
- 3.第一章 计算机基础和Linux安装 -- 计算机系统和Linux安装(三)
- L57.linux命令每日一练 -- 第九章 Linux进程管理命令 -- ps和pstree
- RTX30系列linux+docker容器的GPU配置(tensorflow-gpu==1.15~2.x、tensorrt 7、cuda、cudnn)附加resnet50模型测试
- 【云原生之Docker实战】使用docker部署Halo博客系统
- 【云原生之Docker实战】使用docker部署nacos平台
- Linux系统之部署Samba服务
- Docker pull拉取镜像报错“Error response from daemon: Get “https://registry-1.docker.io/v2”解决办法
- docker 权限问题 Got permission denied while trying to connect to the Docker daemon socket at 。。。
- linux samba 用户访问、匿名访问
- Linux安装httpd2.4.10
- linux挖矿进程,隐藏CPU——用top、ps等命令却一直找不到是哪个进程在占用,todo,待深入
- Selenium----基于Docker在Linux环境下执行Selenium自动化脚本
- Linux命令详解之basename
- Linux复习资料——一篇文章学会安装Java(免环境配置)以及tomcat服务
- Docker学习笔记12:docker使用之YAML 入门
- Docker学习笔记09:docker使用之容器连接
- 如何诊断 Linux 服务器的性能?10个工具助力你
- 解决安装AI算法库TensorFlow 2.0的最新入坑指南以及详细的安装教程【分别在linux和windows系统下安装】
- Linux文件的3个时间
- Linux查看so/bin中的依赖