To use the grid you should wrap all columns inside a .row element. For a basic layout you probably would want the row to be inside a .container or .container-full to have some space around the columns.
For better understanding the horizontal padding is highlighted. The row has a negative margin.
container
.col-6
.col-6
The grid has 3 breakpoints (sm 600px, md 800px, lg 1200) and 12 columns. It is designed to work mobile-first. You can set col-<1-12> and overwrite the behaviour with col-<breakpoint>-<1-12>.
<div class="row">
<div class="col-12 col-sm-6 col-md-4 col-md-2">
<div class="col-12 col-sm-6 col-md-4 col-md-2">
<div class="col-12 col-sm-6 col-md-4 col-md-2">
<div class="col-12 col-sm-6 col-md-4 col-md-2">
<div class="col-12 col-sm-6 col-md-4 col-md-2">
<div class="col-12 col-sm-6 col-md-4 col-md-2">
</div>Offsets are applied the same way. For example offset-md-2
You can also use auto margin classes for the columns.