spring cloud-之使用docker部署服務
上一篇我們講到了,由於要把原來的專案拆分成多個專案,同時跑起來機器肯定好吭哧吭哧的,所以我們採用docker的方式進行部署到另外的一臺機器上面,而且現在正式的部署大多數也是採用docker的方式進行部署的。使用docker可以快速的進行部署,而且達到資源利用的最大化。下面就來介紹一下使用docker來部署服務節點eureka
一、先決條件,安裝docker:
環境:centos6.8 x64
1、因為系統自帶的repo中不帶docker需要安裝epel rpm -Uvh 、安裝docker yum install -y docker-io3、啟動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命令可以檢視
三、先決知識 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技術進行批次的構建管理。
作者:fkxuexi
連結:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2558/viewspace-2820933/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 如何部署 Docker Registry 服務Docker
- docker初體驗:docker部署nginx服務DockerNginx
- 使用 Docker 部署 Spring BootDockerSpring Boot
- 微服務Consul系列之服務部署、搭建、使用微服務
- 使用 TensorFlow Serving 和 Docker 快速部署機器學習服務Docker機器學習
- Docker構建服務之部署和備份Jekyll網站Docker網站
- 使用Docker Swarm快速搭建與部署你的服務叢集DockerSwarm
- docker-Laravel-msyql-主從服務部署DockerLaravel
- 基於Docker部署Dubbo+Nacos服務Docker
- 使用 Docker 部署 Spring Boot 專案DockerSpring Boot
- 使用Docker部署Spring Boot專案DockerSpring Boot
- Docker 之 Spring Boot 自動化部署DockerSpring Boot
- Spring Boot 2.0(四):使用 Docker 部署 Spring BootSpring BootDocker
- docker(二十三):docker通過docker-compose部署redmine服務Docker
- 使用Docker實現Spring Boot Restful Web服務案例原始碼DockerSpring BootRESTWeb原始碼
- Spring Boot 2.0(四):使用 Docker 部署 SprSpring BootDocker
- 使用Dockerfile部署nodejs服務DockerNodeJS
- Docker入門(三):nodejs後端服務部署DockerNodeJS後端
- 『高階篇』docker之開發使用者服務(12)Docker
- 使用 Docker 部署 Spring Boot 專案,帶勁!!DockerSpring Boot
- 如何使用Docker內的kafka服務DockerKafka
- 使用 docker 搭建 web 服務環境DockerWeb
- Linux雲服務部署Spring boot專案LinuxSpring Boot
- 使用nacos原始碼部署nacos服務原始碼
- Docker學習之搭建MySql容器服務DockerMySql
- 【Docker】使用docker部署 mysqlDockerMySql
- docker環境下的RabbitMQ部署,Spring AMQP使用DockerMQSpring
- NFS服務部署NFS
- 記一次Docker部署服務的爬坑歷程Docker
- Docker中部署mysql服務的方法及遇到的問題DockerMySql
- Docker學習之搭建ActiveMQ訊息服務DockerMQ
- 如何使用flask將模型部署為服務Flask模型
- 【docker專欄4】使用docker安裝nginx提供web服務DockerNginxWeb
- 使用Docker容器化部署實踐之Django應用部署(一)DockerDjango
- 搭建 Jenkins-2.83 服務,部署 spring boot 專案JenkinsSpring Boot
- 微服務之springCloud 生產者和docker部署(二)微服務SpringGCCloudDocker
- docker內服務訪問宿主機服務Docker
- 使用 Ansible 部署無服務(serverless)應用Server