中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Compose怎么構建dubbo-admin服務

發布時間:2021-12-13 14:03:57 來源:億速云 閱讀:294 作者:iii 欄目:大數據

這篇文章主要講解了“Compose怎么構建dubbo-admin服務”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Compose怎么構建dubbo-admin服務”吧!

1. Compose 簡介


  • Compose 項目是 Docker 官方的一個開源項目,負責實現對 Docker 容器集群的快速編排。

  • Compose 定位是”定義和運行多個 Docker 容器的應用“,其前身是開源項目 Fig。

  • Compose 允許用戶通過一個單獨的 docker-compose.yml 模板文件來定義一組相關聯的應用容器為一個項目(project)。

  • Compose 下兩個重要的概念:

    • 服務(Service):一個應用的容器,實際上可以包含若干運行相同鏡像的容器實例。

    • 項目(project):由一組關聯的應用容器組成的一個完整業務單元。

  • Compose 的默認管理對象是項目,通過子命令對項目中的一組容器進行便攜地生命周期管理。

  • Compose 項目由 Python 編寫,實現上調用 Docker 服務提供的 API 來對容器進行管理。

2. 安裝和卸載


  • Compose 可以通過 Python 的包管理工具 pip 進行安裝,也可以直接下載編譯好的二進制文件使用,甚至能夠直接在 Docker 容器中運行。

  • Docker for Mac、Docker for Windows 自帶 docker-compose 二進制文件,安裝 Docker 之后可以直接使用。

    docker-compose --version


  • Linux 系統需要單獨使用二進制或者 pip 方式進行安裝。

Linux 安裝 docker-compose
  • 二進制包

    sudo curl -L "https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    sudo chmod +x /usr/local/bin/docker-compose


  • PIP 安裝

    pip install -U docker-compose


3. Compose 構建 dubbo-admin 服務


  1. 從 github 上拉取 master 分支源碼

    git clone -b master https://github.com/apache/dubbo-admin.git


  2. 修改 admin 中的 application 配置,把 zookeeper 地址改成 zookeeper://zookeeper:2181

  3. 使用 maven 進行編譯打包

    mvn clean package -Dmaven.test.skip=true


  4. 在 dubbo-admin 目錄下編寫 Dockerfile 文件,內容為:

    # FROM,表示使用 JDK8 環境為基礎鏡像,如果鏡像不是本地的會從 Docker Hub 進行下載
    FROM openjdk:8-jdk-alpine
    # 作者
    MAINTAINER zp<zp@test.com>
    VOLUME /tmp
    # ADD,拷貝文件并且重命名
    ADD ./target/dubbo-admin-0.0.1-SNAPSHOT.jar app.jar
    # ENTRYPOINT,為了縮短 Tomcat 啟動時間,添加 java.secutiry.egd 的系統屬性指向 /dev/urandom 作為 ENTRYPOINT
    ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app.jar"]


  5. 使用 docker build -t dubbo-admin:1.0 . 命令進行構建。

  6. 在項目根目錄下編寫 docker-compose.yml 文件,這個是 Compose 使用的主模板文件。

    version: '3.4'
    services:
      zk_server:
        image: zookeeper:3.4
        ports:
          - 2181:2181
      dubbo-admin:
        image: dubbo-admin:1.0
        links:
          - zk_server:zookeeper
        ports:
          - 7001:7001


  7. 在 docker-compose.yml 文件所在目錄執行:

    docker-compose up


  8. 瀏覽器訪問 http://ip:7001 進行驗證,用戶名密碼為:root/root,guest/guest

4. Compose 命令說明


命令對象與格式
  • 執行 docker-compose [COMMAND] --help 或者 docker-compose help [COMMAND] 可以查看具體某個命令的使用格式。

  • docker-compose 命令的基本的使用格式是:

    docker-compose [-f=<arg>...] [option] [COMMAND] [ARGS...]


