在win10中使用idea開發一個模塊化的maven項目,而後想要把該項目直接編譯到遠程Linux服務器的Docker中,具體作法以下:
第一:在各模塊中的pom文件中加入如下java
<plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <configuration> <imageName>${project.name}:${project.version}</imageName> <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory> <skipDockerBuild>false</skipDockerBuild> <resources> <resource> <directory>${project.build.directory}</directory> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin>
第二:在各模塊的src/main下面新建docker包,在src/main/docker下面新建Dockerfile與runboot.sh文件(文件內容因狀況不一樣就不貼了),結構以下linux
第三:在linux服務器上裝好docker,個人linux版本爲centos7,這裏不建議使用#yum install docker方式安裝,由於這種方式安裝的版本比較舊,並且在配置遠程api時要好多錯誤,建議使用方式docker
#curl -fsSL https://get.docker.com/ | sh或#yum install docker-engine,這裏以17.0.3-ce版本爲例,使用windows
#docker version命令便可驗證是否安裝成功,接下來要想在windows中操做遠程linux中的docker,那前提是必須centos
開啓docker遠程API,修改docker配置文件#vi /usr/lib/systemd/system/docker.service ,進入編輯模式後,將ExecStart這一行後面加上 -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock ,改完後以下所示api
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock ,這裏就寫4個0,你可別改爲本身的ip哦,保存後退出,從新加載配置文件#systemctl daemon-reload ,啓動docker #systemctl start docker ,服務器
輸入#netstat -anp|grep 2375 顯示docker正在監聽2375端口,輸入#curl 127.0.0.1:2375/info 顯示一大堆信息,證實遠程api就弄好了curl
事實證實:要開啓遠程鏈接必須,修改 vi /etc/sysconfig/docker-network,而不是第三步maven
而後重啓dockertcp
sudo systemctl daemon-reload
sudo service docker restart
第四:在windows系統環境變量中新建DOCKER_HOST,值爲tcp://10.100.74.220:2375,(你改爲你本身的docker服務器ip地址)
第五步:打開dos窗口,即cmd命令行,進入到你要編譯的項目文件夾下,
輸入mvn clean package docker:build -DskipTests ,而後慢慢等待,直到最後build成功
第六步:登錄linux,輸入#docker images 發現本身的項目已經被編譯成鏡像了,能夠啓動容器運行鏡像了,也至關於完成了項目的雲部署
經常使用的命令
ps -aux | grep java
docker images 查看鏡像 sudo docker rmi -f 1dd 刪除鏡像 docker rm -f `docker ps -a -q` 刪除全部容器 docker run -p 8081:8050 -t zhujm/demo 運行鏡像