1. 程式人生 > >docker紀錄篇2——docker使用maven遠端構建

docker紀錄篇2——docker使用maven遠端構建

一 。docker遠端服務

 docker預設情況下 本機 使用 docker命令操作映象和容器  docker提供了 -H可以連線遠端的docker伺服器映象遠端映象
和容器管理,專案中使用maven可以通過DockerFile遠端連線並構建映象 ,達到快速測試的目的

預設docker服務啟動 檔案(/usr/lib/systemd/system/docker.service)編輯檔案 
在ExecStart後面 新增一行(表示啟動2375埠 用於監聽遠端操作)
-H tcp://0.0.0.0:2375  -H unix:///var/run/docker.sock \

  1. [[email protected] /]# vi /usr/lib/systemd/system/docker.service
  2. [Unit]
  3. Description=Docker Application Container Engine
  4. Documentation=http://docs.docker.com
  5. After=network.target rhel-push-plugin.socket registries.service
  6. Wants=docker-storage-setup.service
  7. Requires=docker-cleanup.timer
  8. [Service]
  9. Type=notify
  10. NotifyAccess=all
  11. EnvironmentFile=-/run/containers/registries.conf
  12. EnvironmentFile=-/etc/sysconfig/docker
  13. EnvironmentFile=-/etc/sysconfig/docker-storage
  14. EnvironmentFile=-/etc/sysconfig/docker-network
  15. Environment=GOTRACEBACK=crash
  16. Environment=DOCKER_HTTP_HOST_COMPAT=1
  17. Environment=PATH=/usr/libexec/docker:/usr/bin:/usr/sbin
  18. ExecStart=/usr/bin/dockerd-current \
  19. --add-runtime docker-runc=/usr/libexec/docker/docker-runc-current \
  20. --default-runtime=docker-runc \
  21. --exec-opt native.cgroupdriver=systemd \
  22. --userland-proxy-path=/usr/libexec/docker/docker-proxy-current \
  23. --init-path=/usr/libexec/docker/docker-init-current \
  24. --seccomp-profile=/etc/docker/seccomp.json \
  25. -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock \
  26. $OPTIONS \
  27. $DOCKER_STORAGE_OPTIONS \
  28. $DOCKER_NETWORK_OPTIONS \
  29. $ADD_REGISTRY \
  30. $BLOCK_REGISTRY \
  31. $INSECURE_REGISTRY \
  32. $REGISTRIES

重新載入服務

[[email protected] /]# systemctl daemon-reload 

重啟docker服務

[[email protected] /]# service docker restart

使用任意一臺有docker的機器上執行 (以下 images是顯示的 192.168.1.3上的所有映象  我的剛剛服務修改就是 1.3上)

  1. [[email protected] /]# docker -H 192.168.1.3:2375 images
  2. REPOSITORY TAG IMAGE ID CREATED SIZE
  3. localhost:5000/mycentos jiaozi 9eea42e7d707 About an hour ago 200 MB
  4. docker.io/registry latest b2b03e9146e1 3 weeks ago 33.3 MB

二。使用dockerfile-maven-plugin外掛遠端構建docker

在eclipse中新增 maven專案 並且設定好maven環境  專案根目錄下新增 Dockerfile檔案

  1. FROM maven
  2. RUN mkdir -p /app/regcenter
  3. ADD ./target/REGCENTER-0.0.1-SNAPSHOT.jar /app/regcenter
  4. WORKDIR /app/regcenter
  5. EXPOSE 8761
  6. CMD java -jar /app/regcenter/REGCENTER-0.0.1-SNAPSHOT.jar

pom.xml中分別新增新增dockerfile-maven-plugin【官網 https://github.com/spotify/dockerfile-maven】用於遠端生成映象  spring-boot-maven-plugins用於制定打包後的main方法類

  1. <build>
  2. <plugins>
  3. <plugin>
  4. <groupId>com.spotify</groupId>
  5. <artifactId>dockerfile-maven-plugin</artifactId>
  6. <version>1.4.0</version>
  7. <configuration>
  8. <repository>regcenter</repository>
  9. <tag>jiaozi</tag>
  10. <buildArgs>
  11. <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
  12. </buildArgs>
  13. </configuration>
  14. </plugin>
  15. <plugin>
  16. <groupId>org.springframework.boot</groupId>
  17. <artifactId>spring-boot-maven-plugin</artifactId>
  18. <configuration>
  19. <mainClass>cn.ps.RegServerMain</mainClass>
  20. </configuration>
  21. </plugin>
  22. </plugins>
  23. </build>

系統環境變數中新增一個環境變數 用於制定 docker的主機和埠

專案打包 (會在專案下 生成 REGSERVER-SNASHOT-0.0.1.jar )

mvn package

執行生成映象 
 

mvn clean package dockerfile:build -DskipTests

生成成功後 可以看到生成的映象 
 

  1. [[email protected] ~]# docker images
  2. REPOSITORY TAG IMAGE ID CREATED SIZE
  3. regcenter jiaozi 3072cfb28b91 5 minutes ago 675 MB

 啟動映象 道出8761埠

  1. [[email protected] ~]# docker run -d -p 8761:8761 regcenter:jiaozi
  2. 1f61a01c2d59f719ca80caebcbb7da17f2f8d859f0a3746e18915b3babb2b175

瀏覽器訪問 (部署的是註冊中心的程式碼)

三。使用docker-maven-plugin外掛遠端構建docker

使用這個外掛不需要dockerfile 直接在maven中定義dockerfile的邏輯  官網建議使用 dockerfile-maven-plugin外掛  這個外掛可以不配置環境變數 在maven中配置
pom.xml修改如下【配置的屬性和dockerfile基本一致】:
 

  1. <build>
  2. <plugins>
  3. <plugin>
  4. <groupId>com.spotify</groupId>
  5. <artifactId>docker-maven-plugin</artifactId>
  6. <version>1.1.1</version>
  7. <configuration>
  8. <imageName>regcenter1</imageName>
  9. <dockerHost>http://192.168.1.238:2375</dockerHost>
  10. <baseImage>maven</baseImage>
  11. <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
  12. <!-- copy the service's jar file from target into the root directory of the image -->
  13. <resources>
  14. <resource>
  15. <targetPath>/</targetPath>
  16. <directory>${project.build.directory}</directory>
  17. <include>${project.build.finalName}.jar</include>
  18. </resource>
  19. </resources>
  20. </configuration>
  21. </plugin>
  22. <plugin>
  23. <groupId>org.springframework.boot</groupId>
  24. <artifactId>spring-boot-maven-plugin</artifactId>
  25. <configuration>
  26. <mainClass>cn.ps.RegServerMain</mainClass>
  27. </configuration>
  28. </plugin>
  29. </plugins>
  30. </build>

這裡一點不同 這個地方的dockerhost必須是http 不能使tcp
執行

mvn clean package docker:build -DskipTests

檢視多了一個regserver1的映象

  1. [[email protected] ~]# docker images
  2. REPOSITORY TAG IMAGE ID CREATED SIZE
  3. regcenter1 latest 2dc1894563af 10 seconds ago 675 MB

相關推薦

docker紀錄2——docker使用maven遠端構建

一 。docker遠端服務  docker預設情況下 本機 使用 docker命令操作映象和容器  docker提供了 -H可以連線遠端的docker伺服器映象遠端映象 和

docker紀錄1-docker構建tomcat映象

一。docker簡介       Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然後釋出到任何流行的 Linux 機器上   一個完整的Docker有以

Docker基礎2:映象管理

1、映象簡介 簡單說,Docker映象是一個不包含Linux核心而又精簡的Linux作業系統。        映象不是一個單一的檔案,而是有多層構成。我們可以通過docker history <ID/NAME> 檢視映象中各層內容及大小,每

docker2-使用Docker構建PHP開發環境

PHP開發環境中的一些服務之間是需要通訊的,例如nginx和php-fpm,PHP和MySQL,PHP和redis等都需要通訊,如果採用宿主機埠對映的方式可以滿足網路通訊但是效率和安全性都會減弱,所以可以使用Docker的網路指令來構建一個互通的網路,下面列出常用的網路命令。 建立網路

Dockerfile構建映象並測試執行(docker學習筆記2)

Dockerfile構建映象並測試執行 1建立Dockerfile 建立一個空目錄,建立一個名為的檔案Dockerfile,將以下內容複製並貼上到該檔案中,然後儲存。記下解釋新Dockerfile中每個語句的註釋。 # 使用官方Python作為執行時父映象 FR

docker使用筆記-windows平臺映象構建及使用2

1、拉取nonserver映象 docker pull mcr.microsoft.com/windows/nanoserver 2、測試指令碼 建立資料夾nonserver,並在資料夾中編譯檔案dockerfile和測試指令碼檔案run.bat。 dockerfile檔案的內

docker築基-04-使用Dockerfile構建自己的映象

上一篇文章介紹了使用docker commit命令來構建自己的映象。 本篇文章將使用Dockerfile實現上篇文章中的需求。 1 構建自己的映象 此處我們打算,給一個centos:6.8容器安裝nginx伺服器。 並將其狀態保留,以便不用每次

使用docker Maven外掛本地構建docker映象併發布到遠端伺服器

2.將應用匯入Eclipse IDE並建立Application類。目錄結構如下: Application程式碼如下: package com.example.demo.controller; import org.springframework.web.bind.annotation.Re

python之路-基礎2

python10、if else 流程判斷舉例說明1:import getpass #引用getpass這個模塊 _username = "kk" _password = "123456" username = input("username:") password = getpass.getpass("p

SpringMVC---基礎(2)

success ota 修飾 poj api 接受 handler servle forward 10. MVC 的 Handler 方法可以接受哪些 ServletAPI 類型的參數     原生的jsp中的變量參數,它們可以在函數中使用,就像在servlet中一樣

《移動Web前端高效開發實戰》筆記2——使用Gulp構建一個ECMAScript 6和Sass應用

腳本 x文件 node.js 磁盤 clas res 運行 brush 開發 8.3.1 安裝和配置 運行Gulp需要Node.js環境,請參看第二章內容搭建Node.js環境。使用NPM全局安裝Gulp,命令如下: npm install gulp-cli –g 然

Docker學習筆記-- 如何使用Dockerfile構建鏡像

學習筆記 docker 如何使用 Dockerfile是一種被Docker程序解釋的腳本,Dockerfile由一條一條的指令組成,每條指令對應Linux下面的一條命令。Docker程序將這些Dockerfile指令翻譯真正的Linux命令。Dockerfile有自己書寫格式和支持的命令,Dock

centos7下安裝docker(14.2跨主機網絡-overlay)

活性 用戶 driver 試驗 mach 實踐 point ogr drive 為支持容器跨主機通信,Docker提供了overlay driver,使用戶可以創建基於VxLAN的overlay網絡。VxLAN可將二層數據封裝到UDP進行傳輸,VxLAN提供與VLAN相同的

軟件測試培訓總結2

force 強制 文件名 linu 改名 創建目錄 合並 style passwd 所學內容的整體整理(下): 測試需求分析 概念: 什

docker 學習(2

ins -s line 分配 table date world color not found docker容器中安裝vim ubuntu 中默認未裝vim,docker run ubuntu vim 出現: container_linux.go:247: starting

docker之:使用Dockerfile來構建image

ner bbf clas 進入 打開文件 creat style doc size 1、在docker的宿主機創建文件夾: ? Docker mkdir dockerFile1 2、進入文件夾創建Dockerfile文件 ? Docker cd dockerFil

Docker第一 Get Started

docker docker安裝 docker啟動配置 詳見:[docker官網](https://docs.docker.com)這裏我翻譯的只是我認為必須了解和掌握的知識:版本:Docker v17.09這部分一共六個指南:1. Docker說明及方向2. 建立並運行你的第一個應用3. 將你的應

Linux監控—Centos7.4下構建zabbix監測系統

Centos7下構建zabbix監控系統Centos7.4—構建zabbix監測系統 目錄第一部分 實驗環境第二部分 配置服務器端第三部分 配置被控端(被監控服務器)第四部分 配置郵件報警功能第五部分 測試驗證郵件報警 第一部分 實驗環境 Linux服務端一臺IP地址:192.168.80.10

禪道docker化(Centos7.2)

pass 輸入 word cal aws auth gic mys 刷新 操作步驟 確認服務器禪道版本及容器禪道版本 服務器禪道版本:9.6.2 容器禪道版本:9.6.3 版本sql比對 下載官方9.6.3源碼包url:http://dl.cnezsoft.com/

Docker常用命令2

literal p地址 RM follow 行數 服務器 del ats 允許 categories: Docker Commands Docker命令解讀系列文章將系統講解Docker使用的命令,方便大家學習Docker的基本操作。在寫這個系列文章的時候,主要參考了D