docker 命令实用指南

Posted David_Hernandez

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker 命令实用指南相关的知识,希望对你有一定的参考价值。

系列文章目录

  1. Docker 简介
  2. Docker教程 – 镜像

文章目录


Docker 命令

  • run - docker images 运行
  • images - docker images 查看
  • ps - docker containers 查看
  • rm - docker containers 删除
  • rmi - docker images 删除
  • pull - dockerhub images 拉取
  • push - dockerhub images 更新
  • commit - dockerhub images 提交
  • exec - docker containers 运行时修改

镜像

创建镜像

方式一:下载

# 下载指定版本容器镜像
docker pull gitlab/gitlab-ce:11.2.3-ce.0

方式二:从已经创建的容器中更新镜像,并且提交这个镜像

docker commit -m="First Docker" -a="wcjiang" a6b0a6cfdacf wcjiang/nginx:v1.2.1

上面命令参数说明:

  • m 提交的描述信息
  • a 指定镜像作者
  • a6b0a6cfdacf 记住这个是容器id,不是镜像id
  • wcjiang/nginx:v1.2.1 创建的目标镜像名

方式三:使用 Dockerfile 指令来创建一个新的镜像

参考 https://github.com/jaywcjlove/docker-tutorial

发布镜像

参考 https://github.com/jaywcjlove/docker-tutorial

容器

容器管理

# 列出本机正在运行的容器
docker container ls

docker start [containerID/Names] # 启动容器
docker stop [containerID/Names]  # 停止容器
docker rm [containerID/Names]    # 删除容器
docker logs [containerID/Names]  # 查看日志

容器使用

创建

# 创建一个守护状态的 Docker 容器
docker run -itd my-nginx /bin/bash

进入容器

# 进入容器
docker exec -it [containerID/Names] /bin/bash  

一次性使用

# 在docker容器中运行hello world!
docker run centos echo "hello world"  
# 在docker容器中,安装wget软件
docker run centos yum install -y wget 

文件拷贝

从主机复制到容器 sudo docker cp host_path containerID:container_path
从容器复制到主机 sudo docker cp containerID:container_path host_path

# 从正在运行的 Docker 容器里面,将文件拷贝到本机,注意后面有个【点】拷贝到当前目录
docker container cp [containID]:[/path/to/file] .

Docker GPU 使用

https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/user-guide.html

例子

# 参数说明:
# --rm		Automatically remove the container when it exits
  1. Starting a GPU enabled CUDA container; using --gpus (常用)

    docker run --rm --gpus all nvidia/cuda nvidia-smi
    
  2. Using NVIDIA_VISIBLE_DEVICES and specify the nvidia runtime (常用)

    docker run --rm --runtime=nvidia \\
      -e NVIDIA_VISIBLE_DEVICES=all nvidia/cuda nvidia-smi
    
  3. Start a GPU enabled container on two GPUs (常用)

    docker run --rm --gpus 2 nvidia/cuda nvidia-smi
    
  4. Starting a GPU enabled container on specific GPUs

    docker run --gpus '"device=1,2"' \\
      nvidia/cuda nvidia-smi --query-gpu=uuid --format=csv
        
    # uuid
    # GPU-ad2367dd-a40e-6b86-6fc3-c44a2cc92c7e
    # GPU-16a23983-e73e-0945-2095-cdeb50696982
    
  5. Alternatively, you can also use NVIDIA_VISIBLE_DEVICES (常用)

    docker run --rm --runtime=nvidia \\
      -e NVIDIA_VISIBLE_DEVICES=1,2 \\
      nvidia/cuda nvidia-smi --query-gpu=uuid --format=csv
        
    # uuid
    # GPU-ad2367dd-a40e-6b86-6fc3-c44a2cc92c7e
    # GPU-16a23983-e73e-0945-2095-cdeb50696982
    
  6. Query the GPU UUID using nvidia-smi and then specify that to the container

    nvidia-smi -i 3 --query-gpu=uuid --format=csv
    
    # uuid
    # GPU-18a3e86f-4c0e-cd9f-59c3-55488c4b0c24
    
    docker run --gpus device=GPU-18a3e86f-4c0e-cd9f-59c3-55488c4b0c24 \\
      nvidia/cuda nvidia-smi
    

References

  1. https://github.com/jaywcjlove/docker-tutorial
  2. https://github.com/NVIDIA/nvidia-docker

以上是关于docker 命令实用指南的主要内容,如果未能解决你的问题,请参考以下文章

docker 命令实用指南

Docker实用指南:将Python Web应用容器化

Docker实用命令手册

Docker实用命令手册

Docker实用命令介绍

docker相关命令指南