首先连上远程服务器,修改docker配置,以便Idea能够远程连接到服务器的docker
示例的远程操作系统是 CentOs 7,docker 版本为20
首先在服务器上找到名为 docker.service的文件,我的路径为
/usr/lib/systemd/system/docker.service
使用 vi 或者 vim编辑改文件,在 ExecStart 列 行尾追加参数
-H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
然后重启docker
systemctl daemon-reload
systemctl restart docker
打开Idea ,进入插件市场搜索并安装插件Docker
至此准备工作就已经完成了
然后随便新建一个springboot的web项目
本地启动访问下
在服务里可以看到刚才我们新建的远程docker连接也在
然后部署方式三选一
我们这里先选择Dockerfile的方式部署
它要求我们提供DockerFile文件,这里就先取消掉, 然后新建一个DockerFile文件
同时打包后的jar也复制到DockerFile路径下
然后继续回到docker Deployment页面,填好相关配置
#指定jdk镜像
FROM williamyeh/java8
# COPY or ADD to image
COPY dockerdemo-0.0.1-SNAPSHOT.jar app.jar
RUN bash -c "touch /app.jar"
#默认8080端口
#指定项目暴露的端口号,与项目配置一样,即容器配置的暴露端口
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "app.jar"]
然后我们试着远程访问下
至此相关就完成了idea通过docker来远程部署的过程
当然示例用的是DockerFile部署的,我们也可以选择使用docker-compose部署,
新建一个docker-compose文件,端口还是选择8080映射
version: "3"
services:
dockerDemo2:
image: williamyeh/java8:latest
container_name: dockerDemo2
privileged: true
environment:
TZ: Asia/Shanghai
LANG: es_US.UTF-8
restart: always
volumes:
- ./dockerdemo-0.0.1-SNAPSHOT.jar:/web/dockerdemo-0.0.1-SNAPSHOT.jar
entrypoint: java -jar /web/dockerdemo-0.0.1-SNAPSHOT.jar &
ports:
- 8080:8080
先停掉刚才的dockerdemo
然后提示报错了,说本地找不到docker-compose.exe来执行
我们配置一下本地的docker-compose.exe,该步骤 需要下载Docker for windows到本机,这里我们是已经下好 安装过了的,所以直接配置
然后直接开RUN
上面圈住的是环境变量设置,需要设置window路径转换,不然会报奇怪的错误 XD,类似
invalid volume specification xxxx.jar:rw