日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

(六)docker-compose使用教程

發(fā)布時間:2024/4/15 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (六)docker-compose使用教程 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

目錄

?

簡介

一.快速開始

二.運行多個服務

命令擴充

三.內(nèi)容補充


簡介

Compose is a tool for defining and running multi-container Docker applications. With Compose, you use a Compose file to configure your application's services. Then, using a single command, you create and start all the services from your configuration.

Compose是一個用于定義和運行多容器Docker應用程序的工具。使用組合,可以使用組合文件配置應用程序的服務。然后,使用單個命令從配置中創(chuàng)建和啟動所有服務。

我們從logo上可以看出來, 說白了, 這個東西就是一個管理容器的工(zhang)具(yu), 我們可以方便的使用它來管理我們的docker容器, 可以極大程度的簡化命令行的復雜操作.

一.快速開始

如果你是MacWindows用戶使用桌面版本的Docker應用默認就會替你安裝docker-compose(下文中用dc代替), 如果是centos的話可以使用命令yum -y install docker-compose太簡單了不做過多說明.

查看版本,能顯示出來證明安裝成功了

lianying@lianyingdeiMac ~ % docker-compose version docker-compose version 1.27.2, build 18f557f9 docker-py version: 4.3.1 CPython version: 3.7.7 OpenSSL version: OpenSSL 1.1.1g 21 Apr 2020

接下來我們有需求了, 運行一個service-a掛載到/usr/local, 映射端口為8082并添加servicehost域名映射內(nèi)網(wǎng)ip,很多人可以想到那應該是一條冗長docker命令

docker run -idt -p 8082:8082 -v /Users/objcat/jar/service-a.jar:/usr/local/service-a.jar --name service-a java sh -c "echo 192.168.1.126 servicehost >> /etc/hosts && java -jar /usr/local/service-a.jar"

這么一大坨,看起來十分不方便,那么我們就是用docker-compose來優(yōu)化一下

首先創(chuàng)建一個名為docker-compose.yml的文件

lianying@lianyingdeiMac SpringBoot01 % touch docker-compose.yml lianying@lianyingdeiMac SpringBoot01 % ls docker-compose.yml

之后隨便是用一個文本編輯器打開,寫入下面內(nèi)容

version: '2' services:service-a: image: javavolumes:- /Users/objcat/jar/service-a.jar:/usr/local/service-a.jarports:- 8082:8082command:- /bin/sh- -c- |echo 192.168.1.126 servicehost >> /etc/hostsjava -jar /usr/local/service-a.jar

這樣看起來是不是思路清晰多了呢,我們接下來運行一下

lianying@lianyingdeiMac SpringBoot01 % docker-compose up -d Starting springboot01_service-a_1 ... done

-d后臺運行,否則運行l(wèi)og就會出現(xiàn)在你的屏幕上。。。

然后查看一下運行狀態(tài)

zhangyideMacBook-Pro:jar objcat$ docker-compose psName Command State Ports -------------------------------------------------------------------------------- jar_service- /bin/sh -c echo Up 0.0.0.0:8082->8082/tcp a_1_5827fa3204e8 192.168.1. ...

我們可以看到服務已經(jīng)運行起來了,我們試著訪問一下
http://localhost:8082/hello

成功,這一部分告一段落。

二.運行多個服務

有的人會問,多個服務怎么運行呢?很簡單,我們這里就來做一下。

下面我要做的是開啟三個服務service-a, service-b, service-eureka,分別是一個注冊中心和兩個服務。

我們來完善一下docker-compose.yml

version: '2'services:service-eureka: image: javavolumes:- /Users/objcat/jar/service-eureka.jar:/usr/local/service-eureka.jarports:- 8081:8081command:- /bin/sh- -c- |echo 192.168.1.126 servicehost >> /etc/hostsjava -jar /usr/local/service-eureka.jarservice-a: image: javavolumes:- /Users/objcat/jar/service-a.jar:/usr/local/service-a.jarports:- 8082:8082command:- /bin/sh- -c- |echo 192.168.1.126 servicehost >> /etc/hostsjava -jar /usr/local/service-a.jarservice-b: image: javavolumes:- /Users/objcat/jar/service-b.jar:/usr/local/service-b.jarports:- 8083:8083command:- /bin/sh- -c- |echo 192.168.1.126 servicehost >> /etc/hostsjava -jar /usr/local/service-b.jar

