Where does apt-get install get packages from?

Whenever you call apt-get update the repositories contained in the sources.list get read, this tells apt-get from where to get packages lists. This list get downloaded and stored in /var/lib/apt/lists for posterior use. These are lists of all packages available from the repositories you selected. Even if you remove your sources.list, this list will be available for APT. That's why you should always do update whenever you add/remove/modify a repository, to keep these lists updated.


How does the terminal know that chromium-browser is a valid package to install?

"The terminal" knows nothing. APT read all the lists in /var/lib/apt/lists and determine if the package is available. If the package is not found in any of the lists, you will get:

E: Unable to locate package <package>

Is there some list of all packages that can be installed?

This changes from repository to repository. Your local copy/list of your active repositories is found in /var/lib/apt/lists.


How does it find the packages?

$ sudo apt-get check
Reading package lists... Done
Building dependency tree       
Reading state information... Done

The line of interest is

Reading package lists... Done

which tells you that APT reads the list, from /var/lib/apt/lists.


apt-get searches for the specified package in the repositories given in the /etc/apt/sources.list file and /etc/apt/sources.list.d directory.