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,需要滿足特定條件并進行相應配置。以下是詳細步驟:
前提條件
- 本地主機需安裝 NVIDIA 顯卡 并配置好驅動
- 安裝 NVIDIA Container Toolkit(用于在容器中支持 GPU)
安裝 NVIDIA Container Toolkit
- 首先確保已安裝 Docker Engine(略,可參考 Docker 官方文檔)
- 安裝 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
進行驗證下拉速度,確定換源是否成功