创建Docker容器

先安装KAE,再通过虚拟化设备并配置资源限制,创建Docker容器。

  1. 安装KAE,详细操作步骤请参见安装KAE

    安装完成后,继续执行本文档的后续操作步骤,创建Docker容器。

  2. 根据实际情况,将现有设备虚拟化出更多设备。

    1. 查看当前设备。
      1
      ls /dev
      

    2. 针对三种驱动(hisi_sec2、hisi_hpre、hisi_zip),各自虚拟化出一个新设备。
      1
      2
      3
      echo 1 > /sys/bus/pci/drivers/hisi_sec2/0000:76:00.0/sriov_numvfs
      echo 1 > /sys/bus/pci/drivers/hisi_hpre/0000:79:00.0/sriov_numvfs
      echo 1 > /sys/bus/pci/drivers/hisi_zip/0000:75:00.0/sriov_numvfs
      

      这里,只需创建一个Docker,故对各种驱动只虚拟化1个,若有多个,则可虚拟化出多个设备。

    3. 再次查看当前设备。
      1
      ls /dev
      

      可以看到新设备(如hisi_sec2-6、hisi_hpre-7和hisi_zip-8)已被创建。

  3. 根据2虚拟化出来的设备,创建Docker容器并直接进入。

    1
    docker run -d -it --cpus=4 --cpuset-cpus=20-23 --cpuset-mems=1 -m 16g --name 4c16g-nginx-kae -v /usr/:/usr -v /home/:/home/ --device=/dev/hisi_sec2-6:/dev/hisi_sec2-6:rwm --device=/dev/hpre7:/dev/hpre7:rwm --device=/dev/hisi_zip-8:/dev/hisi_zip-8:rwm --network host --privileged=true openeuler-22.03-lts-sp1 /bin/bash
    

    参数说明如下:

    • -d:后台运行容器。
    • -i:让容器的标准输入保持打开。
    • --cpuset-cpus:指定容器运行的CPU内核。
    • -m:限制容器使用的最大内存。
    • -t:让Docker分配一个伪终端并绑定在容器的标准输入上。
    • -v:将宿主机的目录挂载到镜像里。冒号前为宿主机目录,必须为绝对路径,冒号后为镜像内挂载的路径。
    • --device:指定容器使用宿主机的设备。冒号前为在宿主机上创建的VF设备,冒号后为容器内目录,r、w、m使容器分别拥有对设备的读、写、创建设备文件的权限。
    • openeuler-22.03-lts-sp1:使用的Docker镜像(也可使用镜像ID)。可使用命令docker images查看当前主机上可用的Docker镜像。