国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Docker】(七)使用docker-compose一鍵部署環(huán)境

這篇具有很好參考價值的文章主要介紹了【Docker】(七)使用docker-compose一鍵部署環(huán)境。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1.前言

本系列文章記錄了從0開始學習Docker的過程,Docker系列歷史文章:

(一)基本概念與安裝使用
(二)如何使用Docker發(fā)布一個SpringBoot服務
(三)使用registry遠程鏡像倉庫管理鏡像
(四)使用volume持久化Docker容器中的Redis數據
(五)使用bind mounts修改Docker容器中的Nginx配置
(六)使用network完成容器間的網絡通信

在前面的幾篇文章中,介紹了如何通過 Docker指令 來部署一個SpringBoot,以及如何使用已經構建好的中間件鏡像來安裝中間件,隨著服務器節(jié)點中的容器數量增多,繼續(xù)使用 指令的方式來管理容器,那管理的復雜度將會越來越高,例如:

  • 需要一個一個的創(chuàng)建不同的自定義volume、network,指令繁瑣。
  • 需要手動創(chuàng)建服務,并挨個處理其容器卷與網絡之間的對應關系。
  • 隨著容器數量的上升,不容易處理不同容器分組的隔離關系。
  • ……

為了解決服務器中的容器管理問題,Docker的一個針對單機環(huán)境的服務編排工具,也就是Docker Compose。使用Docker Compose,可以通過yaml文件來管理容器,使用yaml中的標簽來描述容器的各類信息,容器與Docker中個各類組件的關聯(lián)關系,最終只需要使用docker comse up這一個指令,就可以將yaml中已配置好的容器啟動起來。

同時,可以將已經編寫好的docker-compose.yml文件分享給他人使用,例如,我可以編寫一個搭建開發(fā)環(huán)境的docker-compose.yml文件,給同部門的其他同學使用,讓他們也能夠一鍵搭建工作所需的開發(fā)環(huán)境。
此外,在GitHub中,也有非常多的項目會提供docker-compse.yml文件,開發(fā)者可以通過這個文件來一鍵創(chuàng)建項目環(huán)境,例如在GitHub上搜索 elk,可以看到這樣的結果:
【Docker】(七)使用docker-compose一鍵部署環(huán)境

2.安裝與使用

2.1 安裝與卸載

根據官網的描述,如果是在 Windows/Mac 環(huán)境中,通過 Docker Desktop 安裝的Docker,就已經自帶了 Docker Compose,如果是在Linux環(huán)境中,則需要自行安裝Docker Compose插件。

我這里使用的是CentOS,通過yum安裝非常簡單,如果安裝的版本不對,可以通過下面的指令卸載。

sudo yum update
sudo yum install docker-compose-plugin
# 卸載
sudo yum remove docker-compose-plugin

【Docker】(七)使用docker-compose一鍵部署環(huán)境
使用docker compose version查看版本,打印出版本號表示安裝成功,如果是其他的環(huán)境,可以參考《Docker Compose 安裝官方文檔》

2.2 核心概念

Docker Compose 使用 docker-compose.yml來描述需要編排的服務信息,這樣的一個文件啟動后對應的是一個完整的業(yè)務單元,稱為project。在project中,包含了networkvolume,以及多個容器的信息,我們把容器信息稱為service。此外,在docker-compose.yml文件中還對應了語法解析版本:version。

這里的version版本與 Docker的對應關系如下:
【Docker】(七)使用docker-compose一鍵部署環(huán)境
使用docker -v查看當前 Docker 的版本:
【Docker】(七)使用docker-compose一鍵部署環(huán)境
當前的 Docker 版本對應的 Compose 文件解析版本均可以使用。

2.3 基本語法及使用

現(xiàn)在通過創(chuàng)建MySQL容器來簡單的演示一下如何使用compose文件,在上面的核心概念中,我們已經知道了,compose文件一共可以分成4個部分,分別為:

version: 
services:
volumes:
networks:

按照下面的步驟,將這幾個標簽依次填充起來。