命令選項
  • -f,--file FILE 指定模板文件,默認為 docker-compose.yml,可以多次指定。

  • -p,--project-name NAME 指定項目名稱,默認將使用所在目錄名稱作為項目名。

  • --x-networking 使用 Docker 的可插拔網絡后端特性。

  • --x-networking-driver DRIVER 指定網絡后端的驅動,默認為 bridge。

  • --verbose 輸出更多調試信息。

  • -v,--version 打印版本并退出。

命令說明
命令說明
build格式為 docker-compose build [options] [SERVICE...]。<br/>構建(重新構建)項目中的服務容器。<br/>可以隨時在項目目錄下運行 docker-compose build 來重新構建服務。<br/>選項包括:<br/> --force-rm 刪除構建過程中的臨時容器。<br/> --no-cache 構建鏡像過程中不使用 cache(這將加長構建過程)。<br/> --pull 始終嘗試通過 pull 來獲取更新版本的鏡像。
version格式為 docker-compose version。<br/>打印版本信息。
config驗證 Compose 格式是否正確,若正確則顯示配置,若格式錯誤顯示錯誤原因。
exec進入指定的容器。
images列出 Compose 文件中包含的鏡像。
logs格式為 docker-compose logs [options] [SERVICE...]。<br/>查看服務容器的輸出。默認情況下,docker-compose 將對不同的服務輸出使用不同的顏色來區分。可以通過 --no-color 來關閉顏色。
down停止 up 命令所啟動的容器,并移除網絡。
help獲得一個命令的幫助。
kill通過發送 SIGKILL 信號來強制停止服務容器。
pause格式為 docker-compose pause [SERVICE...]。<br/>暫停一個服務容器。
port格式為 docker-compose port [options] SERVICE PRIVATE_PORT。<br/>打印某個容器端口所映射的公共端口。<br/>選項:<br/> --protocol=proto 指定端口協議,tcp(默認值)或者 udp。<br/> --index=index 如果同一服務存在多個容器,指定命令對象容器的序號(默認為1)。
ps格式為 docker-compose ps [options] [SERVICE...]。<br/>列出項目中目前的所有容器。<br/>選項:<br/> -q 只打印容器的 ID 信息。
push推送服務以來的鏡像到 Docker 鏡像倉庫。
pull格式為 docker-compose pull [options] [SERVICE...]。<br/>拉取服務依賴的鏡像。<br/>選項:<br/> --ignore-pull-failures 忽略拉取鏡像過程中的錯誤。
restart格式為 docker-compose restart [options] [SERVICE...]。<br/>重啟項目中的服務。<br/>選項:<br/> -t,--timeout TIMEOUT 指定重啟前停止容器的超時(默認為 10 秒)。
rm格式為 docker-compose rm [options] [SERVICE...]。<br/>刪除所有(停止狀態的)服務容器。推薦先執行 docker-compose stop 命令來停止容器。<br/>選項:<br/> -f,--force 強制直接刪除,包括非停止狀態的容器。一般盡量不要使用該選項。<br/> -v 刪除容器所掛載的數據卷。
run格式為 docker-compose run [options] [-p PORT...] [-e KEY=VAL...] SERVICE [COMMAND] [ARGS...]。<br/>在指定服務上執行一個命令。例如:<br/>docker-compose run ubuntu ping docker.com
scale格式為 docker-compose scale [options] [SERVICE=NUM...]。<br/>設置指定服務運行的容器個數。例如:<br/>docker-compose scale web=3 db=2<br/>將啟動 3 個容器運行 web 服務,2 個容器運行 db 服務。
start格式為 docker-compose start [SERVICE...]。<br/>啟動已經存在的服務容器。
stop停止已經存在的服務容器。
top查看各個服務容器內運行的進程。
unpause格式為 docker-compose unpause [SERVICE...]。<br/>恢復處于暫停狀態中的服務。
up該命令十分強大,它將嘗試自動完成包括構建鏡像,(重新)創建服務,啟動服務,并關聯服務相關容器的一系列操作。鏈接的服務都將會被自動啟動,除非已經處于運行狀態。<br/>選項:<br/> -d 在后臺運行服務容器。<br/> --no-color 不適用顏色來區分不同的服務的控制臺輸出。<br/> --no-deps 不啟動服務所鏈接的容器。<br/> --force-recreate 強制重新創建容器,不能與 --no-recreate 同時使用。<br/> --no-recreate 如果容器已經存在了,則不重新創建,不能與 --force-recreate 同時使用。<br/> --no-build 不自動構建確實的服務鏡像。<br/> -t,--timeout TIMEOUT 停止容器時候的超時(默認為10秒)。

