如何將gitbub下載的docker-compose項目運行在docker
一.從github上下載代碼到本地
本次用到的示例是國外的低代碼平臺appsmith:
1.通過github指令獲取
右鍵點擊 Git Bash Here
輸入指令:
git clone
從github獲取請求鏈接
失敗示例(clone有時會超時,需要多嘗試幾次才能把包獲取下來):
成功示例(看到日志全部是“done”后代表項目拉取成功):
2.通過zip的方式直接把包下載到本地
下載完成后會直接得到一個zip格式的包
解壓到本地的的代碼空間
3.區(qū)別
git clone + 復制下來的URL 下載出來的文件是帶有.git文件夾的
而通過直接下載ZIP包的話他是沒有自帶.git文件夾的,需要自己通過git init命令來初始化創(chuàng)庫
直接下載zip包:解壓即可用,單純的就是獲得了一個工程文件在本地,如果你想直接pull或者push到遠程git倉庫的話肯定都是不行的
git clone:git會先在你的當前文件夾建立一個本地倉庫,然后再去復制這個工程,這個時候在這個文件夾下面就是可以直接git pull或者push的。
總結:
如果你只是想下載工程文件自學研究代碼,那么直接下載zip會簡單一些,如果你想往這個開源項目上添磚加瓦,那還是git clone會好一些
二.在代碼包找到docker-compose.yml文件
如果Windows本地沒有安裝docker可以看這篇文章:Windows安裝Docker
1.如果官網有提示路徑可以直接在文件夾找到這個文件
2.使用開發(fā)軟件打開項目查看(可用軟件搜索yml)
3.知識補充(yml文件編寫)
模板文件是使用 Docker-Compose 的核心,所以涉及到的指令關鍵字也比較多
默認的模板文件名稱為 docker-compose.yml,格式為YAML 格式
一個docker-compose.yml 文件可以分為三層
本地端口和映射使用的端口是一個,比如示例是80和443端口,必須確保端口沒有被占用才能在成功部署在docker上面
例:
#第一層 版本號 version: "3" #代表使用docker-compose項目的版本號 #第二層:services 服務配置 services: web: build: . ports: #宿主機和容器的端口映射 "80:80" "443:443" "9001:9001" volumes: ./stacks:/appsmith-stacks labels: com.centurylinklabs.watchtower.enable: "true" # 第三層 其他配置 網絡、卷、全局規(guī)劃
三.運行docker-compose.yml文件到docker
1.創(chuàng)建一個文件夾放置docker-compose.yml文件
2.在docker配置國內加速器
可以添加在Docker Engine下配置國內加速器,添加在Docker Engine下
{ "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"] }
在[]里面的網址可以隨意更換為國內鏡像源的網址,我這里用的是中國科技大學的鏡像源,
大家可以隨意選擇,填寫之后保存文件之后點擊Apply&restart重啟一下docker就完成配置了
docker中國官方:
https://registry.docker-cn.com中科大:
https://docker.mirrors.ustc.edu.cn網易:
http://hub-mirror.c.163.com阿里云:
https://{your_id}.mirror.aliyuncs.com
daocloud:
http://{your_id}.m.daocloud.io
3.右鍵windows 點擊Windows PowerShell(管理員)模式 輸入指令
看個人習慣可用CMD(管理員)模式
cd 到y(tǒng)ml放置路徑
- 啟動指令
docker-compose up -d
- 停止指令
docker-compose down
例:
第一次啟動docker會從鏡像下載依賴,網絡需要穩(wěn)定,會花費一些時間,依賴下載完成以后下一次就可以很快啟動了(網絡不穩(wěn)定可以多嘗試幾次)
4.文件夾權限
docker會在文件夾生成一個stacks來存儲數據依賴和日志
我們需要給予項目文件完全控制和修改的權限,沒有權限項目將無法訪問
打開瀏覽器輸入localhost,就會看到下面的頁面,appsmith啟動成功了
5.異常示例
需要把占用端口的進程pid掉,程序只能正常運行
然后重新啟動一次:docker-compose up -d
當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 查看端口占用的時候不用全部關掉,只需要把LISTENING的進程停掉就可以了
例:taskkill -pid 21016 -f
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Docker遇到Intellij IDEA,Java開發(fā)提升了十倍生產力
這篇文章主要介紹了Docker遇到Intellij IDEA,Java開發(fā)提升了十倍生產力,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-10-10一次dockerfile的循環(huán)依賴錯誤實戰(zhàn)記錄
Dockerfile 是一個文本文件,其內包含了一條條的指令,每一條指令構建一層,因此每一條指令的內容,就是描述該層應當如何構建,這篇文章主要介紹了使用Docker多階段構建時遇到的循環(huán)依賴問題及其解決方法,,需要的朋友可以參考下2025-02-02解決docker鏡像(centos系統(tǒng))中無sudo命令問題
這篇文章主要介紹了解決docker鏡像(centos系統(tǒng))中無sudo命令問題,具有很好的參考價值,希望對大家有所幫助,2023-11-11Docker安裝阿里云服務器和在虛擬機安裝遇到的坑(問題小結)
這篇文章主要介紹了Docker安裝阿里云服務器和在虛擬機安裝遇到的坑,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03