镜像管理
查看镜像
sudo docker images
创建docker镜像
跳转Dockerfile所在的文件夹
cd <Dockerfile下的文件夹>
创建镜像
sudo docker build -t <image name>:latest .
推送镜像
创建远程仓库
sudo docker build -t <远程仓库地址>/<仓库名> .
用tag重命名,会复制一个新的image
sudo docker tag <仓库ID> <远程仓库地址>/<仓库名>:latest
push推送
sudo docker push <远程仓库地址>/<仓库名>:latest
移除镜像
sudo docker rmi <image name>
-f: 加上后会强制删除
移除没有使用的镜像
sudo docker system prune
容器管理
查找容器
sudo docker ps -a
停止容器
sudo docker stop <container's id or name> & sudo docker rm <container's id or name>
启动容器
sudo docker run --restart=always -d --name <container name> -p <外部端口号>:<容器内的端口号> <image name>
–restart=always:设置自启动
-d:后台模式(detached mode)
-p:端口映射
进入容器
sudo docker exec -it <container's id or name> /bin/bash
退出容器
exit
只在进入容器后使用
复制文件到容器
docker cp <local_file_path> <container's id or name>:<container_file_path>
也可从容器中复制文件出来
docker cp <container's id or name>:<container_file_path> <local_file_path>
查看容器输出
docker logs -f <container's id or name>
疑难杂症
解决docker磁盘容量不足
-
停止Docker服务:使用以下命令停止Docker服务:
sudo service docker stop
-
同步docker数据
rsync -avz /var/lib/docker/ <新目录>
-
编辑Docker配置文件:使用文本编辑器(如
vi
或nano
)打开Docker的配置文件/etc/docker/daemon.json
(如果该文件不存在,则创建它):sudo vi /etc/docker/daemon.json
-
在配置文件中添加或修改以下行:
{ "data-root": "/path/to/new/docker/directory" }
将
/path/to/new/docker/directory
替换为你想要设置的新的数据目录路径。这里应该是 <新目录>/docker -
保存并关闭配置文件。
-
启动Docker服务:使用以下命令启动Docker服务:
sudo service docker start
-
验证修改:运行一些Docker命令,例如
docker ps
和docker images
,确保Docker正常工作并且数据目录已经成功修改为新的路径。 -
查看Data Root Dir
docker info
输出结果
... ID: 0c9874e0-829a-415c-a9e7-dcc2b495834d Docker Root Dir: /mnt/sdc1/docker Debug Mode: false ...
Docker容器中使用 Nvidia GPU
Error response from daemon: could not select device driver “nvidia” with capabilities: [[gpu]]
在CentOS上安装NVIDIA容器运行时(nvidia-container-runtime),请按照以下步骤进行操作:
- 导入NVIDIA容器运行时的GPG密钥:
sudo rpm --import https://nvidia.github.io/nvidia-container-runtime/gpgkey
- 根据你的CentOS版本,下载适用于NVIDIA容器运行时的软件包列表文件:
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
sudo 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
- 更新软件包列表:
sudo yum update
- 安装NVIDIA容器运行时:
sudo yum install nvidia-container-runtime
-
配置Docker以使用NVIDIA容器运行时:
- 打开Docker配置文件
/etc/docker/daemon.json
:
sudo nano /etc/docker/daemon.json
- 在文件中添加以下内容:
{ "default-runtime": "nvidia", "runtimes": { "nvidia": { "path": "/usr/bin/nvidia-container-runtime", "runtimeArgs": [] } } }
- 保存并关闭文件。
- 打开Docker配置文件
-
重启Docker服务:
sudo systemctl restart docker