关于docker的安装和基本使用可以看我的这篇文章https://blog.csdn.net/yjt520557/article/details/87624188
1.配置docker远程链接端口
首先编辑我们服务器上的docker文件
vi /usr/lib/systemd/system/docker.service
修改以ExecStart开头的行(centos 7):
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
这里要注意由于的linx是centos 7所以修改为如上,如果是centos 7以下的直接添加-H tcp://0.0.0.0:2375 即可,一开始centos 7我也是直接添加的这个,还是不能被外网访问,所以这个坑大家要注意
ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375
修改后保存文件,然后重启docker
systemctl daemon-reload
service docker restart
重启之后测试远程连接是否正常
这里的2375是之前配置的端口
curl http://localhost:2375/version
看到返回信息基本上就没有问题了
然后开启端口,或者关闭防火墙,二者选其一即可
firewall-cmd --zone=public --add-port=2375/tcp --permanent
chkconfig iptables off
然后打开浏览器测试将之前的localhost修改为你的ip
2. 使用idea连接到docker
首先下载docker插件,好像idea2019自带了docker插件
下载的话在Marketplace种搜索Docker安装即可
然后配置docker地址,在你的File | Settings | Build, Execution, Deployment | Docker
配置完成链接之后,出现了框中的内容即可
链接成功之后会列出容器和镜像
3.使用docker部署boot项目
首先在你的springboot项目中的根目录下添加一个docker文件夹并创建Dockerfile文件
文件内容为
FROM openjdk:8-jdk-alpine
ADD *.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
然后增加配置
配置内容为
命令解释:
-
Image tag : 指定镜像名称和tag,镜像名称为 docker-demo,tag为1.1
-
Bind ports : 绑定宿主机端口到容器内部端口。格式为[宿主机端口]:[容器内部端口]
-
Bind mounts : 将宿主机目录挂到到容器内部目录中。
格式为[宿主机目录]:[容器内部目录]。这个springboot项目会将日志打印在容器 /home/developer/app/logs/ 目录下,将宿主机目录挂载到容器内部目录后,那么日志就会持久化容器外部的宿主机目录中。
修改pom文件将build部分修改为如下
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration>
<dockerDirectory>src/main/docker</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<configuration>
<tasks>
<copy todir="src/main/docker" file="target/${project.artifactId}-${project.version}.${project.packaging}"></copy>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
然后打包maven
运行
先pull基础镜像,然后再打包镜像,并将镜像部署到远程docker运行,这里我们可以看到镜像名称为docker-demo:1.1,docker容器为docker-server
启动成功
乱码解决:
找到IDEA安装目录的bin目录,在idea.exe.vmoptions和idea64.exe.vmoptions文件中追加以下内容:
-Dfile.encoding=utf-8
浏览器访问: