1. 程式人生 > >spring cloud-之使用docker部署服務

spring cloud-之使用docker部署服務

上一篇我們講到了,由於要把原來的專案拆分成多個專案,同時跑起來機器肯定好吭哧吭哧的,所以我們採用docker的方式進行部署到另外的一臺機器上面,而且現在正式的部署大多數也是採用docker的方式進行部署的。使用docker可以快速的進行部署,而且達到資源利用的最大化。下面就來介紹一下使用docker來部署服務節點eureka

一、先決條件,安裝docker:

  • 環境:centos6.8 x64
1、因為系統自帶的repo中不帶docker需要安裝epel
rpm -Uvh http://ftp.riken.jp/Linux/fedora/epel/6Server/x86_64/epel-release-6-8.noarch.rpm
2、安裝docker yum install -y docker-io 3、啟動docker service docker start

ps:網上前幾篇教程,千篇一律的都是需要升級kernel,依據我的實踐centos6.8可以不用升級kernel,按照上述步驟即可安裝成功。但願多一些實踐教程,少一些抄襲和價值極地的使用google翻譯的文件!!!

二、針對本篇需要了解的命令

docker一個系列的教程也是相當繁雜的,如果有時間後面可能會寫也可能不會,畢竟我是做開發的,平時能用它來簡化部署和一系列的安裝就可以了,這畢竟是運維的領域術業有專攻,所以這裡介紹的東西僅僅為本篇所介紹的東西服務。
- docker build -t 映象名字 . 注意不要少了後面的一個 “.”,這個是代表當前的目錄的
- docker run -d -p 主機埠1:容器埠1 -p 主機埠2:容器埠2(可以有多個) -v /data(主機目錄):/data(容器目錄) 映象id

docker run -d -p 2001:2001 fb528f5e7835
  • docker images 檢視docker 有哪些已經構建好的映象,我們找到映象的id,可以直接利用上面的命令進行執行
  • docker ps 檢視正在執行的容器
  • docker ps -a 檢視所有的容器
  • docker start|stop|restart 容器id
  • docker pull 映象名稱,從docker的倉庫中拉去已經建立好的映象
    差不多上面的命令就可以覆蓋到今天的內容了,如果還需要了解更多的docker命令可以檢視docker菜鳥教程

三、先決知識 Dockerfile的瞭解

由於是基於Dcokerfile進行的,所以需要對Dcokerfile有一些瞭解,docker可以依據Dockerfile進行構建映象,基本上eureka是不會變動的,所以我們在後面可以反覆的利用這個映象,甚至於構建叢集的時候我們可以修改一下配置,直接啟動多個映象就可以了。

# 由於現在下載jdk的話需要使用認證,所以我們在生產環境可以使用這個,上線的時候我們可以自己來製作一個映象就好了,-alpine  這個是一個極小的linux系統(這樣可以減小docker映象的體積),後面不建議使用這個,因為這個dns好像實現的不一樣,在服務發現中可能會有問題,所以最好還是使用centos的映象為基礎來構建
FROM openjdk:8-jdk-alpine 
VOLUME /tmp
ADD eureka.jar eureka.jar (前面一個是打包的jar的名字,後面一個是在容器中使用的名字,這個要和最後的-jar 後面的jar包的名字一致)
RUN sh -c 'touch /eureka.jar'
ENV JAVA_OPTS=""
#Djava.security.egd  這個是用來防止springboot專案tomcat啟動慢的問題(具體可搜尋:隨機數數與熵池策略)
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /eureka.jar" ]
  • FROME:指明在那個映象的基礎上來構建映象
  • VOLUME:docker因為它的高度的隔離的特性,所以如果不掛在卷的話,容器重啟資料就會丟失
  • ADD:是把本地的jar包拷貝到容器裡面去
  • RUN:在容器中執行構建命令
  • ENTRYPOINT:本例中代表的是執行java執行jar包的命令

四、開始構建:

  • 首先把eureka工程打包,本專案是構建jar包,當然打成war也是可以的,需要把FROM所依賴的映象改為java和tomcat共同的映象,同時還需要把war ADD到tomcat的webapps(或者指定tomcat的配置)
    image.png
  • 構建映象 docker build -t eureka .
    image.png
    最後的一串字串就是映象的id
  • 檢視構建好的映象id,執行
    image.png
docker run -d -p 2001:2001

image.png
出現一個長的字串就說明我們已經執行成功了
- 檢驗一下 http://192.168.0.200:2001
image.png
- 檢視我們執行的映象 docker ps -a
image.png
- 停止|啟動|重啟容器:docker stop|start|restart 9a3cc4915c9b

通過這個方法,我們可以少量的改動Dockerfile的內容,然後就可以通過docker來部署專案,其實後面會介紹可以使用docker compose技術進行批量的構建管理。