定制網(wǎng)站開發(fā)哪家強(qiáng)某網(wǎng)站seo診斷分析和優(yōu)化方案
Docker命令總結(jié)
- 一、Docker介紹
- 1.1 鏡像與容器區(qū)別
- 二、Docker命令
一、Docker介紹
Docker是一個(gè)開源的應(yīng)用容器引擎,它允許開發(fā)者在幾乎任何環(huán)境中運(yùn)行應(yīng)用程序,而無需擔(dān)心運(yùn)行環(huán)境的問題。Docker的核心概念是容器,它可以將應(yīng)用程序及其依賴項(xiàng)打包在一起,形成一個(gè)獨(dú)立的環(huán)境。這使得開發(fā)者可以在不同的機(jī)器上復(fù)制相同的運(yùn)行環(huán)境,從而實(shí)現(xiàn)應(yīng)用程序的快速部署和遷移。
Docker的主要優(yōu)點(diǎn)包括:
- 輕量級(jí):Docker容器比虛擬機(jī)更輕量,因?yàn)樗鼈児蚕硭拗鳈C(jī)的操作系統(tǒng)內(nèi)核。這使得Docker容器啟動(dòng)速度更快,占用資源更少。
- 可移植性:由于Docker容器包含了應(yīng)用程序的所有依賴項(xiàng),因此可以在任何支持Docker的環(huán)境中運(yùn)行,無論是在物理機(jī)、虛擬機(jī)還是在云端。
- 易于管理:Docker提供了強(qiáng)大的鏡像管理功能,可以輕松地創(chuàng)建、刪除和共享容器鏡像。此外,Docker還支持自動(dòng)化構(gòu)建和部署,大大提高了開發(fā)效率。
- 安全性:Docker容器之間的隔離性較好,可以有效防止應(yīng)用程序之間的沖突和干擾。此外,Docker還提供了許多安全特性,如命名空間、cgroups和AppArmor,可以幫助保護(hù)容器內(nèi)的應(yīng)用程序。
- 開源:Docker是一個(gè)開源項(xiàng)目,擁有龐大的社區(qū)和豐富的資源,包括文檔、教程和插件。這使得Docker非常靈活,可以根據(jù)需求進(jìn)行定制和擴(kuò)展。
1.1 鏡像與容器區(qū)別
鏡像(Image)和容器(Container)是Docker技術(shù)中的兩個(gè)核心概念,它們之間的關(guān)系類似于傳統(tǒng)計(jì)算機(jī)中的操作系統(tǒng)和應(yīng)用程序。
- 鏡像(Image):鏡像可以看作是一個(gè)只讀的模板,它包含了創(chuàng)建容器所需的全部?jī)?nèi)容和元數(shù)據(jù)。鏡像本身并不運(yùn)行任何程序,而是用來創(chuàng)建容器。一個(gè)鏡像可以創(chuàng)建多個(gè)容器,這些容器之間相互獨(dú)立。
- 容器(Container):容器是從鏡像創(chuàng)建的運(yùn)行實(shí)例,它包含了運(yùn)行中的應(yīng)用程序及其所需的依賴項(xiàng)和環(huán)境變量。容器是輕量級(jí)的,因?yàn)樗蚕砹怂拗鞑僮飨到y(tǒng)的內(nèi)核,這使得容器啟動(dòng)速度非常快,且占用資源較少。
簡(jiǎn)單來說,鏡像定義了容器的行為和屬性,而容器則是鏡像的運(yùn)行實(shí)例。
二、Docker命令
-
構(gòu)建鏡像
sudo docker build -f ./ultralytics-main/docker/Dockerfile -t yolov8:v0 .
-
查看容器
docker imagee
-
查看正在運(yùn)行的容器ID(所有運(yùn)行過的容器)
docker ps -a
-
安裝ssh服務(wù)/根據(jù)運(yùn)行的容器,直接進(jìn)入:
docker exec -t -i ubuntu /bin/bash
-
運(yùn)行容器
""" 命令解釋 (-d 一直運(yùn)行;-i 交互式操作; -t 終端;-v 掛載路徑 “/home/zzy_ubuntu/share”表示主機(jī)路徑 “/usr/share/files1”表示docker路徑;--gpus表示使用gpu ;“fa50f7fed43a ” 表示容器ID) """ # 一直運(yùn)行容器,exit不會(huì)退出(再次進(jìn)入需要使用docker exec) sudo docker run -dit --gpus all fa50f7fed43a /bin/bash # 使用GPU sudo docker run -it --gpus all fa50f7fed43a /bin/bash # 使用CPU sudo docker run -t -i 容器id /bin/bash # 運(yùn)行時(shí)掛載 {yolov8:base} 是容器id的tag #### ubuntu掛載 sudo docker run -dit --gpus all -v /home/zzy_ubuntu/share:/workspace/share yolov8:1.0 /bin/bash #### windows掛載 sudo docker run -dit --gpus all -v /mnt/f/python/company_code/Algorithm_architecture/yolov8:/workspace/share yolov8:1.0 /bin/bash
-
停止運(yùn)行容器
sudo docker stop <容器ID>
-
刪除容器
############################################## 刪除容器 sudo docker rm <容器ID前三位> ############################################## 刪除鏡像 docker rmi -f 鏡像id # 刪單個(gè) docker rmi -f 鏡像id 鏡像id # 刪多個(gè) docker rmi -f $(docker images -aq) # 刪除所有
-
進(jìn)入容器終端
docker exec -it 容器ID /bin/bash # 此方法需要先通過docker run -dit后臺(tái)啟動(dòng)
-
保存新鏡像(打包tar)
# 使用save參數(shù)進(jìn)行打包,格式如:docker save -o tar文件名稱 鏡像REPOSITORY:TAG docker commit -m="描述信息" -a="作者" 容器id 目標(biāo)鏡像名: [TAG] ---docker commit -m="最新的yolov8環(huán)境-無tensorrt" -a="zhaozhiyuan" 2b22 yolov8:cuda11.6.2-cudnn8302-py38 docker save -o yolov5-v6.2.tar yolov5:v6.2 ---- 將鏡像保存為.tar文件,默認(rèn)保存在當(dāng)前目錄 # sudo docker save <鏡像ID> -o /home/yolov8_v0.tar # 其中yolov5:v6.2 是需要保存鏡像的REPOSITORY、和TAG;也是上面保存的鏡像名稱。
-
給鏡像打標(biāo)簽和刪除標(biāo)簽
# 打標(biāo)簽 sudo docker tag aba01f181a4a webconsole:latest
-
容器導(dǎo)出
sudo docker export -o xxx.tar <容器id>
-
加載tar鏡像
# 使用load進(jìn)行從tar文件導(dǎo)出鏡像 docker load -i yolov5-v6.2.tar # 然后查看是否出現(xiàn)鏡像 docker images