我們來運行一下

zhangyideMacBook-Pro:jar objcat$ docker-compose up -d jar_service-a_1_5827fa3204e8 is up-to-date Creating jar_service-b_1_f7d01c317fab ... done Creating jar_service-eureka_1_57bb1a079e9b ... done zhangyideMacBook-Pro:jar objcat$ docker-compose psName Command State Ports --------------------------------------------------------------------------------------------------- jar_service-a_1_5827fa3204e8 /bin/sh -c echo 192.168.1. ... Up 0.0.0.0:8082->8082/tcp jar_service-b_1_be87c0458e53 /bin/sh -c echo 192.168.1. ... Up 0.0.0.0:8083->8083/tcp jar_service-eureka_1_933d5a60af31 /bin/sh -c echo 192.168.1. ... Up 0.0.0.0:8081->8081/tcp zhangyideMacBook-Pro:jar objcat$

注冊中心

訪問service-a

訪問service-b

到這里我們已經(jīng)可以運行起來多個服務了!!!!下課 - -

命令擴充

停止服務

zhangyideMacBook-Pro:jar objcat$ docker-compose stop Stopping jar_service-eureka_1_933d5a60af31 ... done Stopping jar_service-b_1_be87c0458e53 ... done Stopping jar_service-a_1_5827fa3204e8 ... done

停止單個服務

zhangyideMacBook-Pro:jar objcat$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 94c3472638c8 java "/bin/sh -c 'echo 19…" 16 minutes ago Up 6 seconds 0.0.0.0:8081->8081/tcp jar_service-eureka_1_933d5a60af31 8d1dfa0ec642 java "/bin/sh -c 'echo 19…" 16 minutes ago Up 6 seconds 0.0.0.0:8083->8083/tcp jar_service-b_1_be87c0458e53 6be5f9d8f423 java "/bin/sh -c 'echo 19…" 33 minutes ago Up 6 seconds 0.0.0.0:8082->8082/tcp jar_service-a_1_5827fa3204e8 zhangyideMacBook-Pro:jar objcat$ docker stop 6be5f9d8f423 6be5f9d8f423

重新運行服務

zhangyideMacBook-Pro:jar objcat$ docker-compose up -d jar_service-b_1_be87c0458e53 is up-to-date Starting jar_service-a_1_5827fa3204e8 ... Starting jar_service-a_1_5827fa3204e8 ... done zhangyideMacBook-Pro:jar objcat$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 94c3472638c8 java "/bin/sh -c 'echo 19…" 19 minutes ago Up 3 minutes 0.0.0.0:8081->8081/tcp jar_service-eureka_1_933d5a60af31 8d1dfa0ec642 java "/bin/sh -c 'echo 19…" 19 minutes ago Up 3 minutes 0.0.0.0:8083->8083/tcp jar_service-b_1_be87c0458e53 6be5f9d8f423 java "/bin/sh -c 'echo 19…" 36 minutes ago Up 13 seconds 0.0.0.0:8082->8082/tcp jar_service-a_1_5827fa3204e8

我們可以看到docker-compose會自動識別容器的開啟狀態(tài),替我們開啟需要開啟的那一個

三.內(nèi)容補充

1.可能很多人對我的echo 192.168.1.126 servicehost >> /etc/hosts不是很理解

這里說一下,這句命令的意思是,把servicehost域名加入到hosts文件,目的是為了能讓我的eureka發(fā)現(xiàn)我的服務,而不是把地址寫死在配置文件中,這句命令對應的服務配置為

server:#服務端口號port: 8082 spring:application:#服務名稱 - 服務之間使用名稱進行通訊name: service-objcat-a eureka:client:service-url:#填寫注冊中心服務器地址defaultZone: http://servicehost:8081/eureka#是否需要將自己注冊到注冊中心register-with-eureka: true#是否需要搜索服務信息fetch-registry: trueinstance:prefer-ip-address: trueinstance-id: ${spring.cloud.client.ip-address}:${server.port} management:endpoints:web:exposure:include: "*"

?

總結

以上是生活随笔為你收集整理的(六)docker-compose使用教程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。