Docker筆記(基本命令、掛載本地gpu、Dockerfile文件配置、數據掛載、docker換源)

Docker

主要用于環境搭建以及服務部署

基本命令

1.查看鏡像

docker images  

2.查看容器

docker ps # 查看容器僅僅為查看運行狀態的容器
docker ps -a # 查看所有狀態的容器

3.退出容器

exit

4.刪除鏡像、容器

docker rm 鏡像ID
docker rm 容器ID
docker rm -f 容器ID # 強制刪除

5.下拉鏡像

docker pull  鏡像名稱[:標簽]
docker pull ubuntu:20.04 

6.構建容器

docker run [選項] 鏡像名稱[:標簽] [命令]
docker run -it --name my-ubuntu ubuntu:20.04 /bin/bash

7.進入容器

docker exec -it 容器ID或容器名稱 /bin/bash

8.容器封裝為鏡像

docker commit 容器id 新鏡像的名稱:新鏡像的版本

9.本地文件傳輸到容器

docker cp 本地路徑  容器id:容器路徑

10.鏡像導出壓縮包

 docker save -o new_name.tar image_name

Docker 中掛載并使用本地 GPU

要在 Docker 中掛載并使用本地 GPU,需要滿足特定條件并進行相應配置。以下是詳細步驟:

前提條件

  1. 本地主機需安裝 NVIDIA 顯卡 并配置好驅動
  2. 安裝 NVIDIA Container Toolkit(用于在容器中支持 GPU)

安裝 NVIDIA Container Toolkit

  1. 首先確保已安裝 Docker Engine(略,可參考 Docker 官方文檔)
  2. 安裝 NVIDIA 容器工具包:
# 添加 NVIDIA 源
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list# 安裝工具包
sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit# 重啟 Docker 服務
sudo systemctl restart docker

運行支持 GPU 的容器

使用 --gpus 參數指定需要掛載的 GPU,常用命令格式:

使用所有 GPU

docker run --gpus all -it 鏡像名稱 命令

如果成功,會顯示類似本地 nvidia-smi 的輸出,表明容器已識別到 GPU。

Dockerfile

Dockerfile 是一個文本文件,包含一系列構建 Docker 鏡像的指令。通過 Dockerfile,可以自動化、可重復地構建自定義鏡像。

基本結構 指令+參數

FROM:指定基礎鏡像(必須是第一條指令)
WORKDIR:設置工作目錄
COPY/ADD:復制文件到鏡像
RUN:執行命令(構建時運行)
ENV:設置環境變量
EXPOSE:聲明容器運行時監聽的端口
CMD/ENTRYPOINT:指定容器啟動時執行的命令

本地在dockerfile文件下進行構建鏡像

通過dockerfile構建鏡像,docker會自動搜索dockerfile文件,進行執行

# 格式:docker build -t 鏡像名稱[:標簽] 構建上下文路徑
docker build -t my-python-app:v1 .

本地在dockerfile文件下進行運行鏡像

自動執行dockerfile里面的命令

docker run -name new_name_container my-python-app:v1

數據掛載

1.

docker volume create mydate # 構建數據卷類似于共享網盤

2.兩種方式

docker run -it -rm -v ~/Downloads/data:/date  # 本機路徑:容器路徑
docker run -it -rm -v mydate:/app . # 容器路徑,一般情況,容器消失之后會自動刪除,所以需要保護數據安全,進行數據掛載,最好掛載在本地,數據相對安全。

Docker更換鏡像源提高拉取速度

在國內,由于網絡政策和限制,直接訪問DockerHub速度很慢,尤其是在拉取大型鏡像時。為了解決這個問題,常用的方法就是更換鏡像源。

永久docker換源,提升下拉速度

1. 創建配置目錄

首先需要創建一個配置目錄,通常在/etc/docker下:

sudo mkdir -p /etc/docker
2. 修改daemon.json配置文件

需要在該目錄下創建(或修改)daemon.json文件,并將鏡像源地址寫入文件。可以使用命令行直接輸入配置:

打開daemon.json

sudo nano /etc/docker/daemon.json

添加換源內容

{"registry-mirrors": ["https://docker.m.daocloud.io","https://docker.imgdb.de","https://docker-0.unsee.tech","https://docker.hlmirror.com","https://docker.1ms.run","https://func.ink","https://lispy.org","https://docker.xiaogenban1993.com"]
}
3. 重啟Docker服務
sudo systemctl daemon-reload && sudo systemctl restart docker
4.驗證服務
sudo docker pull continuumio/anaconda3

