环境准备,笔者使用的是虚拟机的centos7系统
1.安装docker,
1.安装docker
yum install -y docker //-y 表示不询问 使用默认配置进行安装
2.配置docker远程链接端口,使idea可以连接上docker
vim /usr/lib/systemd/system/docker.service
添加以下内容:
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
注意这里使centos7版本添加的内容,如果centos7以下的版本直接添加-H tcp://0.0.0.0:2375 即可
3.修改后保存文件,然后重启docker
systemctl daemon-reload
service docker restart
4.测试,能不能连接上docker
curl http://192.168.211.131:2375/version
可以看到输出版本信息代表成功连接
也可以浏览器查看
2.使用IDEA连接docker
1.首先下载docker插件,idea2019版本的自带有docker不用下载,
检查是否能够来连接上服务器的docker
2.连接成功之后,会列出docker里面的容器和镜像
3.使用docker部署boot项目
1.首先在springboot项目中的根目录下添加一个docker文件夹并创建Dockerfile文件
FROM openjdk:8-jdk-alpine
ADD *.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
其实这三行的意思是:
- FROM,指定一个已经存在的镜像,编译环境jdk1.8;
- ADD ,拷贝文件并且重命名;
- ENTRYPOINT 写的是运行jar包的命令
2.添加docker运行配置
命令解释:
- Image tag : 指定镜像名称和tag,镜像名称为 docker-demo,tag为1.1
- Bind ports : 绑定宿主机端口到容器内部端口。格式为[宿主机端口]:[容器内部端口]
- Dockerfile: Dockerfile文件所在位置
3.修改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>
4.先添加maven打包命令,然后打包
clean package -P dev -D maven.test.skip=true
5.运行docker命令,生成docker镜像,之后发送到远程服务器中,在服务器内运行
6.到这一步,镜像已经pull上去服务器了,让我们来看一下服务器的docker镜像
docker images
查看正在运行的docker镜像
docker ps
如果想了解更多的docker指令,可以看看笔者的这篇博客
https://blog.csdn.net/weixin_39025362/article/details/105955670
7.浏览器验证,我们的springboot工程,已经在服务器上面跑了