目录
前言
Docker基础知识。
一、Docker安装
参考资料
1、卸载docker(可选)
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine \
docker-ce
2、安装必要的系统工具
yum install -y yum-utils device-mapper-persistent-data lvm2
3、设置docker镜像源仓库
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4、docker安装
sudo yum makecache fast
sudo yum install docker-ce
5、关闭防火墙
# 关闭
systemctl stop firewalld
# 禁止开机启动防火墙
systemctl disable firewalld
# 查看是否关闭防火墙
systemctl status firewalld
6、启动docker
# 启动docker服务
systemctl start docker
# 停止docker服务
systemctl stop docker
# 重启docker服务
systemctl restart docker
7、配置镜像加速
# 切换/创建文件夹
sudo mkdir -p /etc/docker
# 在文件夹内新建一个daemon.conf文件,写入如下内容
{
"registry-mirrors": ["https://pee6w651.mirror.aliyuncs.com"]
"runtimes": {
"nvidia": {
"path": "nvidia-container-runtime",
"runtimeArgs": []
}
}
}
# 重新加载文件
sudo systemctl daemon-reload
# 重新启动docker
sudo systemctl restart docker
8、查看docker版本
docker -v
9、拉取镜像
docker pull xxx(镜像地址)
10、初次运行容器
docker run -itd -p xxx(用户自定义端口号,一般与后者相同):xxx(docker中服务端口号) --name xxx(容器名) xxx(镜像ID) /bin/bash
# 与宿主机器共用网络
docker run -itd --net host --name xxx(容器名) xxx(镜像ID) /bin/bash
【注】
-t:选项让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上
-i:则让容器的标准输入保持打开,-d 则是在后台启动
-v:挂载目录
-p:端口映射
11、退出容器
exit
12、启动容器
docker start xxx(容器名/容器ID)
13、进入容器
docker exec -it xxx(容器名) /bin/bash
14、保存镜像
docker save -o xxx(保存的文件名) xxx(镜像名):版本
【注】如果想把已经配置好的容器,同镜像一同打包,可以先通过如下命令生成镜像,再通过上面的命令,打包镜像
docker commit -a "author" -m "comment" ${container-id} ${image-name}:${image-version}
15、下载镜像
docker load -i xxx(保存的文件名)
16、删除镜像
docker rmi xxx(镜像ID)
17、删除容器
docker rm xxx(容器ID)
18、停止运行的容器
docker stop xxx(容器ID)
19、宿主机与容器文件传输
# 宿主机—>容器
docker cp {宿主机文件完整路径} {容器name/id}:{容器内路径}
# 容器—>宿主机
docker cp {容器name/id}:{容器内文件完整路径} {宿主机路径}
20、查看所有容器
docker ps -a
21、查看所有镜像
docker images
二、Docker配置GPU环境
以下所有命令均在命令行进行操作。
1、拉取cuda镜像
- cuda镜像下载链接:cuda镜像
- 示例:
docker pull nvidia/cuda:11.7.1-devel-ubi8
- 示意图:
2、安装
# 更新yum
yum clean all
yum makecache
yum update -y
# 安装nvidia-container-runtime(centos7)
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-container-runtime/$distribution/nvidia-container-runtime.repo | sudo tee /etc/yum.repos.d/nvidia-container-runtime.repo
yum install nvidia-container-runtime
# 验证是否安装成功(显示下图即为安装成功)
docker run --rm --gpus all nvidia/cuda:11.7.1-devel-ubi8 nvidia-smi
3、运行容器
# 初次运行容器
docker run -itd --shm-size=8gb --rm --runtime=nvidia --gpus all --network host --name GPU-Docker nvidia/cuda:11.7.1-devel-ubi8 /bin/bash
# 进入容器
docker exec -it GPU-Docker /bin/bash
# 注
--shm-size=8gb必须加上,不然运行代码会报存储错误
--gpus参数:
--gpus "device=0": 使用第一个 GPU 设备
--gpus "device=1": 使用第二个 GPU 设备
--gpus "device=2,3": 使用第三和第四个 GPU 设备
--gpus 3: 使用前3个gpu