spring cloud-之使用docker部署服務

上一篇咱們講到了,因爲要把原來的項目拆分紅多個項目,同時跑起來機器確定好吭哧吭哧的,因此咱們採用docker的方式進行部署到另外的一臺機器上面,並且如今正式的部署大多數也是採用docker的方式進行部署的。使用docker能夠快速的進行部署,並且達到資源利用的最大化。下面就來介紹一下使用docker來部署服務節點eurekahtml

1、先決條件,安裝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翻譯的文檔!!!java

2、針對本篇須要瞭解的命令

docker一個系列的教程也是至關繁雜的,若是有時間後面可能會寫也可能不會,畢竟我是作開發的,平時能用它來簡化部署和一系列的安裝就能夠了,這畢竟是運維的領域術業有專攻,因此這裏介紹的東西僅僅爲本篇所介紹的東西服務。
- docker build -t 鏡像名字 . 注意不要少了後面的一個 「.」,這個是表明當前的目錄的
- docker run -d -p 主機端口1:容器端口1 -p 主機端口2:容器端口2(能夠有多個) -v /data(主機目錄):/data(容器目錄) 鏡像idlinux

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菜鳥教程

3、先決知識 Dockerfile的瞭解

因爲是基於Dcokerfile進行的,因此須要對Dcokerfile有一些瞭解,docker能夠依據Dockerfile進行構建鏡像,基本上eureka是不會變更的,因此咱們在後面能夠反覆的利用這個鏡像,甚至於構建集羣的時候咱們能夠修改一下配置,直接啓動多個鏡像就能夠了。web

# 因爲如今下載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包的命令

4、開始構建:

  • 首先把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 9a3cc4915c9bspring

經過這個方法,咱們能夠少許的改動Dockerfile的內容,而後就能夠經過docker來部署項目,其實後面會介紹可使用docker compose技術進行批量的構建管理。docker

相關文章
相關標籤/搜索