Installing containers

This chapter describes container installation topics. Container installation topics include:

Container installation prerequisites

Ensure that prerequisites are met before installing an SR Linux container.

Minimum system requirements:

  • CentOS 7.4 system, kernel 4.17
  • 8 GB RAM
  • 8 core CPU
  • The host machine user must have sudo privileges (preferably passwordless)

Minimum software requirements:

  • Docker CE installed, minimum version 18.09:

    https://docs.docker.com/get-docker/

  • Python version 3.6 or later
  • srlinux-vX.Y.Z-N.tar.xz file (for the SR Linux Docker image)

    where X = major, Y = minor, Z = patch, and N = build number

Note: Containers that are instantiated without a license key from Nokia are active for 14 days only.

Launching a container manually

This procedure manually launches a single container.
  1. Copy the srlinux-vX.Y.Z-N.tar.xz file into ~/ of the CentOS 7 host machine.
  2. Load the Docker image. To load the image, the user must have root privilege, or be part of the Docker group.
    $ docker image load -i ~/srlinux-vX.Y.Z-N.tar.xz
  3. Check that the Docker image was imported correctly:
    $ docker images
    REPOSITORY TAG          IMAGE ID              CREATED         SIZE
    srlinux 19.11.1-        3e77d45745f2          7 hours ago     1.3GB
    
  4. Launch an instance of the SR Linux container on the host using the options in the following command line. This command must be entered in a single line. See the note that follows about copying text from a PDF file without broken lines.
    $ docker run -t -d --rm --privileged \
    --sysctl net.ipv6.conf.all.disable_ipv6=0 \
    --sysctl net.ipv4.ip_forward=0 \
    --sysctl net.ipv6.conf.all.accept_dad=0 \
    --sysctl net.ipv6.conf.default.accept_dad=0 \
    --sysctl net.ipv6.conf.all.autoconf=0 \
    --sysctl net.ipv6.conf.default.autoconf=0 \
    -u $(id -u):$(id -g) \
    --name srlinux_dut1 srlinux:vX.Y.Z-N
    sudo bash -c '/opt/srlinux/bin/sr_linux'

    where X = major, Y = minor, Z = patch, and N = build Number for srlinux:vX.Y.Z-N

    Note: Copying a long command string from a PDF file introduces line breaks. As a workaround, copy the text string and place into Notepad++. Highlight the text and select CTRL+J. The result is a single line with no returns.
  5. Check that the docker container has been created with the name 'srlinux':

    $ docker ps

     CONTAINER ID  IMAGE               COMMAND             CREATED     STATUS   PORTS   NAMES
     9d5dbd03f7f8  srlinux:19.11.1     "/tini--fixuid-q.." 3 mins ago  Up3 mins.     srlinux_dut1
    
  6. Turn off the Docker0 Tx checksum offload:
    # sudo ethtool --offload docker0 tx off
  7. Open an SSH session to the DUT using the following credentials:
    • username: admin
    • password: admin
    # ssh admin@$(docker inspect srlinux_dut1 --format {{.NetworkSettings.IPAddress}})
    admin@172.17.0.4's password: 
          ___         ___                               ___         ___         ___
         /  /\       /  /\                  ___        /__/\       /__/\       /__/|
        /  /:/_     /  /::\  ___           /  /\       \  \:\      \  \:\     |  |:|
       /  /:/ /\   /  /:/\:\/__/\         /  /:/        \  \:\      \  \:\    |  |:|
      /  /:/ /::\ /  /:/~/:/\  \:\     __/__/::\    _____\__\:\ ___  \  \:\ __|__|:|
     /__/:/ /:/\:/__/:/ /:/__\  \:\   /  \__\/\:\  /__/::::::::/__/\  \__\:/__/::::\____
     \  \:\/:/~/:\  \:\/:::::/\  \:\ /  /:/ \  \:\/\  \:\~~\~~\\  \:\ /  /:/  ~\~~\::::/
      \  \::/ /:/ \  \::/~~~~  \  \:\  /:/   \  \:\/\  \:\  ~~~ \  \:\  /:/    |~~|:|~~
       \__\/ /:/   \  \:\       \  \:\/:/     \__\::/\  \:\      \  \:\/:/     |  |:|
         /__/:/     \  \:\       \  \::/      /__/:/  \  \:\      \  \::/      |  |:|
         \__\/       \__\/        \__\/       \__\/    \__\/       \__\/       |__|/
    Hello admin,
    Welcome to the srlinux CLI.
    Type 'help' (and press <ENTER>) if you need any help using this.
    --{ running }--[  ]--
    
  8. Verify the application versions running on the system:
    # info from state system app-management application * | as table | filter fields pid author version
    A:3-node-srlinux-A# info from state system app-management application * | 
    as table | filter fields pid author version
    +---------------------+---------+------------+------------------------+
    |        Name         |    Pid  |  Author    |       Version          |
    +=====================+=========+============+========================+
    | aaa_mgr             |    2189 | Nokia      | v20.6.0-13-gc6a313b84c |
    | acl_mgr             |    2198 | Nokia      | v20.6.0-13-gc6a313b84c |
    | app_mgr             |    2131 | Nokia      | v20.6.0-13-gc6a313b84c |
    | arp_nd_mgr          |    2207 | Nokia      | v20.6.0-13-gc6a313b84c |
    | bfd_mgr             |         |            |                        |
    | bgp_mgr             |    2650 | Nokia      | v20.6.0-13-gc6a313b84c |
    | chassis_mgr         |    2216 | Nokia      | v20.6.0-13-gc6a313b84c |
    | dev_mgr             |    2155 | Nokia      | v20.6.0-13-gc6a313b84c |
    | dhcp_client_mgr     |    2228 | Nokia      | v20.6.0-13-gc6a313b84c |
    | fib_mgr             |    2237 | Nokia      | v20.6.0-13-gc6a313b84c |
    | gnmi_server         |    2473 | Nokia      | v20.6.0-13-gc6a313b84c |
    | idb_server          |    2180 | Nokia      | v20.6.0-13-gc6a313b84c |
    | isis_mgr            |         |            |                        |
    | json_rpc            |    2476 | Nokia      | v20.6.0-13-gc6a313b84c |
    | l2_mac_learn_mgr    |    2248 | Nokia      | v20.6.0-13-gc6a313b84c |
    | l2_mac_mgr          |    2258 | Nokia      | v20.6.0-13-gc6a313b84c |
    | l2_static_mac_mgr   |         |            |                        |
    | lag_mgr             |    2267 | Nokia      | v20.6.0-13-gc6a313b84c |
    | linux_mgr           |    2276 | Nokia      | v20.6.0-13-gc6a313b84c |
    | lldp_mgr            |    2657 | Nokia      | v20.6.0-13-gc6a313b84c |
    | log_mgr             |    2285 | Nokia      | v20.6.0-13-gc6a313b84c |
    | mcid_mgr            |    2294 |            |                        |
    | mgmt_server         |    2303 | Nokia      | v20.6.0-13-gc6a313b84c |
    | mpls_mgr            |         |            |                        |
    | net_inst_mgr        |    2312 | Nokia      | v20.6.0-13-gc6a313b84c |
    | oam_mgr             |    2325 | Nokia      | v20.6.0-13-gc6a313b84c |
    | ospf_mgr            |         | Nokia      |                        |
    | plcy_mgr            |    2667 | Nokia      | v20.6.0-13-gc6a313b84c |
    | qos_mgr             |    2471 | Nokia      | v20.6.0-13-gc6a313b84c |
    | sdk_mgr             |    2335 | Nokia      | v20.6.0-13-gc6a313b84c |
    | sshd-mgmt           |    2923 |            |                        |
    | static_route_mgr    |    2674 | Nokia      | v20.6.0-13-gc6a313b84c |
    | supportd            |    2140 | Nokia      | v20.6.0-13-gc6a313b84c |
    | vrrp_mgr            |         |            |                        |
    | xdp_cpm             |    2349 | Nokia      | v20.6.0-13-gc6a313b84c |
    | xdp_lc_1            |    2365 | Nokia      | v20.6.0-13-gc6a313b84c |
    +---------------------+---------+------------+------------------------+