check detail of ip with ifconfig

iptables -t nat -A POSTROUTING -o phone-conn -j MASQUERADE
iptables -A FORWARD -i phone-conn -o eth0 -m state –state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth0 -o phone-conn -j ACCEPT

also do not forget to set dns

https://www.cyberciti.biz/faq/howto-linux-bsd-unix-set-dns-nameserver/

I got this idea when I was reading this page

Share iPhone’s internet to Home network using a Raspberry Pi

First, add the GPG key for the official Docker repository to the system:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

Add the Docker repository to APT sources:

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

Next, update the package database with the Docker packages from the newly added repo:

sudo apt-get update

Make sure you are about to install from the Docker repo instead of the default Ubuntu 16.04 repo:

apt-cache policy docker-ce

Now Install

sudo apt-get install -y docker-ce

Check Status

sudo systemctl status docker

Output

● docker.service - Docker Application Container Engine
   Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2016-05-01 06:53:52 CDT; 1 weeks 3 days ago
     Docs: https://docs.docker.com
 Main PID: 749 (docker) 

Simulation = For analysis and study

Emulation = For usage as a substitute

A simulator is an environment which models but an emulator is one that replicates the usage as on the original device or system.

Simulator mimics the activity of something that it is simulating. It “appears”(a lot can go with this “appears”, depending on the context) to be the same as the thing being simulated. For example the flight simulator “appears” to be a real flight to the user, although it does transport you from one place to another.

Emulator, on the other hand, actually “does what the thing being emulated does, and in doing so it too “appears to be doing the same thing“. An emulator may use different set of protocols for mimicking the thing being emulated, but the result/outcome is always the same as the original object. For example, EMU8086 emulates the 8086 microprocessor on your computer, which obviously is not running on 8086(=different protocols), but the output it gives is what a real 8086 would give.