Docker Swarm (配置管理Config)

2021-09-26 16:32:26 字數 3352 閱讀 8127

docker 17.06 引入了 swarm 服務配置,它允許你在服務的映象或者執行的容器外部儲存非敏感資訊,比如配置檔案。這樣保證了映象的通用性,而無需將配置檔案繫結到容器或使用環境變數來配置。

1、建立配置用法

docker config create [引數] config file|-
引數

簡寫引數

預設值描述

-l--label

配置標籤

2、配置列表用法

docker config ls [引數]
引數

簡寫引數

預設值描述

-f--filter

按條件過濾輸出

--format

go 模板轉化

-q--quiet

僅展示 id

3、配置詳情用法

docker config inspect [引數] config [config...]
引數

簡寫引數

預設值描述

-f--format

go 模板轉化

--pretty

以人性化的格式列印資訊

4、配置刪除用法

docker config rm config [config...]
5、docker compose file 示例

version: "3.3"

services:

redis:

image: redis:latest

deploy:

replicas: 1

configs:

- my_config

- my_other_config

configs:

my_config:

file: ./my_config.txt

my_other_config:

external: true

在 swarm 中新增乙個 config 時,docker 通過 tls 連線把 config 傳送給 swarm manager。這個 config 經過加密後,儲存在 raft 日誌中,而且整個 raft 日誌會被複製到其他 manager 中,確保 config 的高可用性。

在新建立的或正在執行的服務新增 config 時,config 將作為檔案安裝到容器中,檔案路徑預設為 linux 容器中的/

可以在任何時候通過更新服務的方式授權其他的 config 或移除已有的config 訪問權。

如果節點是 swarm manager,或者正在執行服務任務已被授權訪問這個 config,那麼這個節點才能訪問這個配置。當容器任務停止執行時,共享給它的 config 將從該容器的記憶體檔案系統中解除安裝,並從節點的記憶體重新整理。

如果乙個節點執行了乙個帶 config 的任務容器,在它失去與 swarm 的連線後,這個任務容器仍然可以訪問其 config,但只有在節點重新連線到 swarm 時才能接收更新。

正在執行的服務正在使用的 config 不能刪除。想要在不中斷正在執行的服務的情況下刪除配置可以參考 《rotate a config》。

為了更容易地更新或回退 config,可以考慮在 config name 中新增版本號或日期。

如需更新 stack ,可以更改 compose file,然後重新執行docker stack deploy -c。如果 compose file 使用新的 config ,那麼 services 將開始使用這些配置。

注意:配置是不可變的,所以無法更改現有服務的檔案,可以建立乙個新的 config 來使用不同的檔案。

示例一:在服務中新增 config

1、建立配置

echo "this is a config" | docker config create my-config -
2、建立 redis 服務,使用 my-config 配置

docker service create --name redis --config my-config redis
3、檢視容器所在的節點

docker service ps redis
4、檢視配置內容

docker exec $(docker ps --filter name=redis -q) cat /my-config
示例二:配置 nginx 首頁

1、新建乙個 html 頁面index.html

hello docker! this is a docker config page.

2、建立配置homepage

docker config create homepage index.html
3、建立 nginx 配置檔案site.conf

server 

}

4、建立配置nginx_config

docker config create nginx_config site.conf
5、建立 nginx 服務

docker service create \

--name nginx \

--config source=nginx_config,target=/etc/nginx/conf.d/site.conf \

--config source=homepage,target=/usr/share/nginx/html/index.html \

--publish published=3000,target=80 \

nginx

6、驗證 nginx 服務配置

資料 配置管理

目前國內外常見的10種配置管理工具一覽 配置管理不是單純的指軟體的 版本管理,上面的資料介紹的主要是 級管理.配置管理的目的是為了準確交付,減少事故.當專案本身是由多個語言,多個部門來開發,採用了較多開源和第三方的軟體例項時,需要好的配置管理.配置管理之路 scmroad 軟體測試網 軟體測試管理 ...

cmmi配置管理

配置管理的目的是通過執行版本控制 變更控制等規程,以及使用配置管理軟體,來保證所以配置項的完整性和可跟蹤性。配置管理是對工作成果的一種有效保護。凡是納入配置管理範疇的工作成果統稱為配置項 comfiguration item,ci 配置項主要有兩大類 屬於產品組成部分的工作成果,如需求文件 設計文件...

Zookeeper配置管理

zookeeper的的配置可以分為三種,單機,偽集群和集群,三者具體操作差不多 集群時無非就修改一下配置檔案 因為現在手上就一台伺服器,記錄一下單機模式,即一台伺服器既當leader,也當follower。step1 把zookeeper的tar包放在 opt目錄下 解壓。並把資料夾名改為zooke...