Visual Studio Toolbox Live - Using Docker Containers in Visual Studio

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
[Music] thank you [Music] foreign [Music] [Applause] [Music] [Applause] [Music] foreign [Music] [Music] foreign [Music] [Music] [Music] [Music] foreign [Music] welcome to another episode of Visual Studio toolbox I'm your host Leslie Richardson and today I am being joined by Uche and bravi from the docker team what's up hey y'all guys so what are we talking about today well today we're going to be talking about the visual studio container tools that uh runs on docker exciting so before we dive in um what is a Docker container why should I use it why should I care that's a good question whenever I'm talking to my friends about it I always say you know especially my non-tech my non-software friends I say you know how when you first get a phone and that phone has way too many apps on it and you're like kind of annoyed because maybe your phone might start off running kind of slow um well a container is basically as if you were to because your phone runs apps right so a container is basically a way for you to get a sort of clean phone to be able to run your applications on so that when your application Pops in the only thing that exists on your phone is exactly what's needed to run the application so a container is just when you shift that over to an actual PC a container is a small piece of a like a small piece of a computer that understands how to say first download a Linux Linux machine with nothing on it and then download the dependencies for say Python and then your application that comes next and all of a sudden it's a very clean uh small chunk of um memory rather than a massive machine that has everything that's downloaded on it and everything that floats it it makes it slower so containers allow allows for developer agility it also allows you for a reproducible environment so that way you know that oh no I didn't accidentally drag and drop my files somewhere different today or my friend messed me up somehow it's it's a Docker file especially gives you a list of simple instructions that get run in order including getting the base level image first and then some things downloaded next and then your app last so that it's always in that exact same order you know exactly where to expect everything to be and now it gets you closer to a near production environment that can be used so that when you get into the production realm you know that any of the say environment variables that you needed to be configured precisely a certain way is configured that way when you do it in your container so when you get to a cloud environment you're using secrets in some sort of remote environment those same Secrets carry over it's expecting um config equals 10 and so when you get into the cloud realm it whenever you put in config equals 10 it was doing the exact same thing back in the container world and your containers of course can be deployed as images to your um Cloud to your cloud of choice as well awesome we work on Docker as it relates to visual studio right so what are some of the challenges that developers tend to face when they're setting up their Docker projects or their Docker containers and how can Visual Studio help fix some of those problems that's an amazing question so uh I don't know about you but the hardest thing on Earth at times is to get set up to finally hit that nice F5 or um play button so to speak to run your application and everything breaks or something isn't downloaded and you have all these different issues so it's usually the setup and configuration that is the hardest thing and also when you have a existing application especially like an existing.net application which is what the visual studio container tools really does very well a lot of people have a lot of trouble getting that workload onto an actual container they're they're stuck figuring out how to configure it they're stuff figuring out how to write a raw Docker file so that it can load everything and that just takes time where why take that time when you can spend more of that time enjoying what containers have to offer including that sort of developer agility environment variables um awesome container Asset Management that our container tools window gives you so what things that we've done is we've made scaffolding very easy we make it so that when you make a new DOT net web application you can actually immediately click enable Docker support and I'll show you that as we go into our demo also if you have an existing.net application you can simply right click on the project go to the menu item of AD and you can literally say add Docker support and what that does is it gives you a Docker file that knows how to take in your entire um your your application and taking your application and it knows how to make a Docker file so that you can immediately hit F5 like like it's so much easier so even someone like me who may not be crisp and clean at writing Docker files from scratch can get started with a existing.net application and be running in a container yeah just like uh like Visual Studio offers some optimization of debugging so user don't have to like spin up the new container every time they want to make changes to the code and start the debugging so we do a lot of optimization it will be very Snappy too I just edit the code on debug exactly awesome so uh would you all like to dive in although I should point out um hi chat welcome feel free to ask any questions that you may have Uche and Ravi are here to help answer them about uh Docker containers and how to set them up how to use them in Visual Studio they're told pros at this and are happy to help answer your questions so ask away anyway shall I toss the Rings to you Jay absolutely yeah thank you and feel free to chat say whatever you need to say and ask whatever you need to ask Robbie's going to be especially on answering any technical related questions so please make sure to uh ask whatever it comes to mind and I'll be demoing some of our functionality um today so get ready it begins now all right so feel free to share my screen awesome so now I'm just on a regular computer usually people would run their applications locally but I'll show you what happens when you can run stuff in a container and so I'm going to start off visual studio I happen to use the preview version um because I I like the keyboard with the very latest features of Visual Studio sometimes uh it's a great decision sometimes you gotta watch out but um yeah so what I'm going to do is I'm going to create a new project and show off what this looks like so I'm going to create a new project and what's common is to create an asp.nasp.net core web app so I'm going to do that because I'm going to just make like a little website real quick so let's name this um I like to demo demo um if you get that reference you're pretty cool um so next we can see that we have the ability to enable Docker I'm going to go ahead and choose the docker OS of Linux and the framework of.net 60 because this has long-term support and it'll be around for a while um one thing I do want to mention actually forgot real quick is we do have um function support for Docker so if you go to functions and you hit next then we actually have the ability for you to click enable Docker this is um a feature that's available if you go to tools option and then select new new functions startup project or something of the sort you'll see you'll see the setting but um for now today we're going to go ahead and just go back to our web app and start so I like to demo demo okay so next is we're gonna go next we're going to enable Docker so that we don't have to click right click on the project say add and then Docker support saves us a step and then click create I think chat gets it by the way yeah thank goodness thank goodness I thought I was I thought I was alone in this world right I'm always like that it's like oh man I want to throw in this joke here for my demo but I don't know if anyone's gonna get it except for my weird My Words yeah um I don't have many friends so this is the risk I'm taking all right um so now you see that we got pulled up to asp.net core Docker um we have this new blade right here called developer with containers that'll take you right to um the container tools the container tools um documentation which is awesome we have some really awesome doc doc writers that have helped so much over the years because I know that writing docs is difficult um so now let's look at what we can do all right so now we're in our um we're in our application that was a hard word and I'll just briefly explain the docker file real quick so our Docker file um we have a multi-stage Docker file at times this can be relatively confusing but it's because we want to sort of optimize that build process depending on what you're doing so if you're trying to debug then we're going to actually add the vsdbg the vs debugger into your container so that it can actually hit break points and if you're not really trying to do that you're trying to just make a release then you'll see that it has something like build as published so this is a different work stream where it's not going to expect you to debug generally I stick with debug because it's what I like to use so I can hit break points make sure that everything I'm doing is correct um and then move on to the next step um so we have a few other things um yeah and so I'll also show off sorry that was a random pop-up um so briefly show and explain the compose file let me access off um so we don't have a compose all yet but I'll go into that um is there any questions so far yeah we do have a couple questions so first up is we're talking about debugging a Docker file or is is that what we're going to be talking about are we gonna be talking about what exactly I'm sorry debugging a Docker file um so what we're actually going to do is um we can hit so we won't be talking about debugging a Docker file per se we'll mainly be talking about just running an application so the docker file is less of a point it's just showing you that this is what was built for you so you didn't have to do it yourself and you'll be able to now hit F5 and get going immediately which is like the Time Saver here I don't know about you but I'm not so good at typing this out um from scratch so it's great to have a the functionality of when you just have that right click add Docker support you now have the ability to hit F5 and run your container so we see our solution container I like to demo demo um and what it's doing is it's obviously building this application going and I'll show you what this looks like I like to demo so we're seeing now we get to see everything which is awesome this includes uh debugging support so we can go to pages index and this index is calling an on-get method uh let me make sure it's in here hello okay nope and so if I hit refresh bang it hit a break point so that's just really quick to show that there's debugging support in our in your single Docker project but let's take it a step further and actually go ahead and go to the compose level um so I want to show show off some of our compose features and that'll basically wrap in the rest of our entire um um entire presentation here because once you get to compose it's basically just a layering of single containers and it allows you to run all the containers in the same Docker Network so they can sort of talk to each other the same way they'll eventually talk to each other in a more production level environment this is why compose has caught fire in the software world because it allows you to layer together microservices or AKA multiple connected services in an application so you can talk to say you can use your web application to talk to a database and or you can use it to talk to a cache which talks to a database and you can flip it up and upside down left and right any way you want but it's amazing because now they're in the same Docker Network and you can configure it very similarly to the way you'll configure it in an actual production environment so this helps take so much of the guesswork out of your hands and put it onto the page here so um if we don't have any questions I'm actually going to jump over to our compose project oh do you have a couple more questions on the compose side feature new compose so no it's not so let me go ahead and run over to the compose project and I'll talk a little bit about it so now I'm going to open up visual studio once again I just find this easier because I'm about to jump over to a different project um so this is going to open up something called my demo app which is going to include at least a few um it's going to include at least a few services so we can actually get an understanding of what's going on um so the compose feature as this is loading the compose feature is not new actually it's been around for quite a while and the compose feature um so I'll go in and open up our compose file people find it relative like you know I find it a little bit easier to read than a Docker file and it's because it's basically piecing together your services um the compose feature what it does is you'll see I have a demo app and a redis cache and a database that are all going to be working together to make so make it so that my application can can run and it'll be able to keep the state of how many times I have refreshed my page in a certain counter value um and so this compose feature it's been around there's a few extra features that have been around that we won't talk about today such as Docker profiles um but we'll with but those are things you can definitely look up and it's a little bit out of the context of the current presentation but you can see here with demo app I'm able to say okay run this image called this based on this demo app Docker file which is right here and then for redis redis isn't going to be built off of a Docker file instead it's going to be actually an image pulled from Docker Hub that's from comes from the redis uh redis repository of images or um and so when you pull redis latest this pulls what it's a it's a known name in Docker Hub um and I mean I hope I'm correct that is it'll be Docker Hub but yes it'll be pulling a known name redis and it'll be pulling the latest version of that image so that it can basically run in my application again an image is just basically it boils down to a Docker file and a Docker file again is just a list of instructions that helps build what becomes an image and a container is just a running image an image that you press run on it becomes a container so then you can see here with database we have something that actually comes from MCR the Microsoft container registry and it also is another image that if you actually go over to the website where this lives it'll ultimately be a Docker file that has a bunch of instructions but instead of me actually having to download each Docker file onto my machine and then call it Ms SQL or call it redis I get to just pull it from a different website that already built will will know how to grab that Docker file and make it so that I can build this image right here um so I hope that's clear but that's basically how compose is working together the network is managed by the actual Docker engine and when you talk to it there'll be different ways that demo app will talk to redis like like it does as an HTTP endpoint um yeah so I have a few things I want to touch on when it comes to um compose firstly we are actually working to make a sample like this um it'll be like a sample available for you all it should be available in if you go to visual studio container tools documentation under tutorials in the next uh I can't promise a timeline but in the next not too long there should be an actual um project that you can use that'll look very similar to the one I'm going to be displaying today so you can all get your hands dirty and and have fun with compose we'll obviously clean up some of the things I have so um going into the index which is the simplest place I want to first start off by hitting F5 and then we'll get into some of the awesome things that our tooling gives you okay so I'm going to hit F5 which is going to build those three services that you saw the app the redis and the database redis cache in the database so if I hit F5 or for my case I'm going to just press play so you can see it visually some people say press you know hit click run but I like to say press play I don't know I like that too honestly so what we can see is that the actual output shows us what's going on which a lot of Developers clamored for asked and they really needed it when we didn't have it very initially a while ago please what is going on why what's happening so you get to see the whole output here you can see it's actually telling you creating redis creating database creating um the web app and what is what it's doing in the background is really just running those images and if the image isn't already existing in the case of redis and DB it's first building the docker file and then that creates an image that it then runs so now you can see that we have a database demo app and redis and lo and behold we have our local hosts which is Boom our demo app so we have now we have composed what's going on though I think things will start to click over time as we layer what's going on so I'm going to click demo out demo out demo app demo out what's happening is this is actually getting placed in our cache and we're updating the number so that way if I were to get rid of this x-off and you'll see that we automatically stop then if I were to run it again we should expect for our um cash to keep the same value so that um that Docker container window that's a newish Edition isn't it well I feel like it popped up in like the late life cycle of 2019 Visual Studio yes so I'll start off by getting us yeah so um I'm not sure of exactly the history it's been here since I've been around for about three full years so I I maybe it but we've been we've been trying to take many steps to actually improve the discoverability of the containers tool window we haven't learned that some folks that we actually talked to someone um recently maybe a few months ago who we we told them oh and as you can see boom we have the number it was captured which is awesome and it plus one because we jump back in once again so it went from four to five but anyway we talked to someone who said yeah man I just wish that there was more things that would help me uh tooling wise in visual studio for containers and we said but there is and then uh this person said no there's literally not and then we were like oh God we said okay go to view um yeah go to view so if you are in Visual Studio when you go to view and then other windows and then containers click that that'll actually bring you to the containers tool window this person then said hey I'm gonna be real with you I don't think I've ever hovered over other windows yeah I know it's like a lost cause exactly so for everyone on this chat right now I want to say we're introducing a new keyboard shortcut that could make your life a lot easier and I think it's I'm so happy that we finally have a keyboard shortcut because it's what I use now every single time I open up the container's window sometimes when you hit F5 it will pop up the containers window but in the case that you just want to manage your containers manage your images it's nice to just have a quick shortcut so if I access off I'm gonna hit um control k o and boom container tool window pops up right and Center control k o so now we see this so I'm going to walk through what just happened um we have this redis reddest message that's happening as you can see number is getting incremented um we're able to and I I've already shown it in single so I won't show it again for this just trust me that if I were to set a break point here it'll hit this break point um and so there's also the case where um when it comes to the container tools window it helps you in a lot of different ways so we'll first start off with images since they're a little bit simpler and as we see we have the like web API or sorry demo app Dev we have our I like to demo demo Dev um container which you remember with that one that one was just created previously demo app is just created and it also gives you some details what's going on you know um so you can see what what you can see the deeper level information about the images especially if something goes wrong it's really nice to have a nice detailed blade so as you if we write we can actually right click on any of these images and these are some of the interactions that are there you can tag an image so if I want to tag this image I want to say okay I don't want to call it demo Dev I want to call it demo um the sky is blue because that's how I feel right now talking to all of y'all is now I have a tagged image and I can go ahead and control control and click through them all so I can actually run them all at the same time if I feel like doing that or if I want to remove them all which is also a really great use case this also supports if I were to click and hit shift and then click it just highlights them all so we now have multi-select for containers saves you some time and you see you obviously can't tag all containers at the same time even though I really wish I could tag all the containers that the sky is blue for all of you anyway but you can delete them all or you can run them all like so you can you can there's a few um interactions that go across all of them so you can interact with them as such and that's the same way that happens over in container World control or in the case of shift you'll see that you have interactions that span across you also have the ability to for demo app you can see all of these really helpful blades things that we've added over the years as customers have really enjoyed the different aspects of how to manage the actual assets of the other containers a lesser known feature that I definitely want to mention is is two things logs so you can see my active containers logs and as I like refresh you actually see the logs occur um let me and so if I hit run and I start refreshing you'll see that um or if you want to go into volumes you can now actually see uh book clubs you can actually see um the different volume volumes and the type of volume so you're buying Mount to them and what's it's awesome so you can actually see okay the destination in my is in my whack app folder or slash app folder so I can actually click on that and now it's loading and it jumps me over to the files tab so in the files tab you see we've now expanded the app folder and I can literally interact open and download um and we are we're soon adding the feature of upload which is going to be awesome so you can upload a actual file into your container if you need it for how does my container react to file uploads or something of the sort those scenarios um you have the ability so it's really really smooth process where we want to implore you to really check out the files tab especially and volumes can it's a really great way to get you there to know exactly okay I expect this folder to to link to this folder let's make sure everything is correct I'm going to interact with that folder in my container by doing different commands really helps you you also get to see the ports that are happening the labels of the whole entire container and everything that wraps in as well as the environment variables just to make so you can always make sure that your dot EnV files or environment files are just getting thrown in exactly how you expect um and nothing is awry foreign awesome so is there any questions right there I know that was a lot but I'm just trying to show off what what the container tools window gives you and it gives you such a great ability to run images run containers delete things um you know and see what's going on inside images and containers so I implore you hitting control k o you're not gonna be mad about it it's going to be a great experience especially after you right click on your project go to add waiting for the hover to work hello sorry my computer is freezing it's running a lot and then Docker support that will that'll be how you do it awesome yeah and I do want to say not too many questions but a lot of uh positive responses towards having this window with the most impressive for some folks scene that you managed to find a free keyboard shortcut for the container window so that is pretty impressive I'm not gonna lie yeah I when I say it took me about 10 years it felt like to find a suitable keyboard shortcut that wasn't taken by the amazingly uh storied different parts of Visual Studio I did some work on that but yes like any I really appreciate the positive feedback and positive responses at all because you know I'm a program manager I you know come up with some of the I've taken a lot of user feedback and come up with some of the ways we're going to do it but like developers like Ravi and a few other developers that aren't on the call they make this possible and they really really bring all these ideas to life and it's really awesome whenever it helps out anyone that's the whole point of creating developer tooling so yeah I really I really loved um that any of you see value and you remember that control KO so that you can easily get over to the container tools window and start reaping the benefits um there's a few more things I want to go into uh more advanced scenario real quick and so what do I do if I'm in a case of we have various customers that said oh my microservices I run 15 15 containers at all the same time but sometimes I want to run 5 out of 15. some sometimes I want to run 10 out of the 15 and then we're look looking at them like oh my God and so we've so back in the day they said they would make multiple different Docker compose files with all these different combinations of the services they're going to run or they would take a long post file and comment out certain services and we said that just sounds so painful so I want to introduce you to the subset of compose Services feature the way you can do this way you can get to this and we'll look at the docker compose file for reference so notice that it has demo app redis and database so if you right click on the project and you go to okay where am I sorry well if you do this manage Docker compose launch settings um manage maybe it's in is it in this one yeah sorry sorry this is like control Q because I never remember anything is so I just use the gloves oh that's so clean yeah actually control Q manage Docker compose um maybe it's not in that oh man darn but if you right click on the docker compose project and you click manage Docker compose launch settings or my favorite way is if you are in this menu if you see this menu right here and you right click on the little tab aside you can actually click manage Docker compose launch settings and you can see right now I already have a few other options no redis but I'm going to open it up just to show you so what this does is it basically sits through your doctor compose file really smart really intelligently and by the way make sure I put props on Robbie's name he created this feature which is not easy um but yeah he helped actually truly make this feature come to life but when you see this thank you Robbie seriously you've we've seen a large increase in customers using this feature since since has become available and since it's become more and more um observable findable so if you see what's going on I have my Docker compose launch profile DB demo app redis notice that we have no options to start with debugging for DB or redis because these are not a.net project but when we do detect that it's a.net project you get a start debugging option we then have um like a launch service name demo app so you can launch the demo app and then you can have a launch action which I generally say to launch browser rather than do nothing that way you can see it actually come up and come to life we already were running Docker compose though so let's look at what is it if we were to say create a new profile if I click new then I can set a profile name called no redis and instead of and you notice like hey sorry that already exists instead of actually doing so I'm going to hit cancel and it would be equivalent to me what would happen is let me just do it for demo no that is demo if I hit okay you see all of this start it's the same exact thing as the compose in the first place but now let's just say do not start redis okay um and I want you to still launch our demo app launch browser and good to go hit save so this will be using our launch profile no redis demo so click OK and we see it switches the no redis demo okay so in so right now I want you to understand our I'm going to delete these containers because our con this redis container is still running in our Docker Network so if I were to run this no res demo it wouldn't need to it wouldn't run without redis redis still already got built and it's still running so that's just something interesting to either keep in mind that containers don't die they live forever until you remove them or your computer crashes yeah right not so beautiful not so beautiful so now that I created this launch profile I'm going to hit F5 and let's see what goes on so remember our application was relying on redis Cache which is then sending data to our database it was relying on redis's Cache to get a counter value so now let's look what happens if I build this and let me go over to my containers window it's slowly building and it's it's creating all of this you know it's downloading exactly what it needs it's doing exactly what it has to do with this to give you the slimmest version of your computer of a container computer that it takes to run an application and you'll notice that only database and demo app were built um right now my browser is currently launching so I'll pull it over when that happens also while that's happening um sure got a couple questions in chat about this are all these features working in Visual Studio code too or are there like equivalents in vs code absolutely so pretty virtually all of these features do work now the um this manage compose launch settings feature that feature is um oh it's it's uh halted right now as this gets built but uh we see redis isn't available at the moment please leave please leave a message at the beep beep um so yes so you see this is the case where if I hit this it's just it doesn't have redis it's like I don't know no counting no counting I can't I can't count sorry so if we um go back when it comes to vs code the docker extended for vs code all these features are available and so I exit off so you see that it went away however the manage Docker compose launch settings feature is um this is mainly available in um this actual visual UI is in Visual Studio but in vs code UI isn't eccentric because it's more of a text editor so we still have a similar feature that allows you to click check boxes for which of the containers you want to start um and then has like launch Json and various things that you can actually attach you know your debugger to a specific solution of your choice if that gets run however it's we don't have this actual UI but yes pretty much every feature you see is available in vs code as well um and there's maybe a few there are a few more including um these are volumes that are on the container but we actually do track in vs code like stuff like volumes that are on the overall PC that have nothing to do with containers and a few other features as well it's a great question awesome so I want to stress again that that subset of compose feature man since we since we've introduced it it's been at least one third about one-third of the way that people even run their Docker compose is using these different subsets so it just shows the power of flexibility not only one thing to very very much mention is now especially if I'm trying to run just a couple of my things and I have this big heavy image I just now I'm able to make changes and hit F5 and it'll run a lot faster than if I have to start up my redis image every time instead I'm only starting up just that lightweight front end code um so just keep in mind things like that use it how you want I know that I I think of uh developers as artists even because they just have so much creativity in the ways they choose to use the tools we give them so just this is just a way to paint the way you want to lastly um what I want to go over is uh publish so what about I have these images but I want to actually get them um so I'm running that again I don't know if that was it that's a pretty good decision always to run but I don't know why I did that so I'm going to hit cancel goodbye so I want to go over publishing so if I go to containers and I go to images we have the ability to run run interactive tag and remove but for the case of Visual Studio like Visual Studio you actually can right click on your overall project solution and if you go to publish you have various things you can do here so um shout out to my fellow um former PM Mike Morton he um would love this part of the demo um the YouTube chat anyway yeah yeah and I saw him in the chat that's why I'm poking fun and I worked with Mike for many years and I really do appreciate all the time that he helped coach me up as a PM um so we have this ability to publish so you see I've kind of already done it once so I'm just gonna hit new um so that we can see this this flow and you're actually going to be able to publish your demo app image to the repository of your choice this is important because you can imagine that I take my compose file one day um and I'll and I'll go back real quick and instead of even having Docker file I could just do the same thing I could have uh uchesregistry dot demo app colon latest and now I don't even need a Docker file I pull my image and for for whatever way I need it I just have my image so this is just a clean way to sometimes get your publish but also you can do it by publishing to an ACR Azure container registry or even better yet skip a step and publish to an Azure container app which is going to take that image and actually run it um so if I say publish your application to Azure so if you say so as you see Docker container registry that'll publish the image to a container registry or in the case of azure you can publish it to the Azure container registry as well which image it's now in a nice Hub that you own you can pull it down whenever you want wherever you want in any cicd pipeline like wherever you want to do it whatever you want to do with it awesome and you can also publish this image or the you know this existing application and it'll create an image for it and publish it into a software as a service called Azure app service or even um I really like the Azure container apps it's in preview but it'll soon be ga on the repo side speaking of which uh can you publish to private repos can you publish an image to a private private Repository that's a good question Ravi do you know check the chat for the answer that's a good question um so you can see I have like a few random things I have like a Target let me go back um I I'm not sure I don't want to misspeak I do know that you can when you say like to a repository you mean literally to a like a GitHub repository I'm assuming that's what was meant because I know you can publish it to a registry where the image lives okay yeah but um in the meantime as we as a Ravi slash my friends uh helped me out with that I love the tough questions is um I'm gonna go ahead and click on Azure container apps preview it's going to ask for my Resource Group um I have no instances available uh available so I can create a new instance you create that new instance you click on it you hit next and boom I won't go all the way through the flow um since I don't want to actually create this resource but um you'll ultimately see um you'll you'll get your you'll actually be able to publish your image to an Azure container app where then you actually will get an exist a real link that you can click and have that link available live um from there that you can interact with it on a real website you can actually go to the Azure portal and see this existing resource you can interact with it you can see it's web traffic and you go from there and of course you can then add on to it by adding different elements such as having that container app call out to different images such as your your production level redis cash so on so forth and the magic goes from there but this stuff helps you save so much time because you're now taking something that works you hit F5 it works you you publish it to Azure container apps it works that's our promise at least it works it's there and now you can start adding to it from there rather than figuring out oh crap how do I make it Azure container around it's all here for you so this this pretty much concludes most of the features I wanted to show you and that went all that spanned all the way from that project new scenario where you make your own.net course 6.0 uh web app you can you have running and debugging support with that we we looked over the docker compose aspect which again was the multi-micro service Arc like a micro service application architecture um so that you can see how all these apps running the same network are able to interact with each other beautifully and lastly we showed off our amazing control KO containers tool window that allows you to interact with images see the labels and details of images see all these awesome important different aspects of your running container including the logs um and lastly publishing publishing that working demo app.net project into an actual runnable place such as either either not a runnable place but you can publish it into a hub such as a Docker Hub or the Microsoft container registry or you can publish it so it's running immediately which is I really love that's my favorite way to do it publish it to Azure container apps or um of course web the Azure app service is also available so I hope this has been very helpful I hope that it spurred a little bit of curiosity and enjoyment of our knowledge in our tool set and you can see yourself actually using it um I also want to do a Shameless plug to say please give us as much feedback as you possibly can every one almost all of these features we've created in the last I don't know how many years has been because of direct direct contact with y'all as developers and different ideas pitched different problems you mentioned like like maybe you don't have a solution just say this doesn't work or this is a problem or this is happening and we take it so seriously and try our best to find a creative and awesome way that works for you and works for the rest of our customer set so thank you so much for all of your um influence over the years and I look forward to what's next yeah and I mean you already got one suggestion already about the private Docker repository publishing support I would say it would be a good feature in the future for Enterprise especially so yeah awesome and yeah yep and then also there's the developer community and your Twitter handle so um yeah definitely reach out there we do have a question um do you have a link to a quick start doc to help folks get started with an existing GitHub repo containing a compose file we are so close to that we are so close to that and I know that Ravi is smiling somewhere because he's just um started he's just put together a working composed project that we're gonna actually put paste on a public GitHub repository um in the meantime I will throw in this link um and you can paste it um oh is it the Acadian uh the AKA one that you sent earlier um it's slightly different it'll that'll take you close to it but it's the container multi-container um tutorial and so that tutorial is going to eventually have to say get a GitHub link that you can pull um and it'll be you'll be able to it'll show you how you can actually take advantage of an awesome new feature in GitHub where you can actually open up a GitHub repository and you know just click on a button that says open in visual studio and it'll literally just get get clone pull your entire project into Visual Studio as it opens and then you're you're ready to run you're ready to rock um so we're so close and it'll have an existing example with a doctor compose file that'll allow you to like sort of look at it as you can see I've commented out some Docker profiles which is another feature that's a little bit higher level um um a little bit more advanced for some folks that want to use that awesome and I also want to plug your other link that you did share earlier with me when we were off live the AKA dot Ms slash Visual Studio Dash docker site where does that go yes AKA dot Ms slash Visual Studio Dash Docker it goes to our actual um front page and so our front page of our docs we have done a lot of revamping and I've really appreciated um my boy Gordon who just continues to churn out awesome docs like I whenever I type a dock it has about 23 typos and everyone's asking but why did you put this here and I'm like I don't know exactly but when he types it when he types it it comes out a lot better I'm glad um I'm glad I haven't been fired so we as you saw it goes to our front page of container tools and this is where you can dive in like I really implore you just dive in start off with a couple quick starts look at some of our how-to articles and by the time you're through it you'll really have a good feel of at least how to start up your asp.net web application and and what and various other tools you can use to to really be a successful.net developer in Visual Studio I would be remiss if I didn't mention though in vs code we have support for other main languages we have first party support for three for three languages that being dot net um dot net Python and Uche is blanking on the third one um dot net python debug support I mean yeah typescript no no no my boy Mike is still mad at me right now I know I've been in Visual Studio land for so long um yes so vs code so if you also go to um like if I type in vs code node thank you thank you Mike oh you saved me he's like Gucci messed up okay you don't know you're the worst piano ever yes so we have net Python and node support which is amazing so if you type in the docker extension for vs code um this is also the website you can go and you can dive in so we have asp.net python node debugging and so much other things you can do so in case you have needs for other languages this is a great place to start um and you know I say if you really want a a really comprehensive.net debuggingexperience and Dot net support would be really great to check out Visual Studio container tools um so yeah someone said I like to note it full circle well um yeah as we wrap up what is the future for Docker container support in Visual Studio somebody also asked like really early on just didn't get around to asking the question um do you see containers eventually replacing VMS one day so there's a lot of great cases to be made for for containers um for whether they'll completely replace VMS that would uh that would be like you know I don't know Netflix completely replacing TV you know like you know just because it's newer doesn't mean there isn't some you know uses and aspects that are important to the people that do still watch TV or still do you still use VMS um however containers do provide a much more I believe agile experience for development um they allow you to run things whereas VMS they might they might be you know you might be able to make a basically um what I would say when you get into very complex uh scenarios there are times when VMS aren't as reproducible and easy to maintain as containers so there are times when that VM is downloading certain things or being created in a way that isn't quite Frozen in Time the way that a container is Frozen in time and this might lead to Downstream problems Downstream errors and there's nothing that's more costly than a mistake or a break and so containers really allow us to have less headaches because we freeze our we freeze every dependency at aversion if we want to or at dot dot latest if you um want to maintain the newest version of a very stable product like say redis colon latest is very stable um but you know there's uh I can't say one's ever going to work over the other I just believe that you know with containers the developer experience is very agile much easier to develop in for me especially getting started I don't have to learn how to work with VMS I can just right click demo app right click add a Docker you know this is so Frozen because my computer is slow um but you know add um Docker support and I'm on my way um so and there's a lot of documentation behind it backing it in various languages that make someone successful whereas VMS is a product by product basis um there's obviously going to be great documentation on it um personally I just would go with containers and I'm so biased um so so biased well I decided to see here we go from here because yeah I used to think containers were a bit of a beast to figure out how to implement successfully and get to run well so seeing all the support in Visual Studio to help alleviate some of that stress is great and I can't wait to see what it's going to be moving forward so thank you so much Uche and thank you so much Robbie I'm gonna add you back on real quick uh yeah thank you so much for answering all the questions in the chat and if you have any other questions chat feel free to reach out to any of us and also go to the developer Community to share any feature requests that you have in order to make Docker support even better than it already is yep yep yep and I also want to make sure I mentioned for the future of container tools uh the future of container tools and what we're going to do the best answer to that question is whatever y'all ask so truly it's about the developer Community feedback being posted email me at uche.nakati microsoft.com nkadi microsoft.com I'm so open to whatever we've gotten so many awesome ideas over the years and it's really y'all shape how this changes including vs code Docker extension as well as vs container tools so thank you everyone I appreciate your time thanks for joining in yeah and thanks for coming you two so uh until next time everyone gets using those Docker containers and visual studio and until next time happy coding bye see you guys bye [Music] [Music]
Info
Channel: Microsoft Visual Studio
Views: 12,761
Rating: undefined out of 5
Keywords:
Id: ZLBwnbbD0Zg
Channel Id: undefined
Length: 57min 37sec (3457 seconds)
Published: Tue Apr 19 2022
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.