Skip to content

Latest commit

 

History

History
144 lines (109 loc) · 3.9 KB

DEPLOY_PRE_REQUISITES.md

File metadata and controls

144 lines (109 loc) · 3.9 KB
OpenAirInterface 5G Core Network Docker Deployment : Pre-Requisites

1. Install the proper version of Docker

$ dpkg --list | grep docker
ii  docker-ce                             5:19.03.6~3-0~ubuntu-bionic                     amd64        Docker: the open-source application container engine
ii  docker-ce-cli                         5:19.03.6~3-0~ubuntu-bionic                     amd64        Docker CLI: the open-source application container engine

Also python3 (at least 3.6) shall be installed.

$ python3 --version
Python 3.6.9

CAUTION: do not forget to add your username to the docker group

Otherwise you will have to run in sudo mode.

$ sudo usermod -a -G docker myusername

On Centos 7.7 host:

$ sudo yum install -y yum-utils
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
$ sudo yum install docker-ce docker-ce-cli containerd.io
$ sudo systemctl start docker
$ docker info

2. Create an account on Docker Hub

Go to docker-hub and create an account.

3. Pull base images

  • Ubuntu version: We need 2 base images: ubuntu:bionic and mysql/mysql:8.0

At the time of writing, the tested mysql version was 8.0.31

Currently we are working to support CentOS8 and RHEL8 distributions.

First, log in with your Docker Hub credentials. This is required if your organization has reached pulling limit as anonymous.

$ docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username:
Password:

On a Ubuntu18.04 host:

$ docker pull ubuntu:bionic
$ docker pull mysql:8.0

Finally you may logoff --> your token is stored in plain text..

$ docker logout

4. Network Configuration

CAUTION: THIS FIRST STEP IS MANDATORY.

Based on this recommendation:

$ sudo sysctl net.ipv4.conf.all.forwarding=1
$ sudo iptables -P FORWARD ACCEPT

CAUTION: THIS SECOND STEP MAY NOT BE NEEDED IN YOUR ENVIRONMENT.

  • The default docker network (ie "bridge") is on "172.17.0.0/16" range.
  • In our Eurecom private network, this IP address range is already in use.
    • We have to change it to another IP range is free in our private network configuration.
    • We picked a new/IDLE IP range by adding a /etc/docker/daemon.json file:
  • If you have to do the same change:
    • Select "192.168.17.1/24" range if it is free in your environment.
    • Select another IP range if not.
{
    "bip": "192.168.17.1/24"
}

Restart the docker daemon:

$ sudo service docker restart
$ docker info

Check the new network configuration:

$ docker network inspect bridge
[
    {
        "Name": "bridge",
....
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "192.168.17.1/24",
                    "Gateway": "192.168.17.1"
                }
            ]
        },
....

Here you have 2 choices: