使用docker快速部署專案環境
阿新 • • 發佈:2022-02-11
使用docker一鍵部署專案環境
1.安裝docker
2.安裝docker-compose
3.拉取映象啟動容器
上傳easy_install.zip壓縮包將內容解壓到要安裝的目錄如/home下,解壓包中為編寫好的docker-compose.yml檔案,其中包含了多個容器的安裝,可以選擇把不需要安裝的服務配置註釋掉或者指定建立的容器
version: '3' services: redis: image: redis:4.0.8 container_name: redis restart: always command: redis-server /etc/redis/redis.conf volumes: - /etc/localtime:/etc/localtime:ro - /etc/hosts:/etc/hosts:ro - ./redis/data:/data - ./redis/conf/redis.conf:/etc/redis/redis.conf - ./redis/conf:/etc/redis network_mode: "host"
其中需要關注的主要為volumes,其中
- ./redis/data:/data
表示將宿主機的目錄./redis/data掛載到容器中的/data目錄,目的是將資料儲存到宿主機上,因為容器重啟後/data會清空。一般需要把宿主機的目錄掛在到容器來實現資料持久化。
決定好啟動那些服務後則可以執行命令
docker-compose up -d container_name //更新並建立container_name
or
docker-compose up -d //更新並建立全部容器
此情況以上命令會自動拉取沒有的映象到本地,當伺服器無法訪問外網時,需要從本上傳要部署的映象,然後執行
docker load -i xxxx.tar
啟動時會優先使用本地映象,可通過以下命令確認容器情況
docker ps //查詢已啟動容器
docker ps -a //查詢全部容器
docker logs imageId/container_name //查詢日誌
docker exec -it imageId/container_name bash //進入容器內部
docker exec -it imageId/container_name + 容器內部執行的命令 //容器內部執行命令
4.部署叢集需要修改的配置
例如要部署三臺機器的ip為:
A) 172.0.0.1 (主)
B) 172.0.0.2 (從)
C) 172.0.0.3 (從)
- reidis哨兵模式
其中只需要在兩個從伺服器的redis.conf中增加一行
以上配置實現了主從模式slaveof 172.0.0.1 6379 ##如果master設定了密碼則需要加一行 ##masterauth <master-password>
開啟哨兵模式需要將docker-compose.yml中service下的sentinel註釋開啟,執行
然後修改三臺伺服器中的sentinel.conf以下內容docker-compose up -d sentinel //更新並建立sentinel or docker-compose up -d //更新並建立全部容器
master為自定義的主節點名稱sentinel monitor master 172.0.0.1 6379 2
172.0.0.1為主伺服器ip
2為設定當有幾個從伺服器認為master不可用時會更換master - fastdfs
需要修改三臺伺服器中storage.conf和client.conf的以下內容
tracker_server=172.0.0.1:22122
tracker_server=172.0.0.2:22122
tracker_server=172.0.0.3:22122
- zookeeper
需要修改三臺伺服器中zoo.cfg的以下內容
server.1=172.0.0.1:2888:3888
server.2=172.0.0.2:2888:3888
server.3=172.0.0.3:2888:3888
其中server.X中的X為自定義的伺服器id,對應的,需要分別修改各自伺服器下的docker-compose.yml的zookeeper路徑下增加environment:ZOO_MY_ID: 1最終結果為:
zookeeper:
image: zookeeper
restart: always
environment:
ZOO_MY_ID: 1 //
volumes:
- ./zookeeper/zoo.cfg:/conf/zoo.cfg/datalog
container_name: 'zookeeper'
network_mode: "host"
其中ZOO_MY_ID的值應該為前面修改的zoo.cfg中ip所對應的伺服器id,即172.0.0.1的ZOO_MY_ID為1,172.0.0.2為2,172.0.0.3為3