最近在家待着沒事,老大通知自行研究docker 相關的知識以備上班的時候運用,現在記錄一下,本地maven打包自動生辰docker鏡像推到遠程的鏡像倉庫。
第一要配置DockerFile如下:
FROM openjdk:8-jdk-alpine
OLUME /tmp
ADD oasys-0.0.1-SNAPSHOT.jar app.jar ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
oasys-0.0.1-SNAPSHOT.jar根據實際情況打出的包
第二步要添加pom文件配置
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <docker.image.prefix>springboot</docker.image.prefix> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties>
添加插件
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <!--加入maven插件“docker-maven-plugin”--> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>1.0.0</version> <executions> <!--執行 mvn package 時 自動 執行 mvn docker:build--> <execution> <id>build-image</id> <phase>package</phase> <goals> <goal>build</goal> </goals> </execution> </executions> <configuration> <imageName>${docker.image.prefix}/${project.artifactId}</imageName> <dockerHost> http://192.168.163.129:2375</dockerHost> <dockerDirectory>src/main/docker</dockerDirectory> <resources> <resource> <targetPath>/</targetPath> <directory>${project.build.directory}</directory> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin> </plugins> </build>
三,在linux服務器上裝好docker,我的linux版本為centos7,這里不建議使用#yum install docker方式安裝,因為這種方式安裝的版本比較舊,而且在配置遠程api時要好多錯誤,建議使用方式
curl -fsSL https://get.docker.com/ | sh
或
yum install docker-engine,這里以17.0.3-ce
版本為例,使用
#docker version命令即可驗證是否安裝成功,接下來要想在windows中操作遠程linux中的docker,那前提是必須
開啟docker遠程API,修改docker配置文件
#vi /usr/lib/systemd/system/docker.service
,進入編輯模式后,將ExecStart這一行后面加上 -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock ,改完后如下所示
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock ,這里就寫4個0,你可別改成自己的ip哦,保存后退出,
#重新加載配置文件# systemctl daemon-reload #啟動# systemctl restart docker.service , #顯示docker正在監聽2375端口 #netstat -anp|grep 2375 #curl 127.0.0.1:2375/info #顯示一大堆信息,證明遠程api就弄好了
iptables放行2375端口 (否則會報連接超時,當初沒有這一步,報錯根本不知道怎么回事,找了好長時間ಠ~ಠ)
iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 2375 -j ACCEPT
之后打包就好