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
进行验证下拉速度,确定换源是否成功