案例使用springboot項(xiàng)目,在IDEA 中集成Docker生成鏡像,并將鏡像發(fā)布到linux服務(wù)器
具體步驟如下:
1、Centos7安裝Docker
更新系統(tǒng)的軟件包列表
sudo yum update
安裝Docker所需的軟件包和依賴項(xiàng):
sudo yum install docker
完成安裝后,啟動Docker服務(wù)。在終端中運(yùn)行以下命令:
sudo service docker start
驗(yàn)證Docker是否成功安裝。在終端中運(yùn)行以下命令:
docker --version
linux查看docker運(yùn)行狀態(tài):
systemctl status docker
2、Docker開啟遠(yuǎn)程訪問:
vim /lib/systemd/system/docker.service
重新加載配置
systemctl daemon-reload
systemctl restart docker
3、idea安裝docker插件:
鏈接docker測試:
docker服務(wù)器地址ip+docker端口
若連接失敗:
#查看防火墻狀態(tài)
systemctl status firewalld
#添加2375端口
firewall-cmd --permanent --zone=public --add-port=2375/tcp
#防火墻重啟
firewall-cmd --reload
#查看開放的端口
firewall-cmd --permanent --zone=public --list-ports
#====開啟狀態(tài)下不需要執(zhí)行==========
#啟動防火墻命令
systemctl start firewalld
防火墻配置后idea重新連接測試即可。
4、文件配置
pom.xml引入docker插件:
<!-- docker插件配置 -->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<version>1.4.13</version>
<executions>
<execution>
<id>default</id>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
<configuration>
<!--鏡像名字-->
<repository>${project.artifactId}</repository>
<tag>${project.version}</tag>
<buildArgs>
<JAR_FILE>
${project.build.finalName}.jar
</JAR_FILE>
</buildArgs>
</configuration>
</plugin>
項(xiàng)目根目錄下新建Dockerfile文件:
Dockerfile文件內(nèi)容:
#基礎(chǔ)鏡像為java8
#FROM williamyeh/java8:latest
FROM java:8
#作者簽名
MAINTAINER "zxj"
WORKDIR /app/docker-demo
ARG JAR_FILE
# 刪除之前的鏡像文件
RUN rm -rf /app/docker-demo/eco*
#拷貝jar包,到容器內(nèi)的指定位置
ADD ./target/eco-0.0.1-SNAPSHOT.jar /app/docker-demo/eco-0.0.1-SNAPSHOT.jar
#容器對外映射端口,聲明運(yùn)行時容器提供服務(wù)端口,這只是一個聲明,在運(yùn)行時并不會因?yàn)檫@個聲明應(yīng)用就會開啟這個端口的服務(wù)
EXPOSE 8082
#運(yùn)行啟動命令
#CMD ["java", "-jar","-Dfile.encoding=UTF-8","eco-0.0.1-SNAPSHOT.jar","--spring.profiles.active=dev"]
ENTRYPOINT ["java", "-jar","/app/docker-demo/eco-0.0.1-SNAPSHOT.jar"]
5、打包鏡像并推送至docker服務(wù)器
idea執(zhí)行mvn clean package docker:build
報錯:
maven配置docker服務(wù):
配置環(huán)境變量:
錯誤提示:
No plugin found for prefix 'docker' in the current project and in the plugin groups
需要在maven的conf/setting.xml中要加入:
<pluginGroups>
<pluginGroup>com.spotify</pluginGroup>
</pluginGroups>
依然報錯:
最后更換命令成功了:
mvn clean package dockerfile:build
6、運(yùn)行鏡像
查看鏡像:
docker images
運(yùn)行鏡像
docker run -d -p 8082:8083 jingxiangname:0.0.1-SNAPSHOT
jingxiangname:0.0.1-SNAPSHOT參數(shù)為以下兩個參數(shù)的值:文章來源:http://www.zghlxwxcb.cn/news/detail-703914.html
docker相關(guān)命令:文章來源地址http://www.zghlxwxcb.cn/news/detail-703914.html
#啟動docker
systemctl start docker
#停止docker
systemctl stop docker
#重啟docker
systemctl restart docker
#查看docker狀態(tài)
systemctl status docker
#開機(jī)啟動
systemctl enable docker
#列出所有在運(yùn)行的容器信息:
docker ps
#刪除鏡像id或名字均可
docker rmi bf756fb1ae65
#批量刪除關(guān)鍵字鏡像,替換命令中的guanjianzi
docker rmi --force `docker images | grep guanjianzi| awk '{print $3}'`
到了這里,關(guān)于Springboot集成Docker并將鏡像推送linux服務(wù)器的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!