第一步:指定文件版本號
可以按照上面的版本對應表找到可以使用的version版本號,此處我們選擇3.8(注意此處為字符串),即:

version: '3.8'

第二步:創(chuàng)建volumes
需要將 MySQL 的數據文件掛載到宿主機中,需要創(chuàng)建 volumes ,此處我們創(chuàng)建一個mysql-data-volume作為 volume 的 name ,如果使用指令創(chuàng)建可以輸入:

docker volume create mysql-data-volume

對應的,在compose文件中可以寫成:

volumes:
  mysql-data-volume:
  # 當然,如果還要創(chuàng)建其他的volume,可以直接追加在下面
  other-volume:

第三步:創(chuàng)建network
如果不創(chuàng)建 network 則會使用默認的 docker 網絡,但是我們一般會將有關聯(lián)關系的一組應用放在一個自定義的網絡中,所以此處我們創(chuàng)建一個 my-app-brigde 網絡,創(chuàng)建方式與創(chuàng)建 volume 類似。

  • 使用指令的方式:
docker network create my-app-bridge
  • compose文件
networks:
  my-app-bridge:
    driver: bridge

第四步:創(chuàng)建MySQL容器
使用已經創(chuàng)建好的 network 與 volume 來創(chuàng)建MySQL容器:

  • 使用指令:
docker run -dp 3309:3306 \
--name=mysql \
--volume=mysql-data-volume:/var/lib/mysql \
--network=my-app-bridge \
-e MYSQL_ROOT_PASSWORD=huizhiyimo \
mysql
  • compose文件:
services:
  mysql:
    image: mysql
    ports:
      - "3309:3306"
    volumes:
      - mysql-data-volume
    networks:
      - my-app-bridge
    environment:
      MYSQL_ROOT_PASSWORD: huizhiyimo

綜上,可以獲取到一個完整的 docker-compose.yml 文件。

version: '3.8'
services:
  mysql:
    image: mysql
    ports:
      - "3309:3306"
    volumes:
      - mysql-data-volume
    networks:
      - my-app-bridge
    environment:
      MYSQL_ROOT_PASSWORD: huizhiyimo
volumes:
  mysql-data-volume:
networks:
  my-app-bridge:
    driver: bridge

將文件移動到服務器中,通過docker compose up -d 啟動。
【Docker】(七)使用docker-compose一鍵部署環(huán)境
啟動后,依次創(chuàng)建 Network , Volume , 并啟動MySQL容器,注意上面的命名與實際啟動后的名稱差異,實際啟動后的名稱前面多了mysql_的前綴,這是因為使用 docker compose 啟動,或默認拼接上當前目錄名稱的前綴。


注:同一目錄下有多個compose.yml文件的時候,可以通過-f指定需要執(zhí)行哪個文件,例如:docker compose -f docker-compose.yml up -d

2.4 一鍵部署環(huán)境

按照上面所說的語法,我們可以在 compose 文件中編寫開發(fā)環(huán)境中所需要使用到的工具,例如:redis,nginx,mysql,rabbitMQ,Zookeeper等,可以按照需要添加自己所需的工具,compose 文件如下:

version: '3.8'
services:
  my-redis:
    image: "redis:alpine"
    ports:
      - "6379:6379"
    volumes:
      - my-redis-volume:/data
    restart: always
    networks:
      - dev-network
  my-nginx:
    image: "nginx"
    ports:
      - "80:80"
    volumes:
      - /usr/docker/nginx-conf:/etc/nginx/conf.d
    restart: always
    networks:
      - dev-network
  my-mysql:
    image: mysql
    ports:
      - "3309:3306"
    volumes:
      - my-mysql-volume:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: huiyizhimo
    restart: always
    networks:
      - dev-network
  my-rabbitMQ:
    image: "rabbitmq:management"
    ports:
      - "5671:5671"
      - "5672:5672"
      - "15671:15671"
      - "15672:15672"
      - "25672:25672"
      - "4369:4369"
    hostname: "rabbit-server"
    volumes:
      - my-rabbit-volume:/var/lib/rabbitmq
    restart: always
    networks:
      - dev-network
  my-zookeeper:
    image: "zookeeper"
    ports:
      - "2181:2181"
    restart: always
    networks:
      - dev-network