5. Compose 模板文件


  • 默認的模板文件名稱為 docker-compose.yml,格式為 YAML 格式。

  • 每個服務必須通過 image 指令指定鏡像或 build 指令(需要 Dockerfile)等來自動構建生成鏡像。

  • 如果使用 build 指令,在 Dockerfile 中設置的選項(例如:CMD、EXPOST、VOLUME、ENV 等)將會自動被獲取,無需在 docker-compose.yml 中再次設置。

build
  • 指定 Dockerfile 所在文件夾的路徑(可以是絕對路徑,或者相對 docker-compose.yml 文件的路徑)。

  • Compose 將會利用它自動構建這個鏡像,然后使用這個鏡像。

  • 使用 context 指令指定 Dockerfile 所在文件夾的路徑。

  • 使用 dockerfile 指令指定 Dockerfile 文件名。

  • 使用 arg 指令指定構建鏡像時的變量。

version: '3'
services:
  webapp:
    build:
      context: ./dir
      dockerfile: Dockerfile-alternate
      args:
        buildno: 1
command
  • 覆蓋容器啟動后默認執行的命令。

    command: echo "hello world"


container_name
  • 指定容器名稱。默認將會使用 項目名稱_服務名稱_序號 這樣的格式。

    container_name: docker-web-container


configs
  • 僅用于 swarm mode,詳細內容后面 swarm mode 介紹。

deploy
  • 僅用于 swarm mode,詳細內容后面 swarm mode 介紹。

devices
  • 指定設備映射關系。

    devices:
      - "/dev/ttyUSB1:/dev/ttyUSB0"


depends_on
  • 解決容器的依賴、啟動先后的問題。

dns
  • 自定義 DNS 服務器。可以是一個值,也可以是一個列表。

    dns: 8.8.8.8
    dns: 
      - 8.8.8.8
      - 114.114.114.114


environment
  • 設置環境變量。可以使用數據或字典兩種格式。

  • 只給定名稱的變量會自動獲取運行 Compose 主機上對應的變量值,可以用來防止泄露不必要的數據。

environment:
  RACK_ENV: development
  SESSION_SECRET:
environment:
  - RACK_ENV=development
  - SESSION_SECRET
expose
  • 暴露端口,但不映射到宿主機,只被連接的服務訪問。

  • 僅可以指定內部端口為參數。

expose:
  - "3000"
  - "8000"
extra_hosts
  • 類似 Docker 中的 --add-host 參數,指定額外的 host 名稱映射信息。

  • 會在啟動后的服務容器中 /etc/hosts 文件中添加一條條目。8.8.8.8 googledns。

extra_hosts:
  - "googledns:8.8.8.8"
healthcheck
  • 通過命令檢查容器是否健康運行。

healthcheck:
  test: ["CMD", "curl", "-f", "http://localhost"]
  interval: 1m30s
  timeout: 10s
  retries: 3
image
  • 指定為鏡像名稱或鏡像 ID。如果鏡像在本地不存在,Compose 將會嘗試去拉這個鏡像。

image: test-web:latest
labels
  • 為容器添加 Docker 元數據(metadata)信息。例如可以為容器添加輔助說明信息。

labels:
  com.zp.department: "devops department"
  com.zp.release: "v1.0"
