Yeah I know, I can do it with min-height, or perhaps a table-layout… It's what you think, but you are not totally right if you do so. But before talking about right and wrong, let’s define our needs.
First at all, you need to build a basic HTML markup. I propose to you this one, but feel free to adapt or improve regarding your real needs.
Now some styles to make the magic works.
To be clear: today, your website has to be responsive. That's why the CSS code I'll propose you is mobile first responsive.
* height using display flex.
* cols for being centered.
* stuck to the left.
If you need to keep a real good feeling about images, grab a solution among size and srcset attributes, or simply decide to replace flex: 1 1 300px; by flex: 0 1 300px; that allows cols being smaller but not bigger than 300 pixels wide.
I hope these comments will help you understand this very short code.Yeah, as you can see, it's pretty easy to do it work.
Sure, there are many other ways to make the same thing differently. Feel free to adapt it and make your own code.
Spread the word by sharing it.