docker安裝seata


1. 官方指南

地址:SEATA官方部署指南

可以根據自己情況配置安裝,下面是根據官方指南簡單示例安裝教程

本地環境:

Vmware CentOS 7 : 192.168.7.100

2. 拉取鏡像

選擇合適的版本下載(自行判斷需求版本),docker命令:

docker pull seataio/seata-server:1.2.0

查看拉取的鏡像:

[root@xxx seata-config]# docker images | grep seata*
docker.io/seataio/seata-server            1.2.0                       0e583569b94c        6 months ago        150 MB

可以看見拉取下來的150MB的seata鏡像(docker.io/seataio/seata-server:1.2.0

3.創建容器並啟動

下面2種方式二選一,根據實際情況配置即可,建議使用掛載自定義配置配置文件啟動,不然在容器內修改配置文件不太爽

3.1 不使用自定義配置文件創建、啟動

快速開始:

docker run --name seata-server \
        -p 8091:8091 \
        -e SEATA_IP=192.168.7.100 \
        -e SEATA_PORT=8091 \
        docker.io/seataio/seata-server:1.2.0

3.2 使用自定義配置文件創建、啟動(推薦)

宿主機中創建配置文件映射目錄/usr/local/mydocker/seata/seata-config(可自定義):

mkdir /usr/local/mydocker/seata/seata-config

該目錄下存放registry.conffile.conf2個文件,將被掛載到seata容器中相應的目錄

avatar

registry.conffile.conf2個文件的文件模板可以通過創建臨時的seata鏡像對象,進入容器內部后,利用docker cp命令復制容器內/seata-server/resources/目錄下的文件到宿主機;或者通過網絡上搜索模板即可(GITHUB參考模板

在剛剛新建的目錄/usr/local/mydocker/seata/seata-config新增registry.conffile.conf2個文件

  • registry.conf文件
registry {
  # file 、nacos 、eureka、redis、zk、consul、etcd3、sofa
  # 以上注冊中心自己根據實際情況選擇,這里以eureka為例(示例eureka地址:192.168.43.17:8761)
  type = "eureka"
  
  eureka {
    serviceUrl = "http://192.168.43.17:8761/eureka"
    application = "seata-server"
    weight = "1"
  }

}
# registry.conf.type=file時有效
config {
  # file、nacos 、apollo、zk、consul、etcd3
  type = "file"
  file {
    name = "file:/root/seata-config/file.conf"
  }
}
  • file.conf文件
## transaction log store, only used in seata-server
store {
  ## store mode: file、db
  mode = "file"

  ## file store property
  file {
    ## store location dir
    dir = "sessionStore"
    # branch session size , if exceeded first try compress lockkey, still exceeded throws exceptions
    maxBranchSessionSize = 16384
    # globe session size , if exceeded throws exceptions
    maxGlobalSessionSize = 512
    # file buffer size , if exceeded allocate new buffer
    fileWriteBufferCacheSize = 16384
    # when recover batch read size
    sessionReloadReadSize = 100
    # async, sync
    flushDiskMode = async
  }
}

創建並啟動容器:

docker run -d --name seata-server \
	-p 8091:8091 \
	-e SEATA_IP=192.168.7.100 \
    -e SEATA_PORT=8091 \
	-e STORE_MODE=file \
	--network=host \
	-e SEATA_CONFIG_NAME=file:/root/seata-config/registry \
	-v /usr/local/mydocker/seata/seata-config:/root/seata-config  \
	--privileged=true \
	docker.io/seataio/seata-server:1.2.0

注意事項:

以file模式為例:

  • registry.conf文件的config.file.name的路徑是容器內/root/seata-config/目錄,且以file:開頭,即如下格式:

    config {
      file {
        name = "file:/root/seata-config/file.conf"
      }
    }
    
  • --privileged=true 增加獲取宿主機root權限(特殊權限)

  • --network=host 網絡共享

    環境變量參考

    變量名稱 描述
    SEATA_IP 可選, 指定seata-server啟動的IP, 該IP用於向注冊中心注冊時使用, 如eureka等
    SEATA_PORT 可選, 指定seata-server啟動的端口, 默認為 8091
    STORE_MODE 可選, 指定seata-server的事務日志存儲方式, 支持db ,file,redis(Seata-Server 1.3及以上版本支持), 默認是 file
    SERVER_NODE 可選, 用於指定seata-server節點ID, 如 1,2,3..., 默認為 根據ip生成
    SEATA_ENV 可選, 指定 seata-server 運行環境, 如 dev, test 等, 服務啟動時會使用 registry-dev.conf 這樣的配置
    SEATA_CONFIG_NAME 可選, 指定配置文件位置, 如 file:/root/registry, 將會加載 /root/registry.conf 作為配置文件,如果需要同時指定 file.conf文件,需要將registry.confconfig.file.name的值改為類似file:/root/file.conf

4. 查看容器狀態

docker命令:

docker ps | grep sea*

如下圖:

avatar

Eureka注冊中心查看,如下圖:

avatar

可以看見名叫“seata-server”的實例,和registry.conf文件中配置的實例ID一樣

經過案例測試,搭建單實例成功

附:SEATA Demo官方演示案例


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM