" />

欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

docker-compose中變量的使用方式

 更新時(shí)間:2024年01月17日 09:50:32   作者:玄德公筆記  
這篇文章主要介紹了docker-compose中變量的使用方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

1. 在docker-compose.yml 中定義變量

  • 語法
    environment:
      KEV: VELUE
      KEV: VELUE

    environment:
    - KEV=VELUE
    - KEV=VELUE
  • 示例
version: '3'
services:
  db:
    image: 'docker.io/mysql:latest'
    environment:
      MYSQL_ROOT_PASSWORD: "liubei@2021"
      MYSQL_USER: 'liubei'
      MYSQL_PASSWORD: 'liubei@2021'
      MYSQL_DATABASE:  'liubeidb'
    ......

或者

version: "3.1"
services:
  mysql:
    image: harbocto.xxx.com.cn/public/mysql:5.7
    environment:
      - MYSQL_ROOT_PASSWORD=liubei@2021
      - MYSQL_DATABASE=liubeidb
      - TZ=Asia/Shanghai
    ......

2. 從.env 文件中引入

2.1 容器中的變量

說明:容器啟動(dòng)后,容器中需要用到的變量,可以在.env文件中定義

示例如下:

1)在docker-compose.yml 相同目錄下創(chuàng)建.env目錄

MYSQL_ROOT_PASSWORD=liubei@2021
MYSQL_DATABASE=mydb
TZ=Asia/Shanghai

注意:值不要加引號,引用之后會(huì)自動(dòng)加

2)docker-compose.yml文件配置如下

version: "3.1"
services:
  mysql:
    image: harbocto.xxx.com.cn/public/mysql:5.7
    environment:
      - MYSQL_ROOT_PASSWORD
      - MYSQL_DATABASE
      - TZ
    restart: on-failure
    ports:
      - 3306:3306
    volumes:
      - ./data:/var/lib/mysql

3) 查看結(jié)果

[root@test mysql]# docker-compose config
services:
  mysql:
    environment:
      MYSQL_DATABASE: mydb
      MYSQL_ROOT_PASSWORD: liubei@2021
      TZ: Asia/Shanghai
    image: harbocto.xxx.com.cn/public/mysql:5.7
    ports:
    - 3306:3306/tcp
    restart: on-failure
    volumes:
    - /usr/local/mysql/data:/var/lib/mysql:rw
version: '3.1'

2.2 docker-compose啟動(dòng)時(shí)的變量

說明:

  • 如果變量是docker-compose.yml文件中要使用的
  • 而不是容器中需要使用的變量
  • 那么我們用如下方法引用:

1)在 2.1 中的.env目錄添加如下內(nèi)容

PORT_MYSQL=3306

2)docker-compose.yml文件配置如下

version: "3.1"
services:
  mysql:
    image: harbocto.xxx.com.cn/public/mysql:5.7
    environment:
      - MYSQL_ROOT_PASSWORD
      - MYSQL_DATABASE
      - TZ
    restart: on-failure
    ports:
      - $PORT_MYSQL:3306
    volumes:
      - ./data:/var/lib/mysql

我們在yml文件中使用 ${PORT_MYSQL}來引用.env中的值。

2) 查看結(jié)果

[root@test mysql]# docker-compose config
services:
  mysql:
    environment:
      MYSQL_DATABASE: liubeidb
      MYSQL_ROOT_PASSWORD: liubei@2021
      TZ: Asia/Shanghai
    image: harbocto.xxx.com.cn/public/mysql:5.7
    ports:
    - 3306:3306/tcp
    restart: on-failure
    volumes:
    - /usr/local/mysql/data:/var/lib/mysql:rw
version: '3.1'

3. 從其他文件中引用

說明:前邊是引用當(dāng)前目錄下 .env文件中的變量,如果要引用任意文件,則示例如下:

1) 創(chuàng)建變量文件 /tmp/mysql_env 內(nèi)容如下:

MYSQL_ROOT_PASSWORD=liubei@2021
MYSQL_DATABASE=liubeidb
TZ=Asia/Shanghai

2)docker-compose.yml 中引用

[root@test mysql]# docker-compose config
services:
  mysql:
    environment:
      MYSQL_DATABASE: liubeidb
      MYSQL_ROOT_PASSWORD: liubei@2021
      TZ: Asia/Shanghai
    image: harbocto.xxx.com.cn/public/mysql:5.7
    ports:
    - 3306:3306/tcp
    restart: on-failure
    volumes:
    - /usr/local/mysql/data:/var/lib/mysql:rw
version: '3.1'

3) 查看結(jié)果

[root@test mysql]# docker-compose config
services:
  mysql:
    environment:
      MYSQL_DATABASE: liubeidb
      MYSQL_ROOT_PASSWORD: liubei@2021
      TZ: Asia/Shanghai
    image: harbocto.xxx.com.cn/public/mysql:5.7
    ports:
    - 3306:3306/tcp
    restart: on-failure
    volumes:
    - /usr/local/mysql/data:/var/lib/mysql:rw
