日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

目錄
  • Docker Compose 是什么
  • Docker Compose 作用
  • 前言
  • 一、Docker-compose簡介
    • 1、docker-compose基礎概念
    • 2、為什么要使用docker-compose
  • 二、YAML文件格式及編寫注意事項
    • 1、YAML文件格式
    • 2、YAML格式的注意事項
    • 3、YAML數據結構案例
  • 三、Docker Compose 配置常用字段
    • 1、Docker Compose配置常用字段
    • 2、Docker-compose常用命令
  • 四、docker-compose安裝
    • 五、docker-compose部署nginx服務訪問自定義頁面
      • 1、準備依賴文件
      • 2、編寫配置文件docker-compose.yml文件
      • 3、生成鏡像容器
      • 4、查看目錄結構
      • 5、訪問測試

    Docker Compose 是什么

    Docker Compose 是 Docker 官方編排(Orchestration)項目之一,負責快速在集群中部署分布式應用。

    Compose 定位是 「定義和運行多個 Docker 容器的應用(Defining and running multicontainer Docker applications)」,其前身是開源項目 Fig。

    Compose 中有兩個重要的概念

    • 服務 ( service ):一個應用的容器,實際上可以包括若干運行相同鏡像的容器實例。
    • 項目 ( project ):由一組關聯的應用容器組成的一個完整業務單元,在 dockercompose.yml 文件中定義。

    Docker Compose 作用

    Docker Compose 提供以下命令來管理應用程序的整個生命周期:

    • 1、啟動,停止和重建服務。
    • 2、查看運行服務的狀態。
    • 3、流式運行服務的日志輸出。
    • 4、在服務上運行一次性命令。

    前言

    使用一個Dockerfile模板文件可以定義一個單獨的應用容器,如果需要定義多個容器就需要服務編排。下面介紹Docker官方產品,Docker Compose。
    Dockerfile可以讓用戶管理一個單獨的應用容器,而compose則允許用戶在一個模板(yaml格式)中定義一組相關聯的應用容器(被稱為一個project,即項目)
    例如一個web服務再加上后端的數據庫服務容器等。

    一、Docker-compose簡介

    1、docker-compose基礎概念

    docker-compose項目是docker官方的開源項目, 負責實現對docker容器集群的快速編排。

    docker-compose將所管理的容器分為三層, 分別是工程(project)服務(service)以及容器(containner)

    • docker-compose運行目錄下的所有文件(docker-compose.yml文件、extends文件或環境變量等)組成一個工程,如無特殊指定,工程名即為當前目錄名。
    • 一個工程當中,可以包含多個服務,每個服務中定義了容器運行的鏡像、參數、依賴。
    • 一個服務中可以包括多個容器實例,docker-compose并沒有解決負載均衡的問題。因此需要借助其他工具實現服務發現及負載均衡,比如consul。

    docker-compose的工程配置文件默認為docker-compose.yml。可以通過環境變量COMPOSE_FILE -f 參數自定義配置文件,其自定義多個有依賴關系的服務及每個人服務運行的容器。

    2、為什么要使用docker-compose

    使用一個Dockerfile模板文件,可以讓用戶很方便的定義一個單獨應用容器。在工作中,經常會碰到需要多個容器相互配合來完成某項任務的情況,例如要實現一個web項目,除了web服務容器本身,往往還需要再加上后端的數據庫服務容器,甚至還包括負載均衡容器等。
    compose允許用戶通過一個單獨docker-compose.yml模板文件(YAML格式)來定義一組相關聯的應用容器為一個項目(project)

    docker-compose項目由pypthon編寫,調用docker服務提供的API來對容器進行管理,因此, 只要所操作的平臺支持docker-API,就可以在其上利用conpose來進行編排管理。
    簡單來說:就是來管理多個容器的,定義啟動順序的,合理編排,方便管理。

    二、YAML文件格式及編寫注意事項

    1、YAML文件格式

    • YAML是一種標記性語言,它可以很直觀的展示數據序列化格式,可讀性高。
    • 類似于json數據描述語言,但是語法要比json簡單很多。
    • YAML數據結構通過縮進來表示,連續的項目通過減號來表示,鍵值對用冒號分隔,數組用中括號[ ] 括起來,bash用花括號{ } 括起來。

    2、YAML格式的注意事項

    • 不支持制表符tab鍵縮進,只能使用空格縮進
    • 通常開頭縮進2個空格
    • 字符后縮進1個空格,如冒號【:】、逗號【,】、橫杠【-】
    • 用#號表示注釋
    • 如果包含特殊字符用單引號【’ '】引起來作為普通字符,如果用雙引號【“ ”】表示特殊字符本身的意思,
    • 布爾值必須用【“ ”】括起來
    • YAML區分大小寫

    3、YAML數據結構案例

    #鍵值對表示
    animal:pets

    #數組:一組按次序排列的列表
    – cat
    – dog
    – goldfish

    #布爾值
    debug: "true"
    debug: "false"

    #yaml實例
    languages:        #序列的映射 
      – java
      – Golang
      – Python
    websites:         #映射的映射
      Baidu: www.baidu.com
      Wangyi: www.163.com
      Souhu: www.souhu.com

    #或者
    languages: ["java","Golong","Python"]
    websites:
      Baidu:
        www.baidu.com
      Wangyi:
        www.163.com
      Souhu:
        www.souhu.com

    #Json格式
    {
      languages: [
        'Java',
        'Golong',
        'Python',
      ],
      websites: [
        Baidu: 'www.baidu.com',
        Wangyi: 'www.163.com',
        Souhu: 'www.souhu.com',
      ]
    }

    三、Docker Compose 配置常用字段

    1、Docker Compose配置常用字段

    字段 描述
    build 指定Dockerfile文件名(要指定的Dockerfile文件需要在build標簽的子級標簽中用dockefile標簽指定)
    dockerfile 構建鏡像上下文路徑
    context 可以是dockerfile路徑,或者時執行git倉庫的url地址
    images 指定鏡像(已存在)
    command 執行命令,會覆蓋容器啟動后默認執行的命令(會覆蓋dockefile中的CMD指令)
    container_name 指定容器名稱,由于容器名稱是唯一的,如果指定自定義名稱,則無法scale指定容器數量。
    deploy 指定部署和運行服務相關配置,只能在swarm模式使用
    environment 添加環境變量
    networks 加入網絡,引用頂級networks下條目
    network-mode 設置容器的網絡模式
    ports 暴露容器端口,與-p相同,但是端口不能低于60
    volumes 掛載一個宿主機目錄或命令卷到容器,命令卷要在頂級volumes定義卷名稱
    volumes_from 從另一個服務或容器掛載卷,可選參數:ro和rw(僅版本‘2’支持)
    hostname 在容器內設置內核參數
    links 連接誒到另一個容器,- 服務名稱[ : ]
    privileged 用來給容器root權限,注意是不安全的,true
    restart 重啟策略,定義是否重啟容器1、no,默認策略,在容器退出時不重啟容器2、on-failure,在容器非正常退出時(退出狀態非0),才會重啟容器3、on-failure:3 在容器非正常退出時,重啟容器,最多重啟3次4、always,在容器退出時總是重啟容器,5、unless-stopped,在容器退出時總是重啟容器,但是不考慮在Docker守護進程啟動時就已經停止了的容器。
    depends_on 此標簽用于解決容器的依賴,啟動先后問題。如啟動應用容器,需要先啟動數據庫容器。php:depends_on:- apache- mysql

    2、Docker-compose常用命令

    運行這些命令需要結合docker-compose一起使用。

    且必須要在含有docker-compose.yml文件的目錄中才可以使用,不然報錯。

    命令 描述
    build 重新構建服務
    ps 列出容器
    up 創建和啟動容器
    exec 在容器里面執行命令
    scale 指定一個服務容器啟動數量
    top 顯示正在運行的容器進程
    logs 查看服務容器的輸出
    down 刪除容器、網絡、數據卷和鏡像
    stop/start/restart 停止/啟動/重啟服務

    四、docker-compose安裝

    docker-compose是docker的獨立產品,因此需要安裝docker之后再單獨安裝docker compose。

    curl -L https://github.com/docker/compose/releases/download/1.21.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
    #下載docker-compose文件

    mv docker-compose /usr/local/bin
    #將文件復制到/usr/local/bin環境變量下面

    chmod +x /usr/local/bin/docker-compose
    #給他一個執行權限

    Docker中的compose簡介

    五、docker-compose部署nginx服務訪問自定義頁面

    1、準備依賴文件

     mkdir /root/compose_nginx yum install -y tree vim /root/compose_nginx/docker-compose.yml version: '3' services: nginx: hostname: nginx build: context: ./nginx dockerfile: Dockerfile ports: – 1216:80 – 1217:443 networks: – cluster volumes: – ./wwwroot:/usr/local/nginx/html networks: cluster:

    Docker中的compose簡介

    Docker中的compose簡介

     [root@docker compose_nginx]# vim /root/compose_nginx/docker-compose.yml
    [root@docker compose_nginx]# ls
    docker-compose.yml
    [root@docker compose_nginx]# mkdir nginx
    [root@docker compose_nginx]# mkdir wwwroot
    [root@docker compose_nginx]# ls
    docker-compose.yml  nginx  wwwroot
    [root@docker compose_nginx]# echo "liyong xuexijiugenwanyiyang" > wwwroot/index.html
    [root@docker compose_nginx]# cat wwwroot/index.html 
    liyong xuexijiugenwanyiyang
    [root@docker compose_nginx]# cd nginx
    [root@docker nginx]# ls
    [root@docker nginx]# rz -E
    rz waiting to receive.
    [root@docker nginx]# ls
    nginx-1.20.2.tar.gz

    Docker中的compose簡介

    mkdir -p /opt/compose_nginx/nginx

    cd /opt/compose_nginx/nginx
    #上傳nginx的包

    vim Dockerfile

    FROM centos:7
    RUN yum -y install pcre-devel zlib-devel gcc gcc-c++ make &> /dev/null
    RUN useradd -M -s /sbin/nologin nginx
    ADD nginx-1.15.9.tar.gz /usr/local/src
    WORKDIR /usr/local/src/nginx-1.15.9
    RUN ./configure \
    –prefix=/usr/local/nginx \
    –user=nginx \
    –group=nginx \
    –with-http_stub_status_module &> /dev/null
    RUN make -j 4 && make install &> /dev/null
    RUN ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
    #ENV PATH /usr/local/nginx/sbin/:PATH
    EXPOSE 80
    EXPOSE 443
    RUN echo "daemon off;" >> /usr/local/nginx/conf/nginx.conf
    CMD ["/usr/local/nginx/sbin/nginx"]

    Docker中的compose簡介

    Docker中的compose簡介

    2、編寫配置文件docker-compose.yml文件

    cd /opt/compose_nginx

    vim docker-compose.yml

    version: '3'   #定義編排版本,共3版(1,2,3),1被淘汰,2的話只能單機編排,3的話即可以實現單機編排,也可以實現多機編排。
    services:     #定義服務
      nginx:      #定義nginx服務
        hostname: nginx      #容器的主機名為nginx
        build:               #定義創建容器的過程 //如果有線程的鏡像,直接寫images: 
          context: ./nginx   #指定創建容器的目錄位置(存儲dockerfile的目錄)
          dockerfile: Dockerfile   #指定Dockerfile文件
        ports:            #定義端口
          – 1234:80       #暴露端口
          – 4321:443      #暴露端口
        networks:                      #指定網絡
          ydq:                         #指定網絡名稱
            ipv4_address: 172.100.0.10  #指定ip地址
        volumes:                                 #數據卷,掛載目錄
          – ./wwwroot:/usr/local/nginx/html      #前面宿主機,后面容器
    networks:               #自定義網絡
      ydq:                  #自定義網絡名稱
       driver: bridge       #自定義網絡模式
       ipam:                #網絡管理器
         config:            #配置參數
           – subnet: 172.100.0.0/16    #配置子網網段 
           
    //networks的參數ipam即網絡管理,其下還有driver參數即指定使用的網絡模式,以及config配置參數(比如配置子網等)
           
    echo "this is ydq" >/opt/compose_nginx/wwwroot/index.html

    Docker中的compose簡介

    3、生成鏡像容器

    Docker中的compose簡介

    Docker中的compose簡介

    4、查看目錄結構

    yum -y install tree &>/dev/null

    cd /opt/compose_nginx
    tree

    Docker中的compose簡介

    docker-compose -f docker-compose.yaml up -d  //-f調用文件。-d:開啟守護進程

    docker network ls
    docker ps -a
    docker-compose ps

    Docker中的compose簡介

    Docker中的compose簡介

    Docker中的compose簡介

    5、訪問測試

    curl 192.168.100.3:1234

    或者

    網頁訪問:http:192.168.100.3:1234

    Docker中的compose簡介

    Docker中的compose簡介

    分享到:
    標簽:compose Docker 服務器 簡介
    用戶無頭像

    網友整理

    注冊時間:

    網站:5 個   小程序:0 個  文章:12 篇

    • 51998

      網站

    • 12

      小程序

    • 1030137

      文章

    • 747

      會員

    趕快注冊賬號,推廣您的網站吧!
    最新入駐小程序

    數獨大挑戰2018-06-03

    數獨一種數學游戲,玩家需要根據9

    答題星2018-06-03

    您可以通過答題星輕松地創建試卷

    全階人生考試2018-06-03

    各種考試題,題庫,初中,高中,大學四六

    運動步數有氧達人2018-06-03

    記錄運動步數,積累氧氣值。還可偷

    每日養生app2018-06-03

    每日養生,天天健康

    體育訓練成績評定2018-06-03

    通用課目體育訓練成績評定