Not really, but sort of. The beauty of containers, at least in a dev/test environment, is the ability to spin them up while you need them and then throw them away when you’re done. Containers give you a bunch of functionality not otherwise available through a VM.
However, once you’ve spun up a container, they’re so dull.
Why Are Containers Boring Grant?
I’m so glad you asked.
Last week I was presenting at SQLIntersection (great show, you should consider attending). I was talking about Query Store in SQL Server 2019. One person in the audience asked, “Can Query Store run inside a container?”
I responded, “Great question, let’s check.” I then switched over to VS code to show this:
docker run `
--name DemoSharedVol `
-p 1460:1433 `
-e "ACCEPT_EULA=Y" `
-e 'SA_PASSWORD=$cthulhu1988' `
-v C:\Docker\SQL:/bu `
Yeah, I had been running all the examples in a container. But why is that boring? Let me show you. This is Azure Data Studio connected to the SQL Server instance running in my container:
This is SQL Server Management Studio:
And this is Redgate SQL Compare:
So, the point is not that containers are actually boring. They’re not. They are very exciting. However, once you’re up and running with containers, working with them gets a little dull because, it’s just SQL Server in there. Once you’ve made the connections, you’re largely back to work as usual.
And yes, Redgate tools can work on SQL Server in containers. Fair warning though, I haven’t personally tested every tool, so I’m not currently certain if there are issues anywhere.
I’m only half joking when I say containers are boring and dull. They’re not. The technology is amazing. However, that technology doesn’t fundamentally change what you’re dealing with. It’s SQL Server. How do you capture detailed performance metrics in a container? Extended Events. How do you capture aggregated performance metrics and query plans in a container? Query Store. What’s the backup syntax for a database in a container? BACKUP DATABASE. We can keep going on this, but I won’t.
The excitement in containers is in and around the management of what the container does. Equally exciting is the fact that once you’re in a container, it’s just good old SQL Server and we know what we’re doing with that.
Want to get together & talk Database DevOps all day long? Me too. Here are a couple of opportunities to do exactly that: