Placeholder Image

Subtitles section Play video

  • COLTON OGDEN: Good morning, good afternoon, good evening,

  • depending on where you are in the world.

  • This is CS50 on Twitch.

  • My name is Colton Ogden and I'm joined today by--

  • DAVID MALAN: David Malan, also of CS50.

  • Good to see everyone again.

  • It's been a while.

  • COLTON OGDEN: Yeah, it's been a while.

  • When was the last stream that you were on, do you remember?

  • DAVID MALAN: Oh, it was good December.

  • I think we've played Zelda last time.

  • COLTON OGDEN: Oh, that's true.

  • It was not as much of an educational stream as today.

  • DAVID MALAN: It was very educational.

  • COLTON OGDEN: We could say a little bit of game development stuff.

  • DAVID MALAN: What game are we here to play today?

  • I'm all set to accrue some points.

  • COLTON OGDEN: It's a game called Docker.

  • I believe it stars a whale of some kind and some boxes on top of them.

  • DAVID MALAN: Indeed.

  • COLTON OGDEN: We have a bunch of people that are in the chat already.

  • DAVID MALAN: I see.

  • A lot of people have tuned in already.

  • Nice to see some familiar names.

  • COLTON OGDEN: We're almost at the magic number of 50.

  • We have 49 viewers currently.

  • DAVID MALAN: Oh, and what happens after 50?

  • COLTON OGDEN: Then we just get tons of-- just tons of money,

  • just showered with money.

  • Yeah, we have a lot of people in the chat.

  • There's a lot of regulars.

  • I shouted out a bunch of people in the chat,

  • but thanks so much for everybody who's joining.

  • Dan Nurell, Bavick Night, we have Belicures, Elias, Assly, Brenda,

  • Mr. Frigg--

  • who I think is a new person.

  • Kugie Snipers, We Be, ISO TV.

  • I think ISO TV was one of the first people.

  • DAVID MALAN: I'm impressed you can pronounce all these so easily.

  • COLTON OGDEN: I've gotten a lot of practice at this point.

  • M. Kloppenburg, thanks for joining-- another regular.

  • For Sunlight, Suraton, GP Guy.

  • We have an absolute ton of people.

  • DAVID MALAN: Oh, we've got a first-timer here.

  • 1Jacko0TS.

  • I don't know.

  • COLTON OGDEN: Oh, yeah, 1JackOTS.

  • Thanks so much for the follow layout.

  • They followed right before this stream as well.

  • DAVID MALAN: Nice.

  • Hello, Elasorsa.

  • COLTON OGDEN: Elasorsa, yeah, that's a new person as well,

  • and Adamantine Bipartite.

  • What's up, David and Colton?

  • What's up?

  • That's the first I've seen that name.

  • That's a long name.

  • DAVID MALAN: Yeah, we've got a lot.

  • Nice to see everyone here.

  • COLTON OGDEN: Yeah, Amed Osman, and--

  • DAVID MALAN: Another first-timer from Adam.

  • COLTON OGDEN: Yeah, M. Gonayni says hello.

  • WhipStreak23, there we go, another regular.

  • DAVID MALAN: 52.

  • Oh, we missed the 50.

  • We blinked and it was gone.

  • COLTON OGDEN: We did, yeah.

  • So what are we--

  • what exactly is Docker?

  • That's what we-- we sort of spoiled what we're talking about today.

  • It's not actually a game.

  • DAVID MALAN: No, I'm sorry.

  • So tune out now if you don't want to learn something really interesting,

  • though technically.

  • So Docker is containerization.

  • COLTON OGDEN: Oh, wait.

  • It looks like your laptop is not--

  • DAVID MALAN: Oh, we're not plugged in.

  • Oh, user error, apologies.

  • COLTON OGDEN: Sorry.

  • Sorry, that's my fault. I should have--

  • DAVID MALAN: And if Colton is going to tell some jokes here for just a moment.

  • COLTON OGDEN: Oh, man.

  • I didn't have any.

  • DAVID MALAN: Did you hear about the guy who--

  • I don't know.

  • COLTON OGDEN: Who forgot to plug-in his dongle?

  • DAVID MALAN: Yeah.

  • Here we go.

  • Let me go ahead and--

  • today's lesson will be about how to change your display preferences.

  • Here we are going under Scaled so as to do 720p,

  • which isn't actually a very high resolution,

  • but for our purposes of streaming technical content,

  • makes it all a lot more readable on the screen.

  • COLTON OGDEN: Oh, look, Brian's actually on the chat.

  • He says hello--

  • BrianU28.

  • DAVID MALAN: Oh, nice.

  • Please send all of your questions to Brian U, who is here from CS50's team.

  • COLTON OGDEN: Yeah, Brian I'm sure knows a lot about Docker too.

  • DAVID MALAN: So let's begin.

  • Again, so Docker is containerization technology.

  • But what does that actually mean?

  • Well, let's rewind a little bit.

  • Normally when you're running software it's

  • on your Mac, or your PC, or your server, or somewhere else,

  • and you have installed whatever operating system was installed when you

  • bought it or when you first set it up--

  • Mac OS, Windows, Linux, or whatnot.

  • The problem, though, arises in a server side environment

  • where you want to run multiple applications.

  • Like CS50 has a whole suite of web apps.

  • We have the CS50 Sandbox, CS50 Lab, if you started tuning in to CS50X 2019.

  • We have help50, and style50, and bunches more.

  • So all of these apps have their own dependencies, like certain software,

  • and libraries, and frameworks that they need.

  • And frankly, not all apps need the same things.

  • And so in yester year, only five plus years ago, we, CS50,

  • used to have a centralized architecture for all of our web apps.

  • We had what were called vhost servers, virtual hosting servers

  • running popular web server software called Apache.

  • And what we would do is we pretty much had

  • to find the greatest common denominator among all of our apps

  • and actually install on those servers every library

  • and every piece of software that every app might possibly need.

  • The problem, of course, is that eventually you

  • run into incompatibilities.

  • One needs this version, another needs that, and now you're just out of luck.

  • And if something breaks in one app, it's not isolated from another,

  • and so one app can take down the rest.

  • So Docker ultimately is about isolating your applications from one another.

  • COLTON OGDEN: And so it says on your web page there, what is a container?

  • I'm guessing that the whale and the boxes on top of the whale

  • are like a representation of this idea of containers?

  • DAVID MALAN: Indeed.

  • We can pull this up if I enhance this image up here.

  • So Docker is a company that also makes and contributes

  • to open source software, which is also called Docker.

  • And indeed, you can see those little boxes represent those big--

  • we call them containers.

  • That really big--

  • COLTON OGDEN: Shipping containers.

  • DAVID MALAN: Shipping containers that tractor trailer trucks generally

  • cart around.

  • So it's actually pretty cute.

  • The whale is instead the ship and it's holding up the containers,

  • and it's really cute.

  • If you want to go ahead today even, install Docker, at least on Mac OS,

  • the first message that the software will print for you is,

  • "We are whaley glad to see you."

  • COLTON OGDEN: Wow, that's cringey.

  • DAVID MALAN: A little bit, a little hard to say.

  • But I should say, some folks out there might be familiar perhaps

  • with virtualization software.

  • For instance, has anyone used VMware, or Parallels, or other such tools?

  • Those are--

  • COLTON OGDEN: That's certainly been around for a while, a long--

  • DAVID MALAN: A long time.

  • COLTON OGDEN: Much longer than Docker has.

  • And I know I've definitely used it quite a bit.

  • DAVID MALAN: Yeah, and we use those too.

  • But with virtualization software, or virtual machines,

  • or virtual machine monitors-- bunch of different ways to describe essentially

  • the same thing--

  • you would have to run, you could run, multiple operating systems

  • on your same computer.

  • Essentially, each OS in its own window.

  • The problem with a VM or virtual machine is

  • it virtualizes the entire hardware-- the CPU, and the memory, and the disk,

  • and the files, and everything.

  • So it actually is a lot heavier weight.

  • You have a lot of redundancy.

  • If you have Linux in your virtual machines,