Re.Vi
Re.Vi
发布于 2024-03-26 / 59 阅读
1
0

Docker常用命令

镜像管理

查看镜像

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磁盘容量不足

  1. 停止Docker服务:使用以下命令停止Docker服务:

    sudo service docker stop
    
  2. 同步docker数据

    rsync -avz /var/lib/docker/ <新目录>
    
  3. 编辑Docker配置文件:使用文本编辑器(如 vinano)打开Docker的配置文件 /etc/docker/daemon.json(如果该文件不存在,则创建它):

    sudo vi /etc/docker/daemon.json
    
  4. 在配置文件中添加或修改以下行:

    {
      "data-root": "/path/to/new/docker/directory"
    }
    

    /path/to/new/docker/directory替换为你想要设置的新的数据目录路径。这里应该是 <新目录>/docker

  5. 保存并关闭配置文件。

  6. 启动Docker服务:使用以下命令启动Docker服务:

    sudo service docker start
    
  7. 验证修改:运行一些Docker命令,例如 docker psdocker images,确保Docker正常工作并且数据目录已经成功修改为新的路径。

  8. 查看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),请按照以下步骤进行操作:

  1. 导入NVIDIA容器运行时的GPG密钥:
sudo rpm --import https://nvidia.github.io/nvidia-container-runtime/gpgkey
  1. 根据你的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
  1. 更新软件包列表:
sudo yum update
  1. 安装NVIDIA容器运行时:
sudo yum install nvidia-container-runtime
  1. 配置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": []
        }
      }
    }
    
    • 保存并关闭文件。
  2. 重启Docker服务:

sudo systemctl restart docker

评论