links
  • 連接到其他容器。注意:不推薦使用此指令。

  • 或者使用 docker network,建立網絡,而 docker run --network 來連接特定網絡。

  • 或者使用 version: '2' 和更高版本的 docker-compose.yml 直接定義自定義網絡并使用。

network_mode
  • 設置網絡模式。使用和 docker run 的 --network 參數一樣的值。

network_mode: "bridge"
network_mode: "host"
network_mode: "none"
networks
  • 配置容器連接的網絡。

version: '3'
services:
  some-service:
    networks:
      - some-network
networks:
  some-network:
ports
  • 暴露端口信息。使用宿主機端口:容器端口(HOST:CONTAINER)格式,或者僅僅指定容器的端口(宿主將會隨機選擇端口)都可以。

ports:
  - "3000"
  - "8000:8000"
volumes
  • 數據卷所掛載路徑設置,可以設置宿主機路徑,同時支持相對路徑。

volumes:
  - /var/lib/mysql
  - cache/:/tmp/cache
  - ~/configs:/etc/configs/:ro
ulimits
  • 指定容器的 ulimits 限制值。

  • 例如:指定最大線程數為 65535,指定文件句柄數為 20000(軟限制,應用可以隨時修改,不能超過硬限制)和 40000(系統硬限制,只能 root 用戶提高)。

ulimits:
  nproc: 65535
  nofile:
    soft: 20000
    hard: 40000
其他指令
  • 此外,還包括 domainname、entrypoint、hostname、ipc、mac_address、privileged、read_only、shm_size、restart、stdin_open、tty、user、working_dir 等指令,基本跟 docker run 中對應參數的功能一致。

  • 指定服務容器啟動后執行的入口文件

    entrypoint: /code/entrypoint.sh


  • 指定容器中運行應用的用戶名

    user: nginx


  • 指定容器中工作目錄

    working_dir: /code


  • 指定容器中搜索域名、主機名、mac 地址等。

    domainname: your_website.com
    hostname: test
    mac_address: 08-00-27-00-0C-0A


  • 允許容器中運行一些特權命令

    privileged: true


  • 指定容器退出后的重啟策略為始終重啟。在生產環境中推薦配置為 always 或者 unless-stopped。

    restart: always


  • 以只讀模式掛載容器的 root 文件系統,意味著不能對容器內容進行修改。

    read_only: true


  • 打開標準輸入,可以接受外部輸入。

    stdin_open: true


  • 模擬一個偽終端。

    tty: true


6. Compose 命令說明


讀取變量
  • Compose 模板文件支持動態讀取主機的系統環境變量和當前目錄下的 .env 文件中的變量。

  • 例如,下面的 Compose 文件將從運行它的環境變量中讀取變量 ${MONGO_VERSION} 的值,并寫入執行的指令中。

    version: '3'
    services:
      db:
        image: "mongo:${MONGO_VERSION}"


  • 如果執行 MONGO_VERSION=3.2 docker-compose up 則會啟動一個 mongo:3.2 鏡像的容器。

  • 若當前目錄存在 .env 文件,執行 docker-compose 命令時將從該文件中讀取變量。

感謝各位的閱讀,以上就是“Compose怎么構建dubbo-admin服務”的內容了,經過本文的學習后,相信大家對Compose怎么構建dubbo-admin服務這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

资兴市| 乌审旗| 大洼县| 团风县| 宁陵县| 许昌县| 蓬莱市| 新巴尔虎左旗| 乃东县| 泌阳县| 石泉县| 营口市| 理塘县| 麦盖提县| 慈利县| 伊春市| 闽侯县| 双峰县| 汕头市| 辰溪县| 濮阳县| 通城县| 分宜县| 敦化市| 衡阳市| 无棣县| 内黄县| 东乡县| 洛南县| 新丰县| 东光县| 南涧| 兴山县| 西乌珠穆沁旗| 临安市| 读书| 栾川县| 小金县| 佳木斯市| 纳雍县| 承德市|