我之前沒有接觸過Docker,嘗試源代碼編譯一個在線自動化服務n8n時總是出錯,硬著頭皮用 docker 安裝了,發現 Docker 還挺方便的。這里記錄了一下使用心得,不保證正確。
簡介
Docker 有兩個重要的概念:鏡像(Images)與容器(Containers),鏡像相當于一個靜態的軟件安裝包,它已經配置好了所有需要的依賴,因此可以在任何環境下直接運行,運行之后會生成一個 Container 實例,一個鏡像也可以生成不同名字與端口的容器。我們直接與容器打交道,如果把容器刪除掉,所有的數據會丟失。
使用說明
-
如果啟動 Docker Desktop 顯示初始化失敗,很可能是未打開Hyper-V功能,可以使用以下命令開啟(注意:電腦會重啟):
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
圖形界面可以搜索相關的鏡像,Pull下載,Run是下載后直接運行(如下圖),首次運行時可以輸入窗口名字與端口號:
簡書圖片上傳一直失敗,沒辦法,意會吧
配套的命令如下,鏡像可以在這里搜索
docker pull n8nio/n8n # 下載鏡像
docker run -p <host_port>:<container_port> --name <容器名字> <鏡像名字> # 運行實例
docker start <容器名字> # 之后可以如此啟動
注意點:
container_port是鏡像默認的端口,而host_port是正常使用的映射,產生實例后通過打開瀏覽器通過http://localhost:<host_port>訪問應用
host_port一經設置無法更改,除非刪除重新運行鏡像
-
如果端口被占用,可以通過以下命令找到與關閉占用的程序,也可以換一個未被使用的端口
netstat -ano | findstr :8080 # TCP 10.10.110.207:9176 60.29.242.161:8080 ESTABLISHED 18400 taskkill /F /PID 18400 # /F 是強制殺死的意思,謹慎使用 # 成功: 已終止 PID 為 18400 的進程。
-
查看所有容器:
docker container ls
包括未運行的所有容器:
docker container ls -a