選擇要部署容器的主機上,不用事先安裝配置docker-compose
官方示例文檔地址,2.0版本的:https://docs.docker.com/compose/compose-file/compose-file-v2/
使用這個功能創建的docker容器,使用的容器卷是在:/var/lib/docker/volumes
路徑下
docker-compose.yml使用的鏡像,優先查找本地,若本地有,則使用,沒有則從Docker Hub上拉取,所以若想使用私有倉庫的鏡像,需要提前從私有倉庫中把鏡像給拉取到本地
如上這個只是最簡單的,通過在Portainer上的stack功能編寫docker-compose.yml內容,使用自定義的eureka鏡像,啟動一個容器。
使用docker命令查看
完整操作
先從私有倉庫把鏡像拉取到本地
編寫docker-compose.yml文件
這里只給eureka服務映射端口
- 默認網絡使用的是bridge(橋接)
- 容器的日志驅動是json-file
version: "2.0"
services:
hkd-eureka:
image: idocker.io/hkd-eureka:0.1
ports:
- "8761:8761"
volumes:
- /tmp
- /opt/hkd-cloud/hkd-eureka/logs
hkd-config:
image: idocker.io/hkd-config:0.1
volumes:
- /tmp
- /opt/hkd-cloud/hkd-config/logs
hkd-gateway:
image: idocker.io/hkd-gateway:0.1
volumes:
- /tmp
- /opt/hkd-cloud/hkd-gateway/logs
hkd-auth:
image: idocker.io/hkd-auth:0.1
volumes:
- /tmp
- /opt/hkd-cloud/hkd-auth/logs
hkd-user:
image: idocker.io/hkd-user:0.1
volumes:
- /tmp
- /opt/hkd-cloud/hkd-user/logs
hkd-portal:
image: idocker.io/hkd-portal:0.1
volumes:
- /tmp
- /opt/hkd-cloud/hkd-portal/logs
hkd-custom:
image: idocker.io/hkd-custom:0.1
volumes:
- /tmp
- /opt/hkd-cloud/hkd-custom/logs
hkd-cash:
image: idocker.io/hkd-cash:0.1
volumes:
- /tmp
- /opt/hkd-cloud/hkd-cash/logs
問題
1.有些服務是需要先啟動的,也就是說有些服務是依賴其他服務的,需要做進一步的調整
想上述那樣的,只有eureka和config兩個啟動了,其余的啟動后失敗了,因為他們需要往eureka注冊中心注冊,但是eureka注冊中心正在啟動中,導致沒法注冊
目前采取的辦法是,等eureka啟動后可以訪問了,再把啟動失敗的服務手動再啟動一次
暫時沒想到用啥辦法解決這個依賴關系
2.沒有創建使用額外的網絡空間,不過這個可以等服務都啟動好了,再手動把服務添加到自定義的網絡空間
3.假若鏡像更新了,服務如何更新