IDEA中通过docker插件部署springboot项目
docker 相关部分
windows 系统
安装/升级Docker客户端
对于Windows 10专业版以下的用户,推荐使用Docker Toolbox
Windows安装文件:http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/
对于Windows 10专业版以上的用户 推荐使用Docker for Windows
Windows安装文件:http://mirrors.aliyun.com/docker-toolbox/windows/docker-for-windows/
配置镜像加速器
针对安装了Docker Toolbox
的用户,您可以参考以下配置步骤:
创建一台安装有Docker
环境的Linux
虚拟机,指定机器名称为default
,同时配置Docker
加速器地址。
docker-machine create --engine-registry-mirror=https://*****.mirror.aliyuncs.com -d virtualbox default
查看机器的环境配置,并配置到本地,并通过Docker
客户端访问Docker
服务。
docker-machine env default
eval "$(docker-machine env default)"
docker info
针对安装了Docker for Windows
的用户,您可以参考以下配置步骤:
在系统右下角托盘图标内右键菜单选择 Settings
,打开配置窗口后左侧导航菜单选择 Docker Daemon
。编辑窗口内的JSON串,填写下方加速器地址:
{
"registry-mirrors": ["https://*****.mirror.aliyuncs.com"]
}
8.png
编辑完成后点击 Apply
保存按钮,等待Docker
重启并应用配置的镜像加速器。注意Docker for Windows
和 Docker Toolbox
互不兼容,如果同时安装两者的话,需要使用hyperv
的参数启动。
docker-machine create --engine-registry-mirror=https://*****.mirror.aliyuncs.com -d hyperv default
Docker for Windows
有两种运行模式,一种运行Windows
相关容器,一种运行传统的Linux
容器。同一时间只能选择一种模式运行。
配置远程访问
打开docker
的设置界面,找到General
,在里面找到Expose daemon on tcp://localhost:2375 without TLS
选项,打上勾,即可进行本地或远程API调用。
linux 系统
安装/升级Docker客户端
更新apt软件包索引。
sudo apt-get update
安装最新版本的Docker CE
,或者转到下一步安装特定版本:
sudo apt-get install docker-ce
配置镜像加速器
您可以通过修改daemon
配置文件/etc/docker/daemon.json
来使用加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json
在文件中加入以下内容即可:
{
"registry-mirrors": ["https://********.mirror.aliyuncs.com"]
}
重新启动
sudo systemctl daemon-reload
sudo systemctl restart docker
配置远程访问
编辑docker
服务配置文件
sudo vim /lib/systemd/system/docker.service
找到如下配置
ExecStart=/usr/bin/dockerd
修改为
ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375
9.png
重启docker网络
sudo systemctl daemon-reload
重启docker服务
sudo systemctl restart docker
测试
curl http://localhost:2375/verion
10.png
镜像加速地址,可以是阿里云的,这里以阿里云为例:
2.pngIntelliJ IDEA 相关
配置idea连接docker服务
安装idea的docker插件
在setting
中安装docker
插件
等待安装完成重启idea
配置连接
重启完成后,我们打开settings
可以看到docker
点击+
,添加一个连接。
我们通过tcp的方式连接到linux
或者windows
的docker
服务。信息配置好后,idea
会自动检测。然后会输出connection successful
。
然后再工具栏选择docker
的窗口,点击运行
接下来我们在idea
上面操作docker
项目相关
首先新建一个简单的springboot
项目
在项目的pom.xml
文件中加入以下代码:
<!--复制jar包到指定目录-->
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>gen-webadmin</id>
<phase>package</phase>
<configuration>
<tasks>
<copy todir="docker" file="target/${project.artifactId}-${project.version}.${project.packaging}" />
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
17.png
在项目根目录下建立一个docker
文件夹,在docker
文件夹下新建一个Dockerfile
文件,写入一下内容:
FROM java:8u111
VOLUME /tmp
ADD *.jar app.jar
EXPOSE 80
ENTRYPOINT ["java","-jar","/app.jar"]
# Ubuntu 时区
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
11.png
然后配置docker
启动项
选择编辑:
添加一个启动项:
13.png填写docker
相关的参数:
在执行docker
镜像之前需要把项目进行打包,所以在最下面的操作栏中加入maven
打包相关的命令:
添加一个maven
任务:
添加maven
打包命令:
maven
打包分为了几步:
第一步是清除上次编译或者打包的文件
第二步是对项目进行编译以及打成jar
包
第三步则是把打包好的jar
文件移动到指定的docker文件夹,这样我们的docker
对制作镜像时才能找到我们的jar
文件,否则则会在制作过程中报错。
正常情况:
Deploying 'signin Dockerfile: docker/Dockerfile'...
Building image...
Step 1/6 : FROM java:8u111
---> d23bdf5b1b1b
Step 2/6 : VOLUME /tmp
---> Using cache
---> fca4a788f895
Step 3/6 : ADD *.jar app.jar
---> a7d47f6bf6ec
Step 4/6 : EXPOSE 80
---> Running in 7b57f4915a64
Removing intermediate container 7b57f4915a64
---> 8a893ebb3052
Step 5/6 : ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app.jar", "--Dspring.config.location=application.yml"]
---> Running in 26ae8f5e5310
Removing intermediate container 26ae8f5e5310
---> 28cc02929af7
Step 6/6 : RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
---> Running in c0a1b980f7ca
Removing intermediate container c0a1b980f7ca
---> 22034793c303
Successfully built 22034793c303
Successfully tagged signin:latest
Creating container...
Container Id: 0cefcdae23b548d1cdc6865b31f4f4c841de3bed1e6667e64b6583be0b00fd22
Container name: 'signin'
Attaching to container 'signin'...
Starting container 'signin'
'signin Dockerfile: docker/Dockerfile' has been deployed successfully.
异常情况:
Deploying 'signin Dockerfile: docker/Dockerfile'...
Building image...
Step 1/6 : FROM java:8u111
---> d23bdf5b1b1b
Step 2/6 : VOLUME /tmp
---> Using cache
---> fca4a788f895
Step 3/6 : ADD *.jar app.jar
Error: ResponseItem.ErrorDetail[code=<null>,message=ADD failed: no source files were specified]
Failed to deploy 'signin Dockerfile: docker/Dockerfile': ADD failed: no source files were specified
docker
启动完成
我们去linux
上面查看一下:
docker ps -a
23.png