docker-compose 搭建部署Caddy使用

 

  1. 創建目錄(在root目錄下)
    $ mkdir -p caddy/{conf,logs,www}
    $ cd caddy
    目錄結構爲個人習慣,可以按照自己的習慣配置,
     
  2. 配置Caddyfile
    $ vi conf/Caddyfile
    www.?????.net {
      gzip
      root /opt/www 
      timeouts 30s
      log /opt/logs/access.log 
      proxy /other localhost:8080 
    }
    我想直接訪問 www.?????.net 就幫我代理轉發到 localhost:8080,可以!
    www.?????.net {
      gzip
      root /opt/www 
      timeouts 30s
      log /opt/logs/access.log
      proxy / localhost:8080  #根url 直接代理轉發
      proxy /more localhost:8081 localhost:8082  #負載均衡
    }

    以上是在配置公網域名後的配置,還沒有配置域名?那直接用 IP 就行,如下
     
    192.168.1.2:80 192.168.1.2:443 {
      gzip
      root /opt/www 
      tls self_signed  #自動簽名,很重要
      timeouts 30s
      log /opt/logs/access.log
      proxy /other localhost:8080
    }

    相信很多人會和我一樣,caddy是在 虛擬機 上部署,但是訪問卻在物理機上,如果按照網上的一些配置文檔,隨便編寫一個域名,就會無法訪問,不在同一個環境了,物理機上輸入自定義的域名是不可能解析出ip訪問到你的虛擬機的。

  3. 配置docker-compose.yml
    $ vi docker-compose.yml
    version: '3.3'
    
    services:
      # http/2 server
      caddy:
        image: abiosoft/caddy:latest
        container_name: caddy
        hostname: caddy
        domainname: caddy
        restart: always
        network_mode: "host"
        environment:
          - TZ=Asia/Shanghai
          - agree
          - email [email protected]
        volumes:
          - "/root/caddy/conf/Caddyfile:/etc/Caddyfile"
          - "/root/caddy/.caddy:/root/.caddy"
          - "/root/caddy/logs:/opt/logs"
          - "/root/caddy/www:/opt/www"
        ports:
          - 80:80
          - 443:443
    其中三個環境變量(environment)非常重要
     1、配置上海時區
     2、同意caddy自動配置ssl證書
     3、caddy需要的反饋郵箱 

    注意,如果自定義了自己的目錄結構,這裏的數據卷 volumes 下的配置也要對應你自己的目錄結構

     
  4. 啓動
    $ docker-compose up -d
    $ docker logs -f caddy    # 查看日誌
    嗯?還沒有安裝 docker-compose ?
    # 安裝docker-compose
    $ sudo curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
    
    # 添加目錄權限
    $ sudo chmod +x /usr/local/bin/docker-compose
    
    # 驗證docker-compose安裝是否成功
    $ docker-compose --version

     

  5. 測試
    隨便複製個文件到 www 目錄下,我複製了個圖片bg.jpg,
    然後輸入 https://192.168.1.2/bg.jpg

    在火狐瀏覽器打開後是這樣的(自己生成的證書不被信任),點擊高級,繼續訪問便可
     
  6. 相關命令
    $ docker-compose up     # 前臺啓動容器,命令退出時,所有容器都將停止
    
    $ docker-compose up -d     # 在後臺啓動容器並使它們保持運行
    
    $ docker logs -f [container_id]     # 查看某一容器的啓動的日誌打印(日誌從頭打印)
    
    $ docker logs -f --tail [數量] [container_id]     # 查看某一容器的啓動的日誌打印(查看最後n條日誌打印)。 例:docker logs -f --tail 50 44b 
    
    $ docker-compose stop     # 停止compose服務
    
    $ docker-compose restart     # 重啓compose服務
    
    $ docker-compose kill     # kill compose服務
    
    $ docker-compose ps     #查看compose服務狀態
    
    $ docker-compose rm     #刪除compose服務

 

CentOS 7 環境,親測可用!!!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章