章节大纲

  • 解压 Labsetup 压缩包, 进入 Labsetup 文件夹,然后用 docker-compose.yml 文件安装实验环境。 对这个文件及其包含的所有 Dockerfile 文件中的内容的详细解释都可以在用户手册(注意:如果你在部署容器的过程中发现从官方源下载容器镜像非常慢,可以参考手册中的说明使用当地的镜像服务器)中找到。 如果这是你第一次使用容器设置 SEED 实验环境,那么阅读用户手册非常重要。

    在下面,我们列出了一些与 Docker 和 Compose 相关的常用命令。 由于我们将非常频繁地使用这些命令,因此我们在 .bashrc 文件 (在我们提供的 SEED Ubuntu 20.04 虚拟机中)中为它们创建了别名。

    $ docker-compose build  # 建立容器镜像
    $ docker-compose up     # 启动容器
    $ docker-compose down   # 关闭容器
    
    // 上述 Compose 命令的别名
    $ dcbuild       # docker-compose build 的别名
    $ dcup          # docker-compose up 的别名
    $ dcdown        # docker-compose down 的别名

    所有容器都在后台运行。 要在容器上运行命令,我们通常需要获得容器里的 Shell 。 首先需要使用 docker ps 命令找出容器的 ID , 然后使用 docker exec 在该容器上启动 Shell 。 我们已经在 .bashrc 文件中为这两个命令创建了别名。

    $ dockps        // docker ps --format "{{.ID}}  {{.Names}}" 的别名
    $ docksh <id>   // docker exec -it <id> /bin/bash 的别名
    
    // 下面的例子展示了如何在主机 C 内部得到 Shell
    $ dockps
    b1004832e275  hostA-10.9.0.5
    0af4ea7a3e2e  hostB-10.9.0.6
    9652715c8e0a  hostC-10.9.0.7
    
    $ docksh 96
    root@9652715c8e0a:/#
    
    // 注: 如果一条 docker 命令需要容器 ID,你不需要
    //     输入整个 ID 字符串。只要它们在所有容器当中
    //     是独一无二的,那只输入前几个字符就足够了。

    如果你在设置实验环境时遇到问题,可以尝试从手册的“Miscellaneous Problems”部分中寻找解决方案。

    注意,在运行 docker-compose build 命令构建 Docker 镜像之前,我们需要编译并复制服务器代码到 bof-containers 文件夹中。