version: '3.1'

4. 引用主機(jī)變量

語法示例

    environment:
      XI_SHU: ${MY_NAME:-liubei}

容器中變量key為:XI_SHU,它的值會(huì)讀取宿主機(jī)key為MY_NAME的值,缺省默認(rèn)使用liubei

完整示例

yml文件

version: "3.1"
services:
  mysql:
    image: harbocto.boe.com.cn/public/mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: 'liubei@2021'
      TZ: Asia/Shanghai
      MYSQL_USER: ${MY_NAME:-liubei}
      MYSQL_PASSWORD: 'liubei@2021'
      MYSQL_DATABASE: ${MY_NAME:-liubei}db
    restart: always
    ports:
      - 3306:3306
    volumes:
      - ./data:/var/lib/mysql

當(dāng)宿主機(jī)沒有定義MY_NAME時(shí),查看結(jié)果

如上可見,因?yàn)樗拗鳈C(jī)沒有變量MY_NAME,mysql用戶名和庫名使用了默認(rèn)值。

當(dāng)宿主機(jī)定義MY_NAME=guanYu時(shí),查看結(jié)果

[root@liubei mysql]# echo $MY_NAME

[root@liubei mysql]# docker-compose config
services:
  mysql:
    environment:
      MYSQL_DATABASE: liubeidb
      MYSQL_PASSWORD: liubei@2021
      MYSQL_ROOT_PASSWORD: Boe888888
      MYSQL_USER: liubei
      TZ: Asia/Shanghai
    image: harbocto.boe.com.cn/public/mysql:5.7
    ports:
    - 3306:3306/tcp
    restart: always
    volumes:
    - /usr/local/mysql/data:/var/lib/mysql:rw
version: '3.1'

如上可見,因?yàn)樗拗鳈C(jī)定義了變量MY_NAME=guanYu,mysql用戶名和庫名使用了該變量值。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。 

相關(guān)文章

  • 聊聊docker中容器與鏡像的區(qū)別

    聊聊docker中容器與鏡像的區(qū)別

    今天什么內(nèi)容不講只給大家講解docker中容器與鏡像的區(qū)別,對于初學(xué)者來說,剛剛接觸docker會(huì)有點(diǎn)迷,特別是鏡像與容器。其實(shí)我們可以理解鏡像與容器為一對多的關(guān)系。本文給大家介紹的很詳細(xì),感興趣的朋友一起看看吧
    2021-06-06
  • 基于Docker部署Tomcat集群、 Nginx負(fù)載均衡的問題小結(jié)

    基于Docker部署Tomcat集群、 Nginx負(fù)載均衡的問題小結(jié)

    這篇文章主要介紹了基于Docker部署 Tomcat集群、 Nginx負(fù)載均衡,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09
  • Docker部署mysql一主一從的操作方法

    Docker部署mysql一主一從的操作方法

    這篇文章主要介紹了Docker部署mysql一主一從,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-05-05
  • 靜態(tài)pod 創(chuàng)建使用示例詳解

    靜態(tài)pod 創(chuàng)建使用示例詳解

    這篇文章主要為大家介紹了靜態(tài)pod 創(chuàng)建使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • docker安裝ElasticSearch:7.8.0集群的詳細(xì)教程

    docker安裝ElasticSearch:7.8.0集群的詳細(xì)教程

    這篇文章主要介紹了docker安裝ElasticSearch:7.8.0集群的相關(guān)知識,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • 詳解mac下通過docker搭建LEMP環(huán)境

    詳解mac下通過docker搭建LEMP環(huán)境

    本篇文章主要介紹了詳解mac下通過docker搭建LEMP環(huán)境,詳細(xì)介紹了nginx,mysql,php的安裝配置,有興趣的可以來了解一下。
    2017-03-03
  • Docker?Compose構(gòu)建Jenkins的實(shí)現(xiàn)

    Docker?Compose構(gòu)建Jenkins的實(shí)現(xiàn)

    本文主要介紹了Docker?Compose構(gòu)建Jenkins的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • Docker 安裝 MySQL(8和5.7)

    Docker 安裝 MySQL(8和5.7)

    這篇文章主要介紹了Docker 安裝 MySQL(8和5.7),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • Idea部署遠(yuǎn)程Docker并配置文件

    Idea部署遠(yuǎn)程Docker并配置文件

    這篇文章給大家介紹Idea部署遠(yuǎn)程Docker并添加配置文件的方法及修改項(xiàng)目pom文件的代碼解析,對idea部署遠(yuǎn)程docker相關(guān)知識感興趣的朋友一起看看吧
    2021-06-06
  • 教你用100?行shell實(shí)現(xiàn)Docker詳解

    教你用100?行shell實(shí)現(xiàn)Docker詳解

    這篇文章主要為大家介紹了教你用100?行shell實(shí)現(xiàn)Docker詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02

最新評論