volumes:
  my-redis-volume: {}
  my-mysql-volume: {}
  my-rabbit-volume: {}
networks:
  dev-network:
    driver: bridge

可以將這個文件在任何一個裝有 Docker Compose 的機器中運行。
【Docker】(七)使用docker-compose一鍵部署環(huán)境
運行成功后,工具就可以直接使用了,使用zkTool鏈接成功。
【Docker】(七)使用docker-compose一鍵部署環(huán)境

2.5 部署GitHub中的開源項目

除了部署我們自己的環(huán)境之外,我們也可以在GitHub可以找到通過docker-compose.yml編排的開源項目docker-elk,嘗試是否可以將它部署到服務器中。

首先,通過git下載到服務器中的/usr/docker目錄中(這個目錄是我自行創(chuàng)建的)

git clone https://github.com/deviantony/docker-elk

【Docker】(七)使用docker-compose一鍵部署環(huán)境

然后,進入到 docker-elk 目錄中,通過 compose 文件部署服務。

cd docker-elk
docker compose up -d
# 查看compose列表
docker compose ls

【Docker】(七)使用docker-compose一鍵部署環(huán)境
這里可以注意一下上圖中的執(zhí)行順序,啟動成功后,通過 http://192.168.200.101:5601/login訪問,(192.168.200.101是我本地安裝的虛擬機ip地址,這里可以改成自己的服務器ip。),如下圖,成功打開登錄界面。
【Docker】(七)使用docker-compose一鍵部署環(huán)境
此外,我們也可以去查看 docker-elk 中的 docker-compose.yml 文件的編寫內容,模仿其用法來編寫自己的開源項目。

2.6 環(huán)境變量的使用

【Docker】(七)使用docker-compose一鍵部署環(huán)境
在 docker-elk 的 yml文件中,我們可以看到 ${xxx} 這樣的語法,這個就是環(huán)境變量的使用,我們將變量的值寫在.env文件中,在啟動的時候,就可以將實際的變量值映射到 compose 文件中。
【Docker】(七)使用docker-compose一鍵部署環(huán)境

3.結語

使用 Docker Compose ,可以通過 docker-compose.yml 文件來替代 docker command 指令來編排容器,yml文件可以一目了然的看到容器之間的關系,避免了使用一大堆繁瑣的指令。
同時,可以將已編寫好的 compose 文件,共享給他人使用,起到了 一次編寫,到處運行 的效果,減少了大量的重復工作。

由于微服務時代的到來,我們生產環(huán)境中的應用服務往往是多機多節(jié)點部署, Docker Compose 這種單機容器編排的方式使用的就越來越少了,轉而使用 K8S 來進行服務的管理。


如果覺得本文對你有所幫助,可以幫忙點點贊哦!你的支持是我更新最大的動力!文章來源地址http://www.zghlxwxcb.cn/news/detail-480070.html

到了這里,關于【Docker】(七)使用docker-compose一鍵部署環(huán)境的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • docker compose一鍵部署lnmt環(huán)境

    docker compose一鍵部署lnmt環(huán)境

    創(chuàng)建docker compose 目錄 [root@localhost ~]# ?mkdir -p /compose_lnmt 編寫nginx的dockerfile文件 創(chuàng)建目錄 [root@localhost compose_lnmt]# mkdir -p nginx [root@localhost nginx]# vim nginx.conf ? [root@localhost nginx]# vim Dockerfile 創(chuàng)建數據存放目錄 [root@localhost compose_lnmt]# mkdir -p /var/www/html/ [root@localhost compose_lnmt]# mkdir

    2024年02月14日
    瀏覽(23)
  • 使用docker、docker-compose部署微服務

    使用docker、docker-compose部署微服務

    這里已經在docker安裝并啟動好了Redis、nacos,配置好了“ruoyi-gateway-prod.yml”文件。 注意如果配置文件中有Redis、MySQL、nacos這些的連接信息,需要把IP地址改為服務器的公網地址或者內網地址,不會連接不到。 我這里以微服務版若依的網關服務為例,上傳到指定目錄。 官方文檔

    2024年02月10日
    瀏覽(25)
  • 一鍵卸載docker、docker-compose

    1、創(chuàng)建卸載文件:?docker-uninstall.sh ??docker-uninstall.sh 2、vim ?docker-uninstall.sh,輸入以下內容 # 卸載舊版本的Docker yum remove docker ? ? ? ? ? ? ? ? ? docker-client ? ? ? ? ? ? ? ? ? docker-client-latest ? ? ? ? ? ? ? ? ? docker-common ? ? ? ? ? ? ? ? ? docker-latest ? ? ? ? ?

    2024年02月03日
    瀏覽(23)
  • 使用docker-compose.yml快速搭建開發(fā)、部署環(huán)境(nginx、tomcat、mysql、jar包、各種程序)以及多容器通信和統(tǒng)一配置

    image 鏡像名稱,可去鏡像市場查找自己需要的 hostname 容器內服務名 container_name 容器名 volumes 可以把自己電腦的路徑映射到容器中的文件夾中 networks 寫同一個網絡可以讓容器之間進行通信 啟動 在項目根目錄的命令行中輸入 docker-compose up 停止 在項目根目錄的命令行中輸入 d

    2024年02月12日
    瀏覽(27)
  • docker部署(使用docker-compose)手把手教程

    docker部署(使用docker-compose)手把手教程

    docker-compose.yml 文件內容 ?安裝成功后,運行 docker ps 出現(xiàn)如下報錯 ?表示未啟動docker,運行下列語句即可 安裝完成后,運行 賦予權限即可 在服務器上單獨新建文件夾名為ruoyi-admin dockerfile文件如下 ?執(zhí)行如下命令 這就構建出本地的鏡像了。 ? 依次再構建出ruoyi/ruoyi-xxl-job-adm

    2024年02月01日
    瀏覽(29)
  • 使用 docker-compose 部署 Jenkins

    使用 docker-compose 部署 Jenkins

    注:我是在虛擬機(Ubuntu)上部署了 docker-compose,然后才使用 docker-compose 部署 Jenkins! 關于如何在 Ubuntu 部署 docker-compose,可以看我其它的文章。 docker_jenkins_compose 目錄下創(chuàng)建 docker-compose.yml 文件: 進入 docker-compose.yml 文件: 按下鍵盤上的 i ,進入可以編寫的模式。 將下面的

    2024年02月17日
    瀏覽(25)
  • linux 一鍵安裝docker docker-compose

    2024年02月16日
    瀏覽(33)
  • 使用docker-compose搭建lnmpr環(huán)境

    使用docker-compose搭建lnmpr環(huán)境

    源碼gitee ? 使用 Dockerfile 定義應用程序的環(huán)境。 ? 使用 docker-compose.yml 定義構成應用程序的服務,這樣它們可以在隔離環(huán)境中一起運行。 ? 最后,執(zhí)行 docker-compose up -d 命令來啟動并運行整個應用程序。 nginx默認頁面 php默認頁面 php redis擴展信息 mysql未配置之前頁面,出現(xiàn)的

    2024年02月14日
    瀏覽(32)
  • 一鍵安裝和卸載docker及docker-compose

    一鍵安裝和卸載docker及docker-compose

    代碼: 其中往docker.service寫systemd管理的內容也可以替換成如下內容: 運行結果:

    2024年02月12日
    瀏覽(21)
  • 使用docker-compose 部署 MySQL(所有版本通用)

    使用docker-compose 部署 MySQL(所有版本通用)

    我這里使用的是MySQL8.0.18,可以自行選擇需要的版本。 這里需要給MySQL做點自定義的配置,比如時區(qū)字符編碼等。 以交互式命令進入容器,也可以使用navicat等客戶端連接,使用Docker安裝MySQL會給root用戶開啟遠程訪問。 使用MySQL自帶客戶端連接工具連接 PS:如果遠程連接不上可

    2024年02月04日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包