進行驗證下拉速度,確定換源是否成功

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/93243.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/93243.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/93243.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

算法競賽階段二-數據結構(37)數據結構循環鏈表模擬實現

之前單鏈表中,數組全初始化為0,末尾最后一個next 存的就是0,指向的就是頭節點循環鏈表的基本概念循環鏈表是一種特殊的鏈表,其尾節點的指針域指向頭節點,形成一個閉環。與普通單鏈表相比,循環鏈表的遍歷需要…

20250727讓飛凌OK3576-C開發板在Rockchip的原廠Android14下通過耳機播音

20250727讓飛凌OK3576-C開發板在Rockchip的原廠Android14下通過耳機播音 2025/7/27 23:28緣起:很容易知道 飛凌OK3576-C開發板 使用的聲卡芯片是 NAU88C22YG 新唐科技(NUVOTON) NAU8822LYG NAU88C22YG 新唐立體聲音頻編解碼芯片原理圖:OK3576-C V1.2_202…

正向代理和反向代理的理解

**正向代理(Forward Proxy)和反向代理(Reverse Proxy)**是兩種不同類型的代理服務器,它們在數據傳輸過程中扮演的角色、使用場景以及工作方式都有所不同。 正向代理(Forward Proxy) 定義與作用&…

Java 后端 Cookie Session Token會話跟蹤技術

概述 會話從字面理解就是"兩方交流",那問題就來了,HTTP(超文本傳輸協議)里面的"傳輸"不就包含了"兩方交流"的意思嗎?為什么要多此一舉提出會話技術呢? 談到這個,…

智譜AI GLM大模型 GLM-4-Plus的快速使用 ChatOpenAI類來調用GLM-4模型

智譜AIGLM-4,2024年1月16日發布的第四代基座大模型,其整體性能相較前代提升近60%,多維度指標逼近OpenAI的GPT-4水平。該模型支持128K上下文窗口(約300頁文本處理能力),在長文本信息處理中實現100%精度召回。…

AsyncLocal淺復制的問題解決方案

針對C#中AsyncLocal<T>淺復制問題&#xff0c;以下是幾種主要的解決方案&#xff1a; 1. 使用不可變對象&#xff08;推薦&#xff09; 將存儲在AsyncLocal<T>中的對象設計為不可變的&#xff0c;避免修改共享狀態&#xff1a; public class ImmutableUserContext …

IIS發布.NET9 API 常見報錯匯總

記錄工作過程中發現的IIS常見錯誤。 1. HTTP Error 500.19 - Internal Server Error .NET 9 API --》vs打包方式如下&#xff1a; 發布到IIS后報錯HTTP Error 500.19 - Internal Server Error。 解決方案&#xff1a; 下載ASP.NET Core Hosting Bundle&#xff08;ASP.NET Co…

Google Chrome V8< 13.7.120 沙箱繞過漏洞

【嚴重】Google Chrome V8< 13.7.120 沙箱繞過漏洞 漏洞描述 V8 是 Google 開發的一款開源高性能 JavaScript 和 WebAssembly 引擎&#xff0c;廣泛用于 Chrome 瀏覽器和 Node.js 等項目中。 受影響版本中&#xff0c;JsonParser::MakeString 函數在處理長度為 1 的轉義字…

基于Spring Boot和Vue電腦維修平臺整合系統的設計與實現

用戶&#xff1a;注冊&#xff0c;登錄&#xff0c;在線報修&#xff0c;維修接單&#xff0c;維修報告&#xff0c;維修評價&#xff0c;個人資料維修工&#xff1a;登錄&#xff0c;在線報修&#xff0c;維修接單&#xff0c;維修報告&#xff0c;維修評價&#xff0c;通知公…

InsightFace(RetinaFace + ArcFace)人臉識別項目(預訓練模型,魯棒性很好)

背景介紹 這是一個 簡單的人臉識別項目&#xff0c;用 FastApi 在本地實現&#xff0c;使用預訓練模型&#xff0c;直接可用。 新方案比之前的FaceNet強太多了&#xff0c;甚至不用數據增強等操作&#xff0c;就可以識別戴眼鏡、不戴眼鏡、歪著的人臉等。 充分證明了選型的重要…

App Inventor 2 使用 MaterialIcons 圖標字體,快捷展示專業圖標

