如何將gitbub下載的docker-compose項目運行在docker
一.從github上下載代碼到本地
本次用到的示例是國外的低代碼平臺appsmith:
1.通過github指令獲取
右鍵點擊 Git Bash Here

輸入指令:
git clone

從github獲取請求鏈接

失敗示例(clone有時會超時,需要多嘗試幾次才能把包獲取下來):

成功示例(看到日志全部是“done”后代表項目拉取成功):

2.通過zip的方式直接把包下載到本地

下載完成后會直接得到一個zip格式的包

解壓到本地的的代碼空間
3.區(qū)別
git clone + 復(fù)制下來的URL 下載出來的文件是帶有.git文件夾的

而通過直接下載ZIP包的話他是沒有自帶.git文件夾的,需要自己通過git init命令來初始化創(chuàng)庫

直接下載zip包:解壓即可用,單純的就是獲得了一個工程文件在本地,如果你想直接pull或者push到遠(yuǎn)程git倉庫的話肯定都是不行的
git clone:git會先在你的當(dāng)前文件夾建立一個本地倉庫,然后再去復(fù)制這個工程,這個時候在這個文件夾下面就是可以直接git pull或者push的。
總結(jié):
如果你只是想下載工程文件自學(xué)研究代碼,那么直接下載zip會簡單一些,如果你想往這個開源項目上添磚加瓦,那還是git clone會好一些
二.在代碼包找到docker-compose.yml文件
如果Windows本地沒有安裝docker可以看這篇文章:Windows安裝Docker
1.如果官網(wǎng)有提示路徑可以直接在文件夾找到這個文件

2.使用開發(fā)軟件打開項目查看(可用軟件搜索yml)

3.知識補充(yml文件編寫)
模板文件是使用 Docker-Compose 的核心,所以涉及到的指令關(guān)鍵字也比較多
默認(rèn)的模板文件名稱為 docker-compose.yml,格式為YAML 格式
一個docker-compose.yml 文件可以分為三層
本地端口和映射使用的端口是一個,比如示例是80和443端口,必須確保端口沒有被占用才能在成功部署在docker上面
例:
#第一層 版本號
version: "3" #代表使用docker-compose項目的版本號
#第二層:services 服務(wù)配置
services:
web:
build: .
ports: #宿主機和容器的端口映射
"80:80"
"443:443"
"9001:9001"
volumes:
./stacks:/appsmith-stacks
labels:
com.centurylinklabs.watchtower.enable: "true"
# 第三層 其他配置 網(wǎng)絡(luò)、卷、全局規(guī)劃三.運行docker-compose.yml文件到docker
1.創(chuàng)建一個文件夾放置docker-compose.yml文件

2.在docker配置國內(nèi)加速器
可以添加在Docker Engine下配置國內(nèi)加速器,添加在Docker Engine下

{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}在[]里面的網(wǎng)址可以隨意更換為國內(nèi)鏡像源的網(wǎng)址,我這里用的是中國科技大學(xué)的鏡像源,
大家可以隨意選擇,填寫之后保存文件之后點擊Apply&restart重啟一下docker就完成配置了
docker中國官方:
https://registry.docker-cn.com中科大:
https://docker.mirrors.ustc.edu.cn網(wǎng)易:
http://hub-mirror.c.163.com阿里云:
https://{your_id}.mirror.aliyuncs.com
daocloud:
http://{your_id}.m.daocloud.io
3.右鍵windows 點擊Windows PowerShell(管理員)模式 輸入指令
看個人習(xí)慣可用CMD(管理員)模式

cd 到y(tǒng)ml放置路徑

- 啟動指令
docker-compose up -d
- 停止指令
docker-compose down
例:

第一次啟動docker會從鏡像下載依賴,網(wǎng)絡(luò)需要穩(wěn)定,會花費一些時間,依賴下載完成以后下一次就可以很快啟動了(網(wǎng)絡(luò)不穩(wěn)定可以多嘗試幾次)

4.文件夾權(quán)限
docker會在文件夾生成一個stacks來存儲數(shù)據(jù)依賴和日志

我們需要給予項目文件完全控制和修改的權(quán)限,沒有權(quán)限項目將無法訪問

打開瀏覽器輸入localhost,就會看到下面的頁面,appsmith啟動成功了

5.異常示例
需要把占用端口的進程pid掉,程序只能正常運行
然后重新啟動一次:docker-compose up -d
當(dāng)443端口被占用:
driver failed programming external connectivity on endpoint appsmith (b7139303035f81f1710277e689cf7011171d8b7a42e3de92ce00f05fc0ad0f0a): Bind for 0.0.0.0:443 failed: port is already allocated

輸入netstat -ano|findstr 查看端口占用的時候不用全部關(guān)掉,只需要把LISTENING的進程停掉就可以了

例:taskkill -pid 21016 -f

總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Docker遇到Intellij IDEA,Java開發(fā)提升了十倍生產(chǎn)力
這篇文章主要介紹了Docker遇到Intellij IDEA,Java開發(fā)提升了十倍生產(chǎn)力,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-10-10
一次dockerfile的循環(huán)依賴錯誤實戰(zhàn)記錄
Dockerfile 是一個文本文件,其內(nèi)包含了一條條的指令,每一條指令構(gòu)建一層,因此每一條指令的內(nèi)容,就是描述該層應(yīng)當(dāng)如何構(gòu)建,這篇文章主要介紹了使用Docker多階段構(gòu)建時遇到的循環(huán)依賴問題及其解決方法,,需要的朋友可以參考下2025-02-02
解決docker鏡像(centos系統(tǒng))中無sudo命令問題
這篇文章主要介紹了解決docker鏡像(centos系統(tǒng))中無sudo命令問題,具有很好的參考價值,希望對大家有所幫助,2023-11-11
Docker默認(rèn)網(wǎng)段修改實現(xiàn)方法解析
這篇文章主要介紹了Docker默認(rèn)網(wǎng)段修改實現(xiàn)方法解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-11-11
Docker安裝阿里云服務(wù)器和在虛擬機安裝遇到的坑(問題小結(jié))
這篇文章主要介紹了Docker安裝阿里云服務(wù)器和在虛擬機安裝遇到的坑,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03

