 Good morning. Good afternoon. Good evening wherever you're hailing from Welcome to red hat enterprise Linux presents. This is episode 26 building a home gaming server using podman So I before we go any further. Let me bring on my esteemed co-host We didn't chase him off last time So he's he's back with us today. Hey Brian. How you doing? Doing great. Hey, Eric. Oh doing good doing good Had a had a week off got through the kind of the two days of oh my gosh I have all these emails all these chats all these things and so now today. It's kind of back to business as usual Yeah, I'm super excited for today's show and talking to our guest Yeah, let me let me bring him on Hello, hello, mr. Scott McCarty. Why don't you in out of the green room? You are out of the green room much to my Much against my instincts my instincts told me to just leave you back there But you know wouldn't be much of an interview if we left you in the green room So why don't you introduce yourself tell folks what what you do here at red hats and and then we'll introduce our topic Yeah, that's cool. I am a product manager for rel server and Historic I've been the product manager for rel containers for like three and a half years And so this is a recent thing where I've not taken over rel server And product managers are people I'm good with people. No, uh, I am I take the requirements from the customers to the engineers and they're like you do that directly No, I have an assistant that does that. No, I don't that's a space reference But no, I uh, I yeah, I talked to customers and talked to engineers and make sure things happen So what would you say you do here? So so free PSA week I do an hour about an hour of work actual real work So for those of you that are completely lost and confused Clearly you're not children of the 80s or 90s If you work in technology or if you work or used to work in an office Office space is required reading to to be able to continue in in your job So that that's our free public service announcement for for this episode go watch office space. It's I I watched it about a year into my first First real it job and was like, I think they filmed this in our office because we have all of these people Yeah, I've joked that every kid should have to watch that like when they're graduating college All right, so it it took us less than four minutes to digress so I I think that's some kind of a record But one last thing I wanted to I wanted to point out was I did represent, uh, Scott I I wore my container shirt today Just for you Oh good All right, so today I I wanted to we're we're in december. We just came back from from Thanksgiving break. So I wanted to do something a little bit different. Uh redheader prize linux is near and dear to my heart and has been for for a couple of, um, probably about 15 years or so now and, um So I I wanted to do I wanted to talk about something that we haven't really addressed on the show But I also wanted to I wanted to also have some fun with it We're we're kind of towards the end of the year. So let's let's do something fun. So why not, uh, why not talk about Containers from a home network perspective. Uh, why not talk about, uh, podman? So we we kind of iterated on this a little bit and we came up with, um I kind of want to relive my early days as as a systems administrator um So when when I bought my first server, okay, it was it was a it was a desktop with a couple of extra drives But my first home server It's like I need to do more sysadmin type things I can't really test on work systems because that will just break things So I bought my own system set it up at home. It's like, okay, great. Now what? so I I a friend of mine had gotten me hooked on on minecraft and uh So the those two worlds kind of collided really quick goes Hey, guess what you can actually run your own minecraft server and it runs under linux so My my first home lab project was to spin up a minecraft server here at home And so that's that's that's kind of been the that's been kind of my hello world approach to any time I do something is instead of getting a web server. It's can I run minecraft on it? uh, so when I started learning docker when I started learning docker compose and then When I moved to rel8 and moved to podman. It's like can podman run docker or can podman run minecraft? So that that that was kind of uh, that was kind of my trip down memory lane So scott, I wanted to ask you what what is podman? How does that relate to docker? Just kind of give us the the basic The basic overview Yeah before real quick before I do that was going to do a shout out to I I believe I don't know how to say your name. I believe it is Shantanu But uh, we've been debating on twitter about whether containers even matter so it's been actually fun, but uh But uh, so yeah, I can see you but sadly I can't respond in the text So that's why I had to do this uh verbally uh, so So I guess you have to create an account before you can respond to the text So you can actually uh this the great great point Uh piece of housekeeping. We have a discord server. I'll get the invite link posted into the chat You can also join us on twitch or on uh youtube So if you just pull up this video, uh, you can post as your youtube account Or if you're a twitch person you can respond to the chat in uh in uh in twitch chat Uh with that being said as as we go through this feel free to post your questions feel free to to to interject as as we go through this, you know, this is We're the ones on on video right now, but this this content's really about all of you So feel free post your questions, uh and and get involved Uh, now I understand restream. I see that it it has a little icon next to it. So like those are all youtube people responding Yep That's cool Uh, the joy of being a technologist you find yeah, I'm like it's everywhere How do they read this web stuff? All right, no, so Good segue into pod man Um So pod man, when did we start pod man? I don't know four ish years ago I was in the room with dan walsh and matt hicks and we were uh, I don't know we were red hat stuff which usually involves like giant meetings where like everyone starts fighting and uh Back in the day the old school red hat where like we would just like getting together before the before the pandemic And we would like all all debate Vigorously debate we didn't fight per se like we're all nice to each other We just are very passionate about our feelings about things and like daniel reek and dan walsh are all Everyone has you have to get loud And uh, and we were like well, what should we do blah blah blah and we came up with cryo We came up with the idea of cryo, which was um essentially we we what had happened is we kind of looked at docker And what it was and we're contributing heavily to it And there were some challenges with the comedian things which which I don't want to bring up old bad bad blood But like there were some challenges with the community and some of the things we wanted to do And we had a very different vision about Like we viewed the container tools as a part of the operating system And like we viewed there's all these if you look at what a container is It's essentially a user space definition of a bunch of tools in the operating system And so it's like you fire up a process, but here's how you fired up you add these security constraints Uh, you mount this file system, but here's how you do what you do with this special stuff. Um, you uh You do the links you do overlay fs like all these different ways that you basically take primitives in the operating system be um files or ports or process controls like s e linux or set comp um and things like that or image layers and the way you merge them together again, you're using things like uh like overlay fs or at the time we were using uh lvm uh Mappings basically to do it back in the day And so like we just looked at like we viewed it as like flour sugar eggs and water and how to make a cake And the the docker vision was kind of more like this all-in-one thing Is there these concepts about portability and what they meant and how everything should pull images from docker hub and there was just it was uh At the end of the day it was kind of there's just a fundamental difference the way we looked at like This as part of the os and they looked at us as that was the new layer that you should like program to um and uh So long story short we looked at how could we build something that we thought like for example a line better to kubernetes And so we built cryo and so cryo basically versions exactly with kubernetes and has the exact features In it that that whatever version of kubernetes needs so like with kubernetes 117 came out We had all the features we needed in cryo to manage that you know To basically work perfectly with that phrase and we've always done that since the beginning I think we started me 1.10 ish all the way to like 1.21 or wherever right now The the dot versions of kubernetes would become less exciting as as they've gotten larger And so I don't stay as up today, but Then we looked at okay, so we looked at cryo and went oh that's pretty cool Even before that we had looked at creating a utility called scopio that just was able to move images around It was a very simple concept where you could just like move container images around from like one registry to another And the idea with docker is you had to you had to pull to the local stars and push back to another registry And it just seemed hokey you're like why can't I just copy from that registry that registry? These are just fancy file servers. I should just build a copy from here to here Like if you're in unix, you can just you know cp or rsync something from one nfs server to another based on the file system You know or you can use like uh, you know, uh, what's the program I use uh Oh my gosh, I forgot the name of it But there's I there's this one that I use that's cloud based you can basically copy from like dropbox to pcloud Our clone our clone is freaking awesome You could copy from anything to anything and there's no concept You don't have to pull it down and then push it out You just copy from here to there you like so we we looked it again We just viewed it as like unix tools and then eventually we had built scopio we built cryo And we were like we need something that's like Instead of a client server model like docker is where you're like you connect to it And it's a server and it's very like web 2.0 world ish thinking like web services and all this magic We were like honestly the old school stuff here is better to just have this like fork exec model because that's what the server The docker server was doing anyway. And so we looked at it. We went well let's just have Let's just have a fork exec model and then There was a whole bunch of work going on in this community called rootless, which was this other project that was these technical guys Akira I think is one of the main guys and there was a whole bunch of other people are working on this concept of Running containers as a regular user and they're working on weird network stacks to do things And we were like, oh wow this fork exec model Works really well with this idea of running it as a regular user And so then like I would say that's when got rid of the demon Ran it as a regular user and podman the true like podman was born then like when we were like This is our niche like this is where like this really shines like you just run a utility in your home directory And uses storage in your home directory and it uses ports You can can control and it can weave together the parts of the operating system that you control Which is exactly what unix would be To then manage a process in a way that's very convenient using an image-based format And so that is a super long-winded like history of it But like that's pretty much how we got to where podman is today and like like what it is And it's it's essentially a command line utility that has an interface It looks very very similar to docker because they had a great interface. I mean it's a very elegant way of running I call it the best proof of concept ever built like it was amazing like when you looked at it But then the back end you're like, I don't know if I really like this back end thing That's going on here behind the scenes But the interface was very elegant and so I give them very much props for that So one thing you you mentioned that really jumped out at me was this concept of of rootless So let's let's dive into that a little bit. How is that different than than docker? How does that what advantages does that bring? So by default docker runs as root And like I mentioned this rootless sort of experimentation I call it like almost like a separate project With some stuff that was going on on the side that there were people looking at doing rootless stuff They called it and uh, there's even a rootless project Docker looked at how to integrate it in their stuff as well But the problem was is like if you run a demon rootless in your home directory That's still like hokey, right? Like it becomes very obvious that that's hokey when you run it in your root in your home directory You're like, oh, I could just run I have 62 users on the system I'll just run 62 demons all running as these different people and that's how I'll start containers like that That falls apart really quickly on like on like any shared user system. So like HPC that falls apart Um, it also just there's this thing in technology. This is hard to explain to marketing people But you just know when stuff is right You're like, it's just right it feels right and that's what you want Like I don't want a demon running in my home directory So like historically docker just had a single demon running as root and that was great Again, it was a great poc. Like there's a proof of concept. It works great. You're like, this is amazing We put the proof of concept in production all over the place as root, which was terrifying Um But that's just how technology is you adopt things because they're convenient Um, and and then podman on the other hand, you can run it as root or you can run it as user It doesn't really matter. It's just a utility. It's like bash. Like you can run bash as a regular user or as root There's no reason you can't do that and I call podman. It's just bash for containers Like it's just it's got a slightly different interface. You don't interact with it like bash You don't type commands on it Are in it, but you run, you know, it has the docker interface basically from a ci perspective But it's like bash. It's just a utility that you run whether it's root or not So that's the main difference. It's like a client server model versus just some utility run like bash So scott one question I had is we hear a lot about kubernetes open shift You know all the time. Where does podman fit into all that? Yeah, we view podman so so So this goes back to an article. I just wrote on on on uh network world recently where I talked about like why did docker change the world so like Docker changed the world because like paths was so I go back to like 2008 people forget this history and I get always frustrated Actually, I was I was joking. This is again. I was I was debating with shan Uh shantanu with uh about like some of these things I just seen this movie time and time again And I see the movie over and over again like these debates and they're just patterns. So like so like one of them is is uh You know should everybody's been saying that everything's going to the cloud forever and and certain things are for sure All a lot of server workloads are going to the cloud. I don't disagree But there's still a huge cadre like 95 of developers like to run things locally on their desktop like Like what's the first thing you do if you go to learn a new programming language? Like I fart around I like bring something local and I like I want to like do my interloop development locally and like docker knows that The company docker knows that I know that red hat knows that I mean a lot of people in red hat know that although There's debates in red hat because we're a big company um There are times where like uh vdi for example makes sense like that's the same debate in virtual machines, right? Like does vdi work like vdi is really elegant for certain solutions But it still feels better in a lot of scenarios to have a vm locally And I'd say the argument is exactly the same with like uh kubernetes versus podman like Podman is kind of the thing you run locally. It works really well in a development environment You can like do your interloop development very quickly. Um, we're adding features like even being able to run kubernetes yaml locally Um, we're extending features to basically run this on pod like on mac and windows A lot of people don't know we have we've been working on a patch behind the scenes to do the podman machine Stuff that if you've seen the mac version of this where you just type like podman machine Init podman machine start and you have a virtual machine Running on a mac that basically runs podman and you can just use your podman utility to connect into that vm and do everything Very similar to docker desktop. We have a podman for mac working pretty well today Although we've had some bugs and things But but the the is elegant like uh, this is one of the hard parts when you're like early in code You can once you see the whole thing hanging together like oh this cathedral will be beautiful Once we like actually get all the glass in and everything but like the glass is not in on all these things So like don't don't use these in production Don't think you're going to roll this out to 10,000 developers today But the but the bones are there and it's really elegant So like uh, you can run two commands and run podman and mac and we have a patch in the works That should be out literally almost any day Um for to do the same thing on windows where you just type podman machine in it Podman machine start and magic happens behind the scenes and next thing you know You can type podman run and it just starts running containers And it looks like they're all running locally But they're actually running in a vm in mac and windows with a linux vm behind the scenes of fedora vm So if you look we're basically trying to make podman like really replace that like Desktop use case I'd say is a huge chunk of like our three-year vision And then and then I would say like single node servers where you're like I don't want to like fart around with kubernetes because there's too much There's it's just like I have a big honking oracle database and like a web app and you're like And that scenario I don't really want the oracle database restarting 42 million times And I and I just want to build a like fire these two things up with system d and let them run forever Just like I did with processes But I want to use I want the efficiency of container image management because like container images Are still really elegant and that like they're well defined when you use a docker file or a container file They're easy to share. They're easy to upgrade You're like, let me do from rel 9 and then see what breaks and like rebuild this thing And now I could build it out of band once I get it to work, right? I could just like go from rel 8 to rel 9 and just like update the app and swap it out And you know the data is all the same and so like it just makes upgrades downgrades rollbacks You don't have to do things at 2 a.m. Anymore. You can do them at, you know, 4 p.m Before you go home and you're like, oh that just worked. If not, I just roll back. I don't care. Um I've actually experienced this. I've been running my blog and my Request tracker and my key and containers for about a year and some change I think a year and a half and like I'm gonna be honest with you. I still get that feeling every now and then when I go to upgrade I'm like, I haven't touched this thing in a long time I'm like, do I really want to mess with this and then I'll I'll like I'll like Top type pod man build. I even have some scripts to like rebuild the I'll just run the script I'm like, okay that all worked. I'm like, let's restart and see what happens and it works. I'm like, oh, that's awesome Like it's so much better Then like when you would have to like back up all the data and you're like, I'll let me back this up And do all this crap and fart around and like and then like try to upgrade They would break halfway and you're farting around now if it breaks. I'm like, I'll just mess with it later I can do the rebuild later because it's just a container and so I don't have to run the new version of the image I'd say those are that that that single node server use case and that desktop You know mac windows linux use case are probably the two biggest places I think pie man is awesome because you can like say you're running open shift in production You can bring that kubernetes yaml back from prod run it dev You know run the whole app. It'll fire up three four five containers Whatever it takes to build the app change your little part test it locally do the commit Let it go through ci cd roll it out and prod and it works back on kubernetes and prod And when you have a scale problem absolutely kubernetes is the most elegant tool to do that But when you don't have a scale problem a lot of times it is really elegant It's just I have a simple tool that's just like a yum pod man install pod man That was a lot of words It was a lot of words and uh, you did get a question that I wanted to surface from uh, joshua in the chat Yes, is that on m1 max or just on intel? So i'm not sure we're at with m1 support. I think we're very close like um, I don't know right off time I know a few weeks ago. We were saying it was only a week away and like we've been we've been dilly dallying figuring out They're basically what was happening is it was a dependency problem. There's uh, we're using like I forget what they're using libvert or I forget what they're using behind the scenes But uh, but there was some patch they had to make and then had to get into brew and then like so there's like dependency chain Problem where it's just blocked There's an actual patch and this works and we've done it on like m1 max and we've gotten working locally We just don't have the public version working all the way yet I don't think it may actually be working But I I think I would have heard somebody squealing about it But ashley and our team worked on she's got really elegant like it works really well We just got to get the patches out there in brew basically And then that highlights something longer term I think brew might not be the answer for the red hat way of doing it We just want it in brew today because it's a very fast inter loop iteration process compared to Like download this thing from red hat.com, but I am very much investigating like what is the download this thing from red hat.com So like you ssl connect to red hat.com download a thing install it on your mac and the same process happens We do a podman machine in it podman machine start, but it's probably rel bits and it's you know Sanction from red hat and you go from this entity and you transfer it to you And it's just those two entities instead of like going messing We've had some customers say like we can't download stuff out of brew. That's crazy talk and I'm like, okay That's fair. I think I think brew might be crazy talk long term, but but it works good for now So whenever I've talked about podman over the last few years I would say the question that always comes up is docker compose Can you tell us about What what can you do with podman and docker enclose? How does that work? Is there anything? Yeah, maybe Let me see if uh, should should I share my screen? Hold on. I just tweeted about something about this Let me let me bring up in a link Uh Where's it at? Yeah, here we go actually, I don't know Do you want to oh good. All right. You're letting me show my screen Here, let's look at this. So I just we just published this literally like yesterday before Um, so this is my favorite table. We worked on this behind the scenes a lot so There's would you would you mind blowing up your your text for us? Oh, yeah. Yeah. How about that? Can you see that better? It's a little bit better. Yeah I'm not as not as young as I used to be. I just had a birthday last week. So I'm I'm going blind Oh, yeah, no worries. I feel your pain. So I try to break this table down in like five different things here. So so This podman composed world is more complex when people realize like so I kind of highlight here like in rel we support the podman socket slash api so Excuse me as a podman. Well, whatever Nowadays the podman api is amazing and it's pretty darn docker compatible. I'd say we're acting like 99 percent There's just like certain few little network things and things that can't be compatible because of the way the underlying tech works But we're even working on fixing a lot of that Um, but bottom line is we support the podman socket api So like if there's a tool that talks to this podman socket api and it and it breaks the api breaks in some way to where The docker compatibility doesn't work. We pretty much consider that a bug and we try to fix it So that's the first layer that you need to think about. I was like, okay So when you run pot basically podman has a system sub command and you can basically fire up a socket There's like a socket and you run it as a service now You can run this as root or as non-root just like I mentioned You can run a demon in your home director if you want system d can actually do this Um, again, it's not the most elegant. I don't like it But it's what you got to do to be docker compatible if there's a tool that's looking for an api So you've got to have an api socket. So we support that Um, the next layer up though is people go. Oh, well is podman is docker compose support? I go, well, do you even really need podman compose and so here? Let me cube dash play container file. So so this is kind of the next layer up I go, well, do you really need that like could you just do this? So like we've added some new features to podman where we're like, can you just use kubernetes yaml instead? Can you do a play kube and then like use the kubernetes yaml and then do a kube play down And uh, we may actually change this interface because we got some complaints about the ux But but for now single command down single command up That's pretty cool. Like remove the whole thing Like you're you're getting the the bones of an inner loop similar to podman Or or i'm sorry docker compose where it's just docker compose up docker compose down Except that you're defining it with kubernetes yaml instead of compose And to me the advantage of that is you can go back and forth between dev and prod really easily because if kube is prod You can go back to your desktop by just like grabbing the kube out of kubernetes the kube yaml and then just running it locally So that's the next stop on the do we support docker compose train and then the next stop is like, okay Well, there's this other thing called podman compose. What is that and we go is it supported in rel? No, not really. We don't support it. You'd have to go get this utility yourself This works. It's tested upstream It's part of the containers project This team really works hard to make it compatible with podman What it does is it actually uses a podman cli So you don't have to have a demon running so there's some advantage there It has some other things where it can do some speed where it can copy things to do some things because there's no socket So it doesn't have to copy data up through a pipeline. It just does fork exec So it has direct access to data. So there's some there's some pluses and minuses It may have some compatibility issues with docker compose a little bit. Um, but it works mostly with compose It's an interesting project But again, get it as part of rel because we don't really sanction it as the thing to do We kind of like really think this is probably the long-term solution But we still want to unblock this So if you want to bring your own podman compose and it works for your compose falls great The next level is like docker compose 1.0, which is a python script. We go. Yeah, that works We test it. We actually test it upstream. It's part of our ci CD We make sure that this works if you bring your own docker compose 1 it should work if it doesn't work We're pretty much going to consider it a bug because it's probably a bug between the docker compose If it's a bug in the socket api Because something's changed in docker compose and then it breaks something we will fix it If it's a problem in docker compose, obviously you're on your own you'd have to go figure that out Um, but it's an upstream project. So i'm sure you could work with the community to fix that docker compose 2 Is not supported either but it doesn't work like so the problem with docker compose 2 is it is like I believe it's a going binary if I remember right and it also uses package kit and some other stuff It basically fires off to sort of like subs api inside the docker socket and uses package kit And so like we're still working on this like what uh build Itself does support a lot of the package kit things that docker compose 2 wants And so we see a path pretty clearly to how like we'll be able to support it with the socket api We won't need build kit or or any of that stuff to make this work It'll just work built into podman because uh because podman vendors in builda and so it can do everything builda can do So we see a path to making this work adding it to our cicd and making it work But it doesn't work now warning these three options are not supported on rel But they'll probably work and we test them and if it's a problem with the socket api Then we'll fix it So like we tried to be as flexible as we could with this and unblock people But then still send them down the direction that we think is like the the longer term solution So it's a much more complex question than it sounds And that was that was that was a great answer. Yeah, that was Very cool One one other thing I've been reading a little bit about is is podman on podman and this is kind of Blown my mind a little bit. So can you talk about like what are some of the use cases? Well, first of all, what is podman on podman? And then why would I want to do that? Yeah, so first off, let me show you what podman on podman is Let's go out here to right out universal base image here I can I could make my screen bigger for eric since he thinks he's older than me even though he's not and Let's go to components and you'll see so this is right out universal base image This is I mean, this is our basic our freely redistributable Uh container image toolkit if you will it's a whole bunch of things It's a bunch of different container images. It's some yum repositories It's a whole bunch of things that basically make containers easy on rel If you look at this, so if you type in podman, you'll see that there's actually A podman container image. So this is a standalone image that you can basically run With podman on the host if you want And it's its own version. So like you can see here This is like the docker file that or container file that builds it. Um, and it does like, you know, uh Does some magic in here to make it easier to make them run better But at the end of the day, basically what it is is dnf install and it basically installs, you know podman and c run and some other things makes this work inside of container. Um, so the idea here is that like Okay, there's times I want to use podman because it has some cool feature Um, I want to run it on some cacd system somewhere But the cacd system only supports docker. You're like, well, no problem. You just run podman in docker Sometimes you're like, oh, I want to do some cool thing with podman. It does some weird stuff I need cool. You can run it in kubernetes So you can run podman in kubernetes as a container inside of kubernetes Another scenario that I see is people are like, oh, I have this old version of podman or docker We can't change because of blah blah blah corporate standards. Whatever reason we're stuck We're using an old we're using rel 7 and we need podman 3.4 or podman 3.3.1 And you're like, well, that's not going to happen because we're not going to update rel 7 But rel 8 container images are supported on rel 7 So now you can just run podman in a container on rel 7 and get access to the latest podman and it works Um, those kinds of scenarios basically I'd say podman on podman unlocks all these like edge cases That are just really irritating and you're like, you're like, uh, I just want access to the latest one I want it to work. Um, or maybe the newer version breaks something and you're like, I just need to use the older version But we have the newer version installed on the host You can just like run the older version. So it kind of like It's time and space it unlocks you like that's kind of magic with containers And so running podman in podman unlocks time and space between the different versions of Podman and or docker and or kubernetes and you can basically run podman in that and so UBI makes this completely freely Distributable and usable however you want so you can go use the ubi version of podman You can run it in sira ci or whatever online CICD provider you want, um as a container and it just it and it and as long as you There is some challenges. We're running a container and a container does require privilege So just a heads up it will break in some scenarios where you do need privilege a lot of the time of some kind But uh, dan walsh has a great article on Podman in podman and if you google that I think I could show you how to use podman inside of a container And he also has one and and urvashi They wrote these articles that are really deep and show you a lot of this uh in gory detail So if you really want to understand what's going on when you run a container in a container And when you need privilege and how you need privilege? I would recommend checking out this article and then one other thing a root I call it root inside and outside The container This is another one. I would recommend if you need to understand like what is going on when podman and podman and when you use A root inside out or you know inside or outside the container and when you use a user inside and outside the container Um, I think these are these are good articles So I'd recommend this little table is like a cheat sheet for you're like, oh, I'm root outside the container and then I run podman I'm inside and then it gets inception I could like create like a whole tale of this of like Running root outside the container running root inside the container then running podman as root inside the container Which runs another container as non-root and like you can get his Inception level deep as you want. I probably need to create the next Version of this table which makes your brain hurt Yeah, I took that table and made that a video on that too that's out on the red hat youtube That has the same information that scott presented in a video format if you want to see an overview of of how all this works Yeah, that is that is freaking awesome. I forgot to I forgot to bring that up Yeah, I remember when you created that and I saw that I was like, oh I was like this is I'm not as good at videos as you I'm like hardcore blog like I'm a I'm gen X old school Like I just write blogs I need other people to do cool videos like you because I just don't make as good of videos So this this is this is why I brought scott on the show today because I just sit back and Give him a question and let him talk for 20 minutes. Oh, I told him But but I told him right Before we brought him on the show. I told him there's a catch We spend the first 30 minutes talking about talking about the topic But then you got to put your money where your mouth is and I I sent a challenger way So let's let's pull up the terminal and uh, and let's let's see this stuff in action Yeah, this is this is where I joke about like how millennials want to see other people like Play video games and type commands and things. It's like very strange to me, but it's it's cool. Um Yeah, so I went out and set up for this I think you can see my My screen here. I'll show you I have a linode I did some hacky things that are funny that I'm not saying these are supported at all Like just a warning, but but I do have to brag about this because it's pretty cool So I basically imported rel 7 or rel 8 images out in linode and then I can like deploy from these Which is pretty cool not supported at all because again linode's not supported But I still think this is cool. And so I basically went out here and deployed this bad boy In their us east data center and then I am logged in over here So I just added some dns for this guy and we're out here And if you look this is like a rel 8 server it has pod man 3.3.1 Um And we were like, okay. So now we have an ip address. We have a rel server We have pod man and this is where I get off in it uncharted territory. I'm like I don't I don't even understand mine. I mean, I understand mine like I don't understand why people play it like I understand why like I actually I don't understand all no I I joke I get it It's but we're gonna try to run it now and I've never tried to run it definitely not in rel definitely not with pod man um, and I I went out and I started looking at this kind of, uh This uh tutorial and I was like, okay. I like blogs and this guy seems per this guy or gal seems pretty dialed in This looks like a very, uh This looks like a pretty impressive script here that like seems Like I wouldn't want to run this on like my box, but since it's like a linode I just set up. I'm like we could try this and see if it works And it looks like it uses a bunch of crazy Variables to set all kinds of things inside of the container to like make it run right And uh, you want to you want to zoom in on that? Oh, yeah. Yeah here. Let me zoom in on this Yeah, so so this blog is apparently This guy figured out how to run minecraft in pod man and they blog he blogged about it back in 2019 So now we're in 2021 So we're what two years This guy james young is awesome. He got this to work like two years ago and uh So apparently you like set the you know root of blah some max min max ram some tz stuff Looks like it might be in australia because I saw down here In this in this looks like it might be setting australia Tz data that's terrifying. Let's see if that breaks on our system. I don't know what'll happen um And I don't know I don't know what all these things are but so I was thinking let's try to run this and then Let's see if it breaks or runs and then let's try to fix it if it doesn't work. It's kind of what I'm thinking So I had copied it out here ahead of time just to uh, just to like get it here, but Pod view idea idea. I wonder if I Like do I need to do that? I wonder if I need to do that. That's interesting in max ram I think there was something in here about passwords. I thought wasn't there You should try to change those if there are Is there anything in here about passwords? I thought there was some kind of password. Maybe there's no pass Maybe there's not I don't know much about running a minecraft server. So I don't know if there's passwords or not. I assume there would be Well, like like all technology answers. It depends. Do you want to be able to moderate your your minecraft server? Do you want to give certain friends like moderator privileges and give yourself like admin privileges? Because there's nothing worse than giving a friend of yours admin privileges Building this beautiful castle out in the middle of nowhere And then your friend coming in and and setting creative mode and deleting your castle essentially Just that's what I was thinking like Yeah, this is like basically like somebody could screw up your Your like lego castle like and you're like I don't want that Um, yeah, I don't know. I was just analyzing this a little bit before I run it But now we'll let's try and run it. This thing looks interesting. I don't know what this is This looks like I might be pulling in some kind of data like The version of the server Yeah, that's a good question minecraft server So I thought this was interesting. Let's see what happens. Let's run this. Let's get brave. What can we break right? I mean, I could just delete this thing so Oh, I I lied a little bit. I did try to run it once And so it so it let's do this podman images. It apparently did pull this image down And then uh, that's like a gig a little under gigabyte But then this happens and I don't know what the heck any of this stuff means. Let's see So this gets uh Some mods and mod packs may require java a so blah blah blah looking for blah blah Oh, here we go. Here's our air It is the weird data thing. Hmm. Okay. So that's that's a server mod. So we may Yeah, we'll do what should we download and we could probably go find this bad boy and download a new version But then it might not work with whatever's in here. So I probably will So let me see what the heck. Let's google this I'm guessing this is the name of it I mean worst case we can go out to itz g's Docker page and just pull down his his command. It's not nearly as as complex Ah, that's okay. That's good But this looks like all the mods all the mods. Oh, so this is like some like This is like some like super mod like Theme pack type thing that apparently you install. Oh, okay. So 2.0 I wonder if we should we just download the exact version? Sure one dot One dot. What the heck was it one dot? 5.2 1.5.2 That looks right Let's see what happens when I click on this Download Actually notice got the countdown I should do a dub. Oh, where's this countdown? It that expired click here if it doesn't work Oh, there we go. So now we should have this bad boy local. Let's see Um, let's go into downloads So this is on my local laptop Um I see so let's do an scp all the mods Zip to root at rel85.dc 3. Runch tools com slash root Oh, look at that magic Now we just got to rename it and we got put in slash data director anything so let's Yeah, I clearly didn't follow The linux hierarchical file standards because this should be in c slash data or slash SRV data is what I meant I'm anal about that. Why am I the only person that puts data in the right place on linux servers? So annoyed All right, so let's name it this bad boy, right? Wait a minute All the data to slash data then let's name this guy So So there we go. So now we have this all the mods Plug in pack if you will now let's go back to my home directory. Let's run this thing again. See what happens Oh Oh, that's right. Actually Uh pod man So what would it say is it it names the container when it fires up and so basically we just got to kill that So we'll do a pod man kill dash a and we'll do a pod man rm Dash a this just kills and everything and then we'll run this again and it'll start from scratch and Not found Let me not found All right, let's try this so is that I think that may be slash data within the container image. Yeah So on root slash backup slash data, uh, where is it at? So let's go all the mods Yeah, this is interesting. So where the heck do we put it? Maybe it's in our home directory. Maybe we just put it here Pack this is where I get I usually don't do this, but let's do this data I think I'm smarter and I think every now and then I can pull off something like this So again, I'm gonna kill it all start one more time No, didn't work. All right. Let's actually look at it and figure out where the heck it's actually wanted from Oh, so slash instance root slash instance slash data So let's try to create an instance directory Just so everybody knows I'm going to pay for this later in our in our next staff meeting because Scott and I work pretty closely nowadays. So he'll he'll get me back, but For the moment, I'm in I'm just enjoying giving him a hard time Oh, I'm like deep in this. I'm like This is what you like seeing so the uh, that she Let's do cf server that's strange So, yeah, uh, it has to be where the data directory is is the problem The the chat brings up a good point. Do we have uh, dollar roots? Defined is anything Yeah, let's see what that's a very good point root. Let's see with that server root slash instance slash feed the beast. Yeah, why do we have that? to to slash root This is a throwaway server But then that means that data It says slash root slash instance, which is interesting because there's an instance tree in the instance That was to be strange, but that's all right. Let's try this I should work There we go. I forgot you can just do an rm because it dies. It keeps dying so Still nothing The other suggestion is to kill just take the the mod pack out of the configuration Yes, that's what i'm thinking Except I don't know how the heck to do that if we delete this take out that dash e I would I would assume Yeah, so oh wait server root equals dollar sign root slash root slash instance So it should be so it should be slash root slash instance, right? And it should put it in data So it's root slash instance I feel like that should work It's in here Then do a pwd Let's try this Actually, let's do this because I'm I should because I am a bash ninja I will figure this out Okay, I'm not as much of a bash ninja There we go See what the hell this thing says Where is it doing the dashy atm blablabla where the heck is it at? Here it is Sash that But let's go up here. What's it doing? so server root slash server slash pod man, that's Yeah, then it it showed slash serve slash pod man Yeah, I mean the heck's it getting at that. Where's it getting that at? Must that script must suggest some variables up at the top Yeah, it must That's interesting Oh, there we go root da Oh, yeah, what was I thinking? Oh, I screwed up server root Oh, no, I screwed it up. So let's get that back from that thing. I just realized I did this wrong You're right. So server root Let's fix this because it's probably inside the container Thank you to tony harris who uh sent that in via google chat I was not reading that at all because I'm you know, I want to do it live if you're like I'm doing it live There we go. No, I think this will work We'll see Got root. I love it Yeah You know, you know what they say about doing live demos the more the more people that are watching you type the harder it becomes Using a server version of the ftb mod mod pack Yeah, let's just get rid of the the mod pack and just yep. Let's get rid of it come and we've given up that out all the All the whatever's you're done All the mods And the dash e cf underscore server if we just take out that line, we should be good run it again Up it doesn't like that. I don't know why you don't like that, but you're gonna get deleted. Yep And I didn't think commenting out a line even if you even if you put in a carriage Server mod is required to be set. Oh gosh I know. All right. All right. All right. I'm gonna we got 10 minutes left. So I'm gonna help you out here I know Oh, well We tried now after message it doesn't matter because I didn't like this anyway So I guess I can talk about what I didn't like about this anyway I didn't like that. This is running whatever this I Always at from potman run so this All the way down here this itz g Minecraft server latest I think it's built on some kind of Debian distribution and I was like to make me happy I would need to build this on ubi And or fedora and then I would be happy. There you go Yeah, let's uh, let's let's package and support Minecraft servers is is a ubi container image. Yeah, exactly. I'll put that in quay for mine I'll auto rebuild I'm sad. So how long? All right. So we got nine minutes. I tried I tried for like 20 ish minutes Oh, I wanted to give you a hard time But I was I was expecting us to pull through but uh, we we should have just gone to the to the docker image page because The original command to kick off this particular container is much less complicated. I mean I we can do that still We still have nine minutes Oh, he's he's rising to the challenge here. I mean, I'm just saying So that oh, yeah, this should work Way easier Oh The script is so awesome though. I wanted it to I wanted to make it work. Oops Now let's see what happens here I think fails in some wacky way. Nope. It actually worked all right, so Now let's see. So it's this port You see that guy, but now let me give you the ip address Yeah, let me uh, so Let's see if this bad boy works. Oh, you know what I need to do. I'll bet that won't work Unmanned kill dash a unmanned RM Dash a let's get rid of that guy. Let's do this dash Oh, actually that probably will work Yeah, that'll probably work All right, let's do it again I'm singing I don't know what I was singing for a split second I was thinking oh with the ip address blah blah blah, but then I'm like no that'll work just the port should work Is your is your firewall open? It should be okay, we shall see See We should be good All right, so wait, let me make sure you guys have that ip address again So this is the ip address I don't have a client so I'm hoping you do Yep, I got I got that shared. What's what's that ip address? It is 25 at 79 at 128 Dot 161 Uh-oh connection refuse Is firewall d running on that system? Um, I don't believe so known operation Hold on Double checking Nope I'm in my ip tables looks wide open Interesting what port did you try to connect to? Uh, let's try that. Let's let's specify the port should minecraft should know to Oh, it doesn't show it's running Well, that that would probably be part of the problem. Yeah, that one would think that would be it. Let me try this again What happened? Why did it die? Was it two five five six five something like that? Up it dies for some reason. Let me do this pod man See what's going on here. It is not running Oh equal you'll equal true. Okay, so you gotta apparently you gotta like Agree to the terms of service nowadays Everything has terms of service Gonna fail hold on give me one second. I gotta kill it And it'll work now There we go pod man Yes, yep, it's running now now you should be able to get it. Okay 25 565 and uh Yeah, let's 25 565 All right, and drum roll Drum roll No, hold on. Hold on. Let's let me refresh here Of course is looking for my home server too That ip address for correct 45 79 128 161 Let me double check 45 45 79 128 161, okay That looks right old Hey, what does that mean? That looks good No Oh Maybe I don't think you could have cut this any closer scott I know We started at 34 after the minute after the hour. So like we're only at minute 22 right now. So we're doing pretty good We spent 20 minutes screwing around with somebody else's script and then we got farther just going back to nothing Uh-oh time to out. All right. Let's let's try this one more time. We see load letter Again back to our our PSA go go watch office space if you don't get any of those references. Yeah, he loses his mind with printer Which any printer can do to you? I don't care what printer it is, right? Yeah, there there's a there's a client server mismatch. So I'm not sure if If we get there Yeah, it looks like some kind of client server. I mean if you had the latest greatest like I did on this server Too bad you are out of date your client is out of date Oh, then uh, then I blame brew because that's that's how this is installed of course if Once I get my streaming set up Yeah Well, once I get my client once I get my studio set up I'm going to have my linux machine front and center and then I'll have the mac over on the side for For the streaming things because let's let's face it. Minecraft just runs better linux to linux I love that people are trying to help in the chat. I love it Because like when you're powerless and you can't help troubleshoot. It's so annoying. You're just like short type It's like watching your mom type on it. You're like just type IP tables dash I've I've done that to my mom. It's not it's not good. Like I remember back in the day. I tried to make run linux. It was a bad idea I think we caught all the questions in the in the chat at least but uh I would love to point out podman work Podman yeah, exactly in the last 27 minutes All of our issues have been related to my running minecraft not to running Anything in podman first. It was bash which like I told you I was a bash ninja. I figured that part out But you figured out it was broken. I figured out it was broken 100% I knew it in my heart of hearts. I was like, this is not working, right Lynn I thought about the linode firewall too. I but I looked they don't have anything That's it So this this does Although this blew up in our faces. Maybe next time we'll actually try it before we go live But this makes me think that That uh I'm sorry, uh Go ahead and if you could repost that that vm question. I must have missed it there somewhere but uh One of the things I was thinking of was red hat actually has 16 licenses for rel instances and different people have virtual machines running on their laptops Some people have home labs. Some people spend a lot of time on linode or or aws or digital ocean Whatever the case may be It might be good to do like a mini series I know I've already committed to a satellite one next year But it might be good to do some what are some good things to do with those 16 subscriptions And I think a minecraft server would be a great one Maybe we'll actually maybe we'll actually go in and make sure it works before we bring it on air next time But uh, uh, it might be cool. Um So if if you got to twitter red hat rel is our is our handled hashtag rel presents It would be great if you just share your ideas tell us some things that you like to run in your home lab And with the last few seconds, I do want to share with uh, I do want to share The question that we that we missed and that was where's the pod man machine create the Create the vm So I think this was back during our our mac discussion. Um, so is that uh, Is that using virtual box? Is that live verts? And and like I said, I'm pretty sure that's under I think it's live ver And I think they had to do some patches to live vert to make the admin work And the live vert stuff is what they're waiting They're waiting to patch it up. They patched it upstream, but they're waiting to pull it into They were going to do some one-off fork patches in Excuse me in uh brew to like get us through until they patch it upstream and then pull the latest version blah blah blah I think that was the problem if I remember right It could have been another question, but I thought it was in relation to to sent us stream And so just to clarify if you're running pod man on sent us stream, you don't need to have a vm. It just runs natively so Yeah, exactly. You only need to vm on mac and windows Because containers are linux. They they are I I've got the I got the t-shirt and everything Has to be true I have folks. Thank you so much for for joining us today scott. Thank you for for being a part of the show Brian did we did we tease out what we're doing next in two weeks? Yeah, so so in two weeks, we're going to have a big fireside chat with a lot of different people from red hat and we are Hopefully going to have a lot of Interaction questions from the audience. So definitely plan on joining us in two weeks and bring your questions Yeah, I I think we might bring mccardy back and just troll him during the fireside chat about Why you couldn't get get a simple Minecraft server going under pod man Yeah, I can say thanks for embarrassing me I Given five more minutes. I think we could have figured it out, but you know We ran out of time in our maintenance window So we're going to have to go through and we're going to have to request a new maintenance window We're going to have to get it approved You're going to make sure to use the new cover sheet scott. Not the old cover sheet the new cover sheet New one, but I didn't put the cover sheet on Have you seen my stapler? All right, y'all before this deteriorates any further. I'm going to call it a day Join us in two weeks for rel fireside chat. That'll be the last rel presents of the year Brian, thank you so much my co-host scott our guests today Follow him on twitter at father linux. Of course. I am eric the it guy hindricks. So join me on twitter mastodon all the things at it guy eric and Until then we'll see in two weeks