平時布局的話&#xff0c;如果要使用圖標&#xff0c;一般需要去找 png 圖片&#xff0c;且透明背景的。如果需要根據不同常見圖標進行變色的話&#xff0c;就需要準備多張不同樣式的圖標&#xff0c;還要考慮圖片的分辨率等等因素&#xff0c;非常的麻煩。 這時&#xff0c;如…

C語言——關于指針(逐漸清晰版)

為了更好地理解本篇文章的知識內容&#xff0c;讀者可以將以下文章作為補充知識進行閱讀 &#xff1a; C語言————原碼 補碼 反碼 &#xff08;超絕詳細解釋&#xff09;-CSDN博客 C語言————二、八、十、十六進制的相互轉換-CSDN博客 C語言————斐波那契數列的理解…

SVG 在線編輯器

SVG 在線編輯器 引言 隨著互聯網技術的發展&#xff0c;矢量圖形在網頁設計和數據可視化中扮演著越來越重要的角色。SVG&#xff08;可縮放矢量圖形&#xff09;因其文件小、無限縮放不模糊的特性&#xff0c;成為了網頁設計中常用的圖形格式。SVG 在線編輯器的出現&#xff0c…

libpostproc 已經從 ffmpeg 中移除,導致編譯 ffmpeg 時沒有 libpostproc

今天編譯 ffmpeg 時突然發現 libpostproc 不見了&#xff0c;-enable-postproc 也變成了非法的選項。用搜索引擎搜索相關信息找不到一點&#xff0c;于是去 github 看。 從提交記錄可以看到 libpostproc 已經被移除了 鏈接 主線中已經看不到了 libpostproc 這個目錄了

基于 Dell PowerEdge T440 搭建的 Proxmox VE 配置 RTX 3060 顯卡直通虛擬機、切換直通

基于 Dell PowerEdge T440 搭建的 Proxmox VE 配置 RTX 3060 顯卡直通虛擬機、切換直通 文章目錄 基于 Dell PowerEdge T440 搭建的 Proxmox VE 配置 RTX 3060 顯卡直通虛擬機、切換直通 1. 前言 2. 前提條件 3. 配置步驟 3.1. 啟用 VT-d 3.2. 激活 IOMMU 3.3. 添加 VFIO 模塊 …

如何解決pip安裝報錯ModuleNotFoundError: No module named ‘voila’問題

【Python系列Bug修復PyCharm控制臺pip install報錯】如何解決pip安裝報錯ModuleNotFoundError: No module named ‘voila’問題 摘要 在開發過程中&#xff0c;我們常常會遇到pip安裝包時出現各種錯誤&#xff0c;特別是在使用PyCharm進行開發時。本文將詳細介紹如何解決安裝…

[spring6: @EnableWebMvc]-源碼分析

源碼 EnableWebMvc EnableWebMvc 是用于啟用 Spring MVC 的注解&#xff0c;它通過導入 DelegatingWebMvcConfiguration 來加載默認的 MVC 配置&#xff0c;同時允許開發者通過實現 WebMvcConfigurer 接口來自定義部分配置&#xff1b;若需更高階的控制&#xff0c;則可直接繼承…

Jmeter的元件使用介紹:(四)前置處理器詳解

Jmeter的前置處理器可以用來在取樣器執行前做一些數據準備操作&#xff0c;也需要注意使用的作用域問題。常用的前置處理器有&#xff1a;用戶參數、BeanShell預處理器、JDBC預處理器。一、用戶參數 【用戶參數】與前面介紹過的【用戶定義的變量】有相似之處&#xff0c;先來介…

十七、K8s 可觀測性:全鏈路追蹤

十七、K8s 可觀測性&#xff1a;全鏈路追蹤 文章目錄十七、K8s 可觀測性&#xff1a;全鏈路追蹤1、Skywalking 初識1.1 為什么需要全鏈路追蹤平臺1.2 全鏈路追蹤核心組件及工作原理1.2.1 全鏈路追蹤核心概念1.2.2 全鏈路追蹤工作原理1.3 什么是Skywalking&#xff1f;1.4 Skywa…

2025 Gitee vs. GitLab:全面對比與選擇指南

在軟件研發持續加速、合規要求日益嚴格的背景下&#xff0c;選擇合適的代碼托管平臺成為團隊數字化能力建設的關鍵環節。尤其在中國本土市場&#xff0c;Gitee正憑借其深度本地化能力、全面生態整合和開源社區支撐&#xff0c;成為國內團隊首選的開發協作平臺。 一、Gitee&…