一、docker安装步骤
1、更新软件包
sudo apt update
2、安装docker依赖
apt-get install ca-certificates curl gnupg lsb-release
3、添加Docker官方GPG密钥
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
4、添加Docker软件源
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
5、安装docker
apt-get install docker-ce docker-ce-cli containerd.io
6、配置用户组(可选)
默认情况下,只有root用户和docker组的用户才能运行Docker命令。我们可以将当前用户添加到docker组,以避免每次使用Docker时都需要使用sudo。命令如下:
sudo usermod -aG docker $USER
7、运行docker
systemctl start docker
8、重启docker
service docker restart
9、验证docker是否成功
sudo docker run hello-world
10、配置docker支持GPU(可选)
使用示例命令将工具包的包存储库添加到您的系统:
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
systemctl restart docker # 重启docker
docker run -it --rm --gpus all nvidia/cuda:12.2.0-base-ubuntu20.04 nvidia-smi # 测试docker是否正常使用gpu
二、常用命令
docker images # 查看所有镜像
docker ps a # 查看正在运行的容器
docker stop image_id # 停止容器
docker run -it dockerName:tag bash # 启动docker
docker run -it --gpus all llm_qa:0.1 /app/run.sh # docker外执行run.sh脚本
docker run --gpus all -it ubuntu:latest bash # 启动设置gpu
docker run -it --gpus all -v /tcdata:/tcdata llm_qa:0.1 /app/run.sh # 挂载路径,让docker也能访问本地路径
docker commit -m "test" -a "Cristiano" e6b432f2cb63 llm_qa:0.1 # 打包容器:docker commit-m="提交的描述信息" -a="作者" 容器ID 要创建的目标镜像名:[标签名]
docker cp /path/to/my_folder container_id:/path/inside/container # 复制文件夹到docker镜像里面
docker exec -it container_id /bin/bash # 进入名为 container_id 的容器
docker start container_id # 启动容器
docker rmi -f ImageID # 强制删除镜像
docker stop $(docker ps -aq) # 先停止所有容器
docker rm $(docker ps -aq) # 再删除所有容器
docker system prune -f # 删除镜像后,我们需要进行垃圾回收来释放磁盘空间
docker images --format "{{.Repository}}:{{.Tag}}" | grep 'llm_qa' | xargs -r docker rmi -f # 批量删除指定名字的镜像, llm_qa为镜像名含有的字符串信息
docker images "llm_qa" --format "{{.Repository}}:{{.Tag}}" | grep -E '2\.[0-9]$' | xargs -r docker rmi # 删除指定镜像,一定范围tag的镜像
docker save -o my-image.tar my-image:tag # 保存导出镜像
docker load -i my-image.tar # 加载镜像
三、基于Dockerfile创建镜像
- 首先新建一个空目录,该目录用于保存下面提到的Dockerfile以及相关文件
- 然后创建一个Dockerfile文件,Dockerfile中安装创建需求编写好相应的代码
Dockerfile示例:
FROM registry.cn-shanghai.aliyuncs.com/tcc-public/pytorch:2.0.0-py3.9.12-cuda11.8.0-u22.04
# 如有安装其他软件的需求
#RUN apt-get update && apt-get install curl
# 如果安装其他python包的情况
# pip3 install numpy --index-url=http://mirrors.aliyun.com/pypi/simple/ --trusted-host=mirrors.aliyun.com
RUN pip3 install --upgrade pip
RUN apt-get update && apt-get install -y \
python3 \
python3-pip
# 复制文件到容器
# ADD requirements.txt /app
# 复制代码到镜像仓库
COPY app /app
# 指定工作目录
WORKDIR /app
RUN chmod +x /app/run.sh
RUN ls /app
# 安装应用程序依赖
RUN pip3 install -r /app/requirements.txt
# 容器启动运行命令
CMD ["bash", "run.sh"]
创建镜像命令:
docker build -t helloapp .