使用docker-maven-plugin插件將項目編譯爲docker鏡像到遠程linux服務器

在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

  1. # /etc/sysconfig/docker-network  
  2. DOCKER_NETWORK_OPTIONS="-H unix:///var/run/docker.sock -H 0.0.0.0:2375"  

而後重啓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 運行鏡像

相關文章
相關標籤/搜索