安装

  • windows

    Docker官网下载Windows版本的安装程序安装,安装完可能会报WSL的错误,安装微软的WSL的内核更新包后重启Docker即可。

    下载安装WSL内核更新包

  • Linux

    使用自动安装脚本安装docker-ce

    1
    curl -fsSL https://test.docker.com -o test-docker.sh && chmod +x test-docker.sh && ./test-docker.sh
  • Mac

    Docker官网下载Mac版本的安装程序安装即可。

换源(非必须)

受制于国内网络环境,默认的镜像源可能比较慢,推荐使用国内的镜像源。

  • 推荐国内可用镜像源:

    1
    2
    3
    4
    5
    6
    7
    8
    # 中科大源
    https://docker.mirrors.ustc.edu.cn/

    # 腾讯源
    https://mirror.ccs.tencentyun.com

    # daocloud
    http://f1361db2.m.daocloud.io
  • Windows下配置:

    在设置面板中添加镜像源配置,重启Docker。

  • Linux下配置:

    将配置文件 /etc/docker/daemon.json 的内容改为:

    1
    2
    3
    {
    "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn/"]
    }

    重新启动 docker服务:

    1
    sudo systemctl restart docker

镜像管理

  • 列出

    1
    docker images
  • 查找

    可以按照需要的英文名搜索,但是建议在**docker hub官网**查找所需的镜像下载。

    1
    2
    3
    4
    docker search 镜像名

    # 如,查找包含ubuntu的镜像
    docker search ubuntu
  • 下载

    下载镜像需要指定镜像名称和版本号,如名称ubuntu,版本号18.04,中间用冒号隔开。

    1
    2
    3
    4
    docker pull 镜像名:版本号

    # 如,下载ubuntu 18.04版本的镜像
    docker pull ubuntu:18.04
  • 删除

    1
    2
    3
    4
    docker rmi 镜像名

    # 如,删除ubuntu:18.04镜像
    docker rmi ubuntu:18.04
  • 保存

    可以将已有的镜像打包导出为一个文件,便于迁移使用,文件默认保存在当前目录。

    1
    2
    3
    4
    docker save -o 导出的文件名.tar 镜像名

    # 如
    docker save -o ub18.tar ubuntu:18.04
  • 加载

    可以将导出的镜像包tar文件导入为镜像使用。

    1
    2
    3
    4
    docker load -i 导出的文件名.tar

    # 如
    docker load -i ub18.tar

容器管理

  • 列出

    1
    2
    3
    4
    5
    # 所有容器
    docker container ls -a

    # 正在运行的容器
    docker ps
  • 运行

    通过运行一个镜像来获得一个容器。

    1
    2
    3
    4
    docker run -itd --name 容器名(自定义) --gpus all -p 主机端口:容器端口 -v 主机目录:容器目录

    # 如
    docker -itd --name test --gpus all -p 22222:22 -v D:\test:/

    参数介绍:

    • -i 交互式操作

    • -t 终端

    • -d 后台运行

    • --gpus all GPU映射,在容器中使用全部主机GPU(独显),需要在主机中安装最新版本的CUDA。

    • -p 端口映射,通过访问主机端口来转发到访问容器端口

    • -v 卷(文件夹)映射,将文件夹映射到容器内,具有读写权限。

      注意:在Windows和Mac系统下的容器内使用该功能时文件的读写性能很差,所以对于频繁读写的文件不要使用映射,应该直接复制到容器内使用。

    • --privileged 获取完全root权限,默认情况下容器内root用户有些权限会受到限制,使用该参数便会获得完整的root权限,谨慎使用!

  • 进入

    1
    2
    3
    4
    docker exec -it 容器名 命令

    # 如
    docker exec -it test /bin/bash
  • 启动

    1
    2
    3
    4
    docker start 容器名

    # 如
    docker start test
  • 停止

    1
    2
    3
    4
    docker stop 容器名

    # 如
    docker stop test
  • 删除

    1
    2
    3
    4
    docker rm 容器名

    # 如
    docker rm test
  • 提交

    1
    2
    3
    4
    docker commit 容器名 镜像名:版本号(自定义)

    # 如
    docker commit test test:1.0