Docker Captain Take 5 – Martin Terp

Docker Captains are select members of the community that are both experts in their field and are passionate about sharing their Docker knowledge with others. “Docker Captains Take 5” is a regular blog series where we get a closer look at our Captains and ask them the same broad set of questions ranging from what their best Docker tip is to whether they prefer cats or dogs (personally, we like whales and turtles over here). Today, we’re interviewing Martin Terp who just joined as a Docker Captain. Martin is a Splunk Consultant at Netic.dk and is based in Aalborg, Denmark.

How/when did you first discover Docker?

I was working as a Sysadmin for a big Danish ISP, and when you work with IT, you always try to expand your knowledge: How can I improve this application? How can I make deployments easier? What is the next big thing? So back in 2016, I came across Docker, and instantly fell in love with it and containerization in general. I started testing it out, on my own little projects and quickly I could see the benefits for it in the way we deploy and maintain applications.

What is your favorite Docker command?

I must say “docker scan”, making images and running containers is pretty sweet, but you also need to think about the vulnerabilities that can (will) occur. Looking back at the log4j vulnerability, it’s pretty important to detect it, also when running your own, and building your own images. Docker scan provides this functionality and I love it, also its great to see that https://hub.docker.com/ also have implemented a vulnerability scanner

What is your top tip for working with Docker that others may not know?

Use Dockerfiles! I have seen many, mainly newcomers, that are building containers by “docker exec” into the container, and executing commands/scripts that they need. Do the right thing from the start, and do yourself a favor by looking into Dockerfiles, it’s worth it.

What’s the coolest Docker demo you have done/seen ?

Dockercon 2017, docker captains Marcos Nils and Jonathan Leibiusky showcased “Play With Docker” (https://labs.play-with-docker.com/). I was really impressed and thought it would be really handy for people to get into docker.

What have you worked on in the past six months that you’re particularly proud of?

I don’t think there is a particular project, something I’m personally proud of, is that I switched jobs after being in the same place for 14 years, and started specializing in another awesome analytics tool called Splunk. Also a feel-good thing, is my contribution to the community forums. I have spent a lot of time on the forums trying to help others with their issues.

What do you anticipate will be Docker’s biggest announcement this year?

It’s really hard to tell, surprise me

What are some personal goals for the next year with respect to the Docker community?

I spend a lot of time on the community forums, and there are questions that get asked again and again with “how do i”, so the plan is to create some blog posts, addressing some of the common things that get asked on the forums.

What talk would you most love to see at DockerCon 2022?

I love to see when they are presenting real-world scenarios. It’s always very interesting to see what people have come up with, how they solved their head-scratching projects, and every year I’m amazed!But I also hope to see myself at Dockercon in the future, I hope that covid hasn’t put a complete stop to events where we can attend IRL. I would like to meet some of my fellow docker enthusiasts.

Looking to the distant future, what is the technology that you’re most excited about and that you think holds a lot of promise?

I love containers and I’m very excited to see where it will go in the future, its evolving constantly, there is always a new way to doing this, doing that, doing things smarter, and that’s also something I like with this community, people want to share their findings, we occasionally see posts on the forums with “Look what I made!” and those are the most fun to see  

Rapid fire questions…

What new skill have you mastered during the pandemic?

I have on and off tried learning to play the guitar, but couldn’t really find the time for it, so I tried picking it up again doing the pandemic, and after all this time, I can proudly say; I suck at it!

Cats or Dogs?

Why not both?

Salty, sour or sweet?

Salty

Beach or mountains?

Beach!

Your most often used emoji?

The post Docker Captain Take 5 – Martin Terp appeared first on Docker Blog.
Quelle: https://blog.docker.com/feed/

New Docker Menu & Improved Release Highlights with Docker Desktop 4.5

We’re excited to announce the release of Docker Desktop 4.5 which includes enhancements we’re excited for you to try out. 

New Docker Menu: Improved Speed and Unified Experience Across Operating Systems

We’ve launched a new version of the Docker Menu which creates a consistent user experience across all operating systems (including Docker Desktop for Linux, follow the roadmap item for updates and pre-release builds!). The Docker Menu looks and works exactly as it did before, so no need to learn anything new, just look forward to potential enhancements in the future. This change has also significantly sped up the time it takes to open the Docker Dashboard, so actions from the Docker Menu that take you to the Docker Dashboard are now instantaneous.

If you do run into any issues, you can still go back to the old version by doing the following:

Quit Docker Desktop, then add a features-overrides.json  file with the following content:

{
“WhaleMenuRedesign”: {
“enabled”: false
}
}

Depending on your operating system, you will need to place this file in one of the following location:

On Mac: ~/Library/Group Containers/group.com.docker/features-overrides.jsonOn Windows: %APPDATA%Dockerfeatures-overrides.json

Docker Dashboard Release Highlights

Continuing the revamp of the update experience, we’ve moved the release highlights into the software updates section in the Docker Dashboard, creating one centralized place for all update information, so you can easily refer back to it. We’ve also included new information about the update: the version number of the newest version available, as well as the build number for both the version you are on and the latest version. 

For now, when you manually check for updates from the Docker Menu, you will still see the release highlights pop-up outside of the Docker Dashboard, but that will be removed in future versions, and direct you instead to this Software Updates section.

Reducing the Frequency of Docker Desktop Feedback Prompts

We’ve seen your comments that we’re asking for feedback too often and it’s disrupting your workflows. We really appreciate the time you take to let us know how our product is doing, but we’ve made sure you get asked less often. 

To give you an overview, previously, we asked for feedback 14 days after a new installation, and then users were prompted again for feedback every 90 days. Now, new installations of Docker Desktop will prompt users to give initial feedback after 30 days of having the product installed. Users can then choose to give feedback or decline. You then won’t be asked again for 180 days since the last prompt for a rating.

These scores help us understand how the user experience of a product is trending so we can continue to make improvements to the product, and the comments you leave helps us make changes like this when we’ve missed the mark. 

What’s missing from making Docker great for you?

We strive to put developers first in everything we do. As we mentioned in this blog, your feedback is how we prioritize features and is why we’re working on improving Mac filesystem performance (check out the roadmap item for the latest build), and implementing Docker Desktop for Linux. We’d love to know what you think we should work on next. Upvote, comment or add new ideas to our public roadmap. 

DockerCon2022

Join us for DockerCon2022 on Tuesday, May 10. DockerCon is a free, one day virtual event that is a unique experience for developers and development teams who are building the next generation of modern applications. If you want to learn about how to go from code to cloud fast and how to solve your development challenges, DockerCon 2022 offers engaging live content to help you build, share and run your applications. Register today at https://www.docker.com/dockercon/
The post New Docker Menu & Improved Release Highlights with Docker Desktop 4.5 appeared first on Docker Blog.
Quelle: https://blog.docker.com/feed/

The Impacts of an Insecure Software Supply Chain

Today, software regularly integrates open-source code from third-party sources into applications. While this practice empowers developers to create more capable software in a shorter time frame, it brings with it the risk of introducing inadequately vetted code. How aware are we of the security of our open-source code?

Most of us use pip or npm to freely install software, making decisions based on functionality and support. Efficiency is the goal when we have delivery targets to meet. If we choose not to use open-source solutions, we miss out on their significant productivity benefits. But, if we decide to use open-source solutions, we take the chance of potentially introducing insecure components into our software supply chains and must mitigate any risk with the right tools and processes.

So what is the software supply chain? The software supply chain comprises the steps it takes to develop code before it makes its way into an organization’s application. The chain includes all open-source contributors who wrote the code, the dependencies the code relies on, the repositories where developers downloaded the code, and the organization’s internal review. Each link in the chain represents a potential weak point where unsafe or malicious code can make its way into a production application. 

What Can Go Wrong

Google’s security policy points out that “if an attacker successfully injects any code at all, it’s pretty much game over.” Unfortunately, with continuous deployment (CD) becoming more commonplace, the window to spot such attacks before releasing infected code to users has narrowed.

Attackers’ goals are varied. Hijacking resources for cryptocurrency mining, harvesting username and password combinations for credential stuffing, and data scraping are just a few examples. The consequences are often dire.

Let’s explore some of the potential risks of using open-source solutions.

Common Forms of Attack

Malicious software posing as genuine packages routinely shows up in package management software. Two types of supply chain attacks take advantage of modern software’s numerous dependencies: typosquatting and dependency confusion. In both, the assailant uses a variety of tactics to trick the developer or management software into downloading a dependency file that can execute malicious code. 

Typosquatting

Typosquatting relies on the proximity of keys on a keyboard and common misspelling to gain entry. This method of attack transcends programming language bases. Since the early days of the web, domain name typosquatting has been a problem. Package and image deception has become increasingly prevalent, banking on developers’ quick fingers.

In typosquatting, a publisher has uploaded a package with a misspelled name. The misspelled name is so similar to the original package’s that the developer fails to notice they have misspelled the word, unknowingly downloading malicious code.

Dependency Confusion

Dependency confusion exploits the mix of private and public dependencies that software uses. Hackers typically inspect package.json files for Node.js applications to find internal unclaimed packages on npm. They create malicious packages with this same namespace, and automated developer tools install these external malicious packages instead of the intended internal package.

This tactic isn’t limited to npm. For example, Python’s pip displays insecurities ripe for exploitation. Here, a hacker can register a package on PyPi with the same name as an internal package, identified in a requirements.txt file. At registration, they select a higher version number than the genuine package. When this higher number is in builds that include –extra-index-url, it takes precedence, and this seemingly newer version replaces the older.

Like typosquatting, dependency confusion is a problem for all languages. Similar attacks could happen with a Maven pom.xml file or Gradle settings file in Java or a .csproj file referencing NuGet packages in .NET. Tools incorrectly substitute the code, leaving our application vulnerable.

It’s important to remember that these issues can be present deep in the chain, in transitive dependencies. In the diagram above, we can see that an attacker has targeted a dependency, of a dependency, of a dependency. This nesting makes our ecosystem unmanageable and challenging to audit. 

We may trust our developers not to make malicious codebase changes and perhaps feel content that a four-eye review policy will protect our software. When a dependency gets upgraded, we trust that someone else is carrying out reviews with our rigor. But this may not be the case for packages maintained in small teams or by individuals.

An Example Scenario

A malicious actor creates a seemingly innocent package, like some utility functions. Let’s call this Package X.

They then publish their code to a package distribution site. Remember, just because code is inspectable on GitHub doesn’t necessarily mean it’s the same code on the package management site.

They use Package X as part of a pull request into the code for Package Y, fixing minor bugs on open-source projects. Their genuinely-useful bug-fix has pulled in the malicious dependency (Package X), and presto! The malicious code is in the repository.

If our code uses Package Y, then our software inherits the vulnerability in Package X.

Organizations must update their open-source code constantly to mitigate the risk of hidden vulnerabilities. These organizations must also use detection methods such as automated vulnerability scanning to identify known vulnerabilities before they cause damage.

With global news coverage quick to publicize any data or security breach, these incidents can damage an organization’s reputation. Rebuilding that trust is highly challenging. 

Empowering Developers to Secure Your Supply Chain

All of the security risks that come with development means developers need access to tools that make security as easy as possible for them. Luckily, Docker seamlessly integrates security measures across our platform to help mitigate risks and secure the software supply chain. The first step is attestation and verification. To establish trust, we must verify code and not make any assumptions about its security. 

Docker’s Image Access Management feature, available to Docker Business users, enables organizations to control where they get their software. This approach shifts the control of access and permissions from developers to the site level, with toggle options to easily set options and role-based access control (RBAC) available to manage authorization at scale. This control helps ensure developers are only using approved and secure images.

Image Access Management is also a good way of guaranteeing the sources are legitimate. When your business has hundreds of developers, tracking what each software engineer is innocently installing becomes challenging. Docker Business users get an audit log that records the creation, deletion, and editing of teams and repositories to enhance visibility.

To help developers make better container image decisions, Docker provides a visual way of validating images via badging in Docker Hub. These badges are specific to Docker Verified Publisher Images and Docker Official Images and signal to developers that what they’re pulling is trusted, secure, and ready for use.

Docker also provides vulnerability scanning tools via our security partner, Snyk. Developers can use the Snyk scanner right in their CLI for the insight and visibility they need into the security posture of their local Dockerfiles and local images. This includes a list of Common Vulnerabilities and Exposures (CVEs), the sources, such as OS packages and libraries, versions in which they were introduced, and a recommended fixed version (if available) to remediate the CVEs discovered. When this step is automated, we no longer rely solely on our developers to manually scan for insecurities.

Gaining Peace of Mind

Returning to our Package X example, we now have multiple layers to prevent that worst-case scenario:

Image Access Management ensures that our developers can only pull base images from trusted, verified sources.Role-Based Access Control enables developers to reduce the blast radius by controlling which developers can bring in new content and potentially isolating the breach to a single team’s work.Vulnerability Scan automatically scans for CVEs when we build a new image. To quickly resolve our insecure dependency issues, Vulnerability Scanning vets and flags dependencies for our developers and offers remediation options.Audit Log provides three months of history capturing all activities. This record helps organizations discover all affected internal supply chains quickly.

This layered approach to security offers increased opportunities for checks. While vigilance and manual checks are still ideal, it’s reassuring to have these tools available to help prevent and combat attacks.

Conclusion

In this article, we’ve explored the genuine supply chain security problem, one that President Biden has even addressed.

By targeting an app’s dependencies, cybercriminals can reach multiple organizations with the hope of evading scrutiny. It’s often the easiest way to break in when organizations are locked down. Everyone is a potential target, and attacks can have wide-reaching implications. Assailants seem happy to play the long game and use social engineering to gain access, perhaps offering their time as repository maintainers. As developers and automated tools integrate components into systems, there become multiple points where an adversary could inject malware.Docker offers a robust suite of tools for vetting open-source code and dependencies before making their way into an application. Docker Business enables software development to continue to benefit from the productivity gains of containers without being hampered by security concerns.

Get started with Docker Business to discover how Docker helps keep your business safe and secure.

DockerCon2022

Join us for DockerCon2022 on Tuesday, May 10. DockerCon is a free, one day virtual event that is a unique experience for developers and development teams who are building the next generation of modern applications. If you want to learn about how to go from code to cloud fast and how to solve your development challenges, DockerCon 2022 offers engaging live content to help you build, share and run your applications. Register today at https://www.docker.com/dockercon/
The post The Impacts of an Insecure Software Supply Chain appeared first on Docker Blog.
Quelle: https://blog.docker.com/feed/

DockerCon: What Makes a Successful CFP Submission

The DockerCon 2022 Call for Papers is now open! DockerCon is one of the largest developer events in the world, with over 80,000 developers registering for each of the last two events. At the core of DockerCon is the chance for members of the community to share their tips, tricks, best practices and real-world experiences with one another. With the opening of the CFP, I also want to share some insights and suggestions to help you create a submission set up for success.

First: it helps to know your audience. At DockerCon, we draw attendees from all over the world with a range of experiences from newbie to guru. In general, however, the majority of the developers who attend DockerCon fall into these three categories:

New developers, who are just getting started with containerization, using Docker, and building cloud native applications. Sessions introducing Docker, ones that put Docker into context of popular programming languages such as JavaScript, Python, Go, .NET and Java, and that help a developer get up and running are quite popular. In these cases, sharing the details you wish you knew when you were getting started make for outstanding sessions and are some of our most viewed content.

Experienced developers, who use Docker but are looking for ways to get their applications built faster and grow their capabilities (both in terms of features as well as individual skills). Proposals for sessions that share best practices, case studies from real-world development experience, as well as ways to incorporate automation, scalability and security within a development inner loop. These all meet the needs of developers with more experience.

Expert developers, who are digging into the command line, building Docker Images from scratch, and contributing to OSS projects. These developers are attracted to the “black belt” sessions that dive into the internals of the Docker Engine, extensibility and integration into other tools such as CI/CD, repositories, and CSPs. Examples that show how hard problems are solved, how the Docker Engine works, digging into OSS projects, and showing how you can “run with scissors” make for compelling content on cutting-edge topics.

Next, it’s important to connect with developers in a natural and accessible way. What did you learn from your project? What surprised you? What do you wish you knew before you started your last project? These kinds of experiences are incredibly valuable, and help your peers move quickly and successfully by learning from your lessons. Mistakes can be the best teacher, don’t shy away from sharing these and what they taught you.

Finally, think of your session at DockerCon as the beginning of someone’s learning journey. I want you to create materials that help accelerate a developer’s application of lessons learned in their own projects. Sessions should have materials that help a developer take what they’ve learned and apply it quickly in their own app. As you write your sample code, think how you can package it for use by your attendees: create an awesome-compose example, a Docker Dev Environment, a GitHub repo with the sample code, or other ways to take your code and deliver it in a way to jump start a developer learning journey. We are prioritizing selection of sessions with these assets included in the talk, but more importantly, it will create a better experience for your audience.

I can’t wait to see what great ideas you have for this year’s DockerCon. The deadline is March 3rd, If you have any questions, comments or just want to connect. You can reach me in our Community Slack or on twitter at @pmckee.

DockerCon2022

Join us for DockerCon2022 on Tuesday, May 10. DockerCon is a free, one day virtual event that is a unique experience for developers and development teams who are building the next generation of modern applications. If you want to learn about how to go from code to cloud fast and how to solve your development challenges, DockerCon 2022 offers engaging live content to help you build, share and run your applications. Register today at https://www.docker.com/dockercon/
The post DockerCon: What Makes a Successful CFP Submission appeared first on Docker Blog.
Quelle: https://blog.docker.com/feed/

Celebrating Our Second Fiscal Year

Yesterday, January 31, we finished our second full fiscal year since our November 2019 restructuring and recapitalization, and I couldn’t be prouder of the Docker team and what we’ve accomplished together. While it’s difficult to summarize 12 months, highlights include:

Shipping 7,000+ product features, fixes, and updates to developers, including Docker Desktop for M1 Macs, Docker Compose v2, NVIDIA GPU support, single sign-on, BuildKit speed-ups, Docker Development Environments, multi-platform builds, image access management, rapid updates for Log4Shell, audit logs, and much more;Growing our Docker community of developers to more than 15 million monthly active users from 200+ countries, including over 80,000 participants in DockerCon 2021;Welcoming new partners who provide trusted content for our developers – more than 1,200 open source and commercial publishers across Docker Official Images, Docker Verified Publisher images, and Docker-sponsored open source projects;Accelerating our annual recurring revenue (ARR) to over $50 million, representing more than 4X year-over-year growth. This helps us make Docker a lasting, sustainable business able to scale to meet the needs of tens of millions of developers.

Support from Docker customers is driving rapid growth in our business which, in turn, is enabling us to accelerate investment in our product. As a result, you’ve seen us pull forward the delivery of popular public roadmap items including Docker Desktop for Linux, filesystem performance improvements, pause / resume, and more.

None of this would have been possible without the tremendous efforts of the Docker team, past and present. From a place of much risk and uncertainty in November 2019, we have come together as a team to focus on developers, ship products they love to use, and build a company and culture to bring out everyone’s best. To wit, over the last year we’ve seen employee engagement increase by 16% and retention increase by 23%.

Finally, we thank the Docker community of developers, Docker Captains, partners, and customers – your support this past fiscal year was critical to our success. We’re far from finished, and we’ve got a lot cookin’ in 2022! We look forward to seeing you and sharing more at Docker’s 9th Birthday Party in March and DockerCon 2022 in May!

Learn More

Docker public roadmap on GitHubAccelerating New Features in Docker DesktopDocker’s Next Chapter

DockerCon2022

Join us for DockerCon2022 on Tuesday, May 10. DockerCon is a free, one day virtual event that is a unique experience for developers and development teams who are building the next generation of modern applications. If you want to learn about how to go from code to cloud fast and how to solve your development challenges, DockerCon 2022 offers engaging live content to help you build, share and run your applications. Register today at https://www.docker.com/dockercon/
The post Celebrating Our Second Fiscal Year appeared first on Docker Blog.
Quelle: https://blog.docker.com/feed/

Dockerize your own Game of Thrones’ API

This article will demonstrate a fun and useful use case of docker, where we will create and deploy to production a custom-made API. In our case, it will provide information about the episodes of the TV show “Game of Thrones”. Besides Docker, our stack will include:

About the API

The API will serve information about episodes and comments about them. There are endpoints for posting, deleting and editing those comments as well. The documentation can be accessed here. Also, its raw .json version is in the repository, just in case the link is no longer up.

About Terraform

This is an optional part for the project, but it is highly recommended as it demonstrates how easily we can automate the process of creating and managing cloud services. Here, we used it to create a server accordingly to our specification (Ubuntu 20.04, 1 CPU, 25 GB Disk), besides that, a SSH key was added to the server, so we can access it without being prompted for passwords. Learn more about SSH here.

About Docker Compose V2 plugin

Instead of the well-known “docker-compose”, we will use its new version, which now is accessible by the command “docker compose” (space instead of dash). This new tool is built in Golang, so it is faster than the former (built in Python). It also includes new features, such as the “profiles” attribute, that can be used to create groups of containers we wish to run from the docker-compose.yml file. Learn more about Docker Compose V2 here.

Sequence diagram

This sequence diagram illustrates the steps that will be taken in the whole process of deploying our API.

In short, Terraform will create the new server on Digital Ocean, then, from the new server, we will clone the API repository from GitHub and start the containers with “docker  compose”. By doing so, the API will be available on the internet, via the server’s public address on port 5000 (used by the Flask project).

Considerations

The remote server was accessed by using “root”, which is the default user created when the new server instance was created. Having “root” remote accessing a server is not considered a good practice, The alternative is to create a new user for thar purpose and disable root access on the server (the SSH article referenced above demonstrates how to to so).

Regarding the API access, if you wish to use a similar project for professional/commercial usages, it is recommended to implement some mechanism to limit/control the API requests. There are several options out there for this purpose.

Further information

API Repository: https://github.com/costa86/game-of-thrones-api

About the author: https://costa86.com/

This is a guest blog post from Docker community member Lorenzo Costa. The blog originally appeared here. A video presentation of this post from Docker’s Community All-Hands can be found here.

DockerCon2022

Join us for DockerCon2022 on Tuesday, May 10. DockerCon is a free, one day virtual event that is a unique experience for developers and development teams who are building the next generation of modern applications. If you want to learn about how to go from code to cloud fast and how to solve your development challenges, DockerCon 2022 offers engaging live content to help you build, share and run your applications. Register today at https://www.docker.com/dockercon/
The post Dockerize your own Game of Thrones’ API appeared first on Docker Blog.
Quelle: https://blog.docker.com/feed/