Docker常用命令

Docker常用命令手册

  • 运行Nvidia-docker

    sudo nvidia-docker run --runtime=nvidia -it -d -p 8888:8888 -p 6006:6006 -v $(pwd):/tf/ tensorflow/tensorflow:latest-gpu-py3-jupyter
    --rm # 停止后即删除
    
    sudo docker pull tensorflow/tensorflow:latest-gpu-py3-jupyter
      
    #docker pull 
      
    sudo docker images
    docker run --help
    docker run [-it] some-image # 创建某个镜像的容器。注意,同一个镜像可以通过这种方式创建任意多个container. 加上-it之后,可以创建之后,马上进入交互模式。
    docker rm container-id # 删除某个容器
    docker start [-i] container-id # 启动某个容器,必须是已经创建的。 加上-i 参数之后,可以直接进入交互模式:
    docker attach container-id # 进入交互模式的另一种方式
      
    #进入交互模式之后,想退出但是保持容器运行,按CTRL+Q+P三个键
      
    #退出,并关闭停止容器,按CTRL+D或者输入exit再回车
      
    #后台容器重新进入命令:
    docker exec -it [container id] /bin/bash
    
  • 容器备份

    先通过docker ps或者docker ps -a来查看你想备份的容器的id, 然后通过:

    docker commit -p [your-container-id] [your-backup-name]
    

    来将id为your-container-id的容器创建成一个镜像快照。

    接着,通过docker images就可以查看到刚刚创建好的镜像快照了。 然后,通过:

    docker save -o [path-you-want-to-save/your-backup-name.tar]] [your-backup-name]
    

    把那个镜像打包成tar文件,保存到服务器上。 后面就可以把服务器上打包好的tar文件,下载到本地了。

    docker load -i your-backup-name.tar
    docker run -d -p 80:80 your-backup-name
    
  • Docker 设置国内镜像源

    创建或修改 /etc/docker/daemon.json 文件,修改为如下形式

      
    # vi /etc/docker/daemon.json
    {
        "registry-mirrors": ["http://hub-mirror.c.163.com"]
    }
    #重启docker服务
    systemctl restart docker.service
    
  • 常见问题

    外部访问docker镜像时,存在端口映射,查看当前容器端口映射关系:

    docker port [container id]
    

    查看容器内的进程

    sudo docker top [container id]