華碩靈耀 14 2022 水墨藍筆記本今晚開賣:i7-1260P + 2.8K 90Hz 屏,5999 元
Docker使用
3.5 Docker映象使用
可以使用 docker images 來列出本地主機上的映象。
各個選項說明:
l REPOSITORY:表示映象的倉庫源
l TAG:映象的標籤
l IMAGE ID:映象ID
l CREATED:映象建立時間
l SIZE:映象大小
同一倉庫源可以有多個 TAG,代表這個倉庫源的不同個版本。
當我們在本地主機上使用一個不存在的映象時,Docker 就會自動下載這個映象。如果我們想預先下載這個映象,我們可以使用 docker pull 命令來下載它。
如: 下載mysql,使用docker pull mysql命令。
可以使用 docker search 命令來搜尋映象。
如使用docker search mysql來查詢MySQL映象。
l NAME: 映象倉庫源的名稱
l DESCRIPTION: 映象的描述
l OFFICIAL: 是否 docker 官方釋出
l stars: 類似 Github 裡面的 star,表示點贊、喜歡的意思。
l AUTOMATED: 自動構建。
映象刪除使用 docker rmi 命令,比如刪除MySQL映象:
通過Docker看板(Dashboard)刪除image映象
3.6 Docker容器使用
(
以下命令使用nginx映象啟動一個容器,引數為以命令列模式進入該容器:
docker run --name webserver -p 81:80 -d nginx
引數說明:
l --name webserver:容器名稱。
l -p 81:80: 埠進行對映,將本地 81 埠對映到容器內部的 80 埠。
l -d nginx: 設定容器在在後臺一直執行。
最後我們可以通過瀏覽器可以直接訪問 81 埠的 nginx 服務:
使用下面命令檢視容器:
docker ps
也可以通過Docker看板(Dashboard)來檢視:
(2)停止容器
使用下面命令可以停止容器:
docker stop webserver
看板顯示如下:
也可以通過看板來啟動容器
(2)刪除容器
使用下面命令可以刪除容器:
docker rm webserver
也可以通過看板啟動,停止,刪除容器。
3.8 Docker映象的匯入、匯出
docker 提供把映象匯出export(儲存save)為檔案的機制,這樣就可以把映象copy到任意地方了。
- 列出映象
docker images
2.匯出映象
docker save -o <儲存路徑> <映象名稱:標籤>
執行下面命令:
docker save -o ./webapi4.tar webapi4
如把webapi4 匯出到當前資料夾,
3.匯入映象
使用load命令匯入。
docker load --input ./webapi4.tar
刪除映象webapi4,匯入映象。
3.9 Docker容器的匯入、匯出
在Linux容器下
使用export匯出容器,匯出容器命令格式:
docker export <容器名> > <儲存路徑>
如果匯出容器正在執行的webapi5容器,先停止,再匯出。命令如下:
docker stop WebApi5
docker export WebApi5 > ./WebApi5.tar
1.匯入容器
匯入容器的命令:
docker import <檔案路徑> <容器名>
把當前資料夾下的WebApi5.tar檔案拷貝到其他機上,在機器機上執行:
docker import ./WebApi5.tar WebApi5
再啟動此容器即可。
在Windows容器下
停止容器也可以不停止,只要下一步commit成功即可
將容器commit為映象
docker commit WebApi5 webapi5image
再把映象匯出,匯入,啟動容器即可。
建議
可以依據具體使用場景來選擇命令
若是隻想備份images,使用save、load即可
若是在啟動容器後,容器內容有變化,需要備份,則使用export、import
3.10 使用BAT自動匯出,匯入
cd C:\Users\15481\source\vuedocker\danjian
docker commit WebApi5 webapi5image
docker save -o ./webapi5.tar webapi5image
docker stop WebApi5
docker rm WebApi5
docker load --input ./webapi5.tar
docker run --name WebApi5 -p 83:80 -d webapi5image
參考:
@echo off:: dotnet 釋出目錄
set publishDir=E:\TEMP\abc\
set codeDir=D:\Source\Webapi
set port=111111
:: linux 伺服器上的目錄
set projDir=/abc/core
set container=abccore
set image=core_abc:latest
set ymlfile=/abc/core/docker-compose.stage.yml
cd /d %codeDir%
dotnet publish -c Release -o %publishDir%if %errorlevel% == 0 (
pscp -P %port% -r %publishDir% %hostname%:%projDir%
if %errorlevel% == 0 (
ssh -p %port% %hostname% "docker stop %container%"
if %errorlevel% == 0 (
ssh -p %port% %hostname% "docker rm %container%"
if %errorlevel% == 0 (
ssh -p %port% %hostname% "docker rmi %image%"
if %errorlevel% == 0 (
ssh -p %port% %hostname% "docker-compose -f %ymlfile% up -d"
if %errorlevel% == 0 (
ssh -p %port% %hostname% "rm -rf %projDir%/*"
)
)
)
) else (
ssh -p %port% %hostname% "docker-compose -f %ymlfile% up -d"
if %errorlevel% == 0 (
ssh -p %port% %hostname% "rm -rf %projDir%/*"
)
)
) else (
echo upload-error
)
) else (
echo publish-error
)
pause>nul