Archive

Category Archives for "Docker Blog"

Released: Docker Desktop for Mac [Apple Silicon]

Today we are excited to announce the general availability of Docker Desktop for Mac [Apple Silicon], continuing to support developers in our community with their choice of local development environments.  

First, we want to say a big thank you to our community. The excitement you have shown about being able to run Docker Desktop on the new M1 chip has been tremendous and hugely motivating to us. Your engagement on testing builds and reporting problems has been invaluable. As soon as Apple announced the new M1 chip, you let us know on our public roadmap that this was a high priority for you, and it quickly became by far our most upvoted roadmap item ever. You also responded very positively to our previous blog posts.

After the M1 machines were publicly available, those of you on our developer preview program tested some very early builds. And then as we moved into public tech previews and release candidates, many more of you joined in with testing your enormous variety of use cases, and reporting bugs. In total we have had 45,000 downloads of the various preview builds, and 140 tickets raised on our public bug tracker, not to Continue reading

Captain Take 5 – Nuno do Carmo

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 Nuno do Carmo who has been a Docker Captain since 2019. He is a Sr System Analyst for a pharmaceutical company based in Switzerland and he is based in Montreux.

How/when did you first discover Docker?

Back in 2015, I was hanging with friends and we would meet once a week to check on technologies and we found out a training on Pluralsight, given by a certain Nigel Poulton, and we decided to “temporarily” download it, **cough**.

Both the training method from Nigel and the technology of Docker were an instant hit for us. We started to learn as hobbyists and fast forward, I guess I took it more at heart than my friends, haha.

What is your favorite Docker command?

`docker Continue reading

Changing How Updates Work with Docker Desktop 3.3

Today we are pleased to announce the release of Docker Desktop 3.3.

We’ve been listening to your feedback on our Public Roadmap and we are consistently asked for three things: smaller downloads, more flexible installation options, and more frequent feature releases, bug fixes, and security updates.

We also heard from our community that the smaller updates are appreciated, requiring immediate installation is not convenient, and automatic background downloads are problematic for developers on constrained or metered bandwidth.

We’ve heard you and are changing how updates to Docker Desktop work, while still maintaining the ability to provide you with smaller, faster updates. We are also providing additional flexibility to developers with Pro or Team subscriptions.

Flexibility for Updates 

With Docker Desktop 3.3, when a new update to Docker Desktop is available, it will no longer be automatically downloaded and installed on your next restart. You can now choose when to start the download and installation process.

To encourage developers to stay up to date, we have built in increasingly persistent reminders after an update has become available.

If you use Docker Desktop at work you may need to skip a specific update. For this reason, Pro or Team subscription Continue reading

Get Involved with Docker

Every day, hundreds of passionate Docker users around the world contribute to Docker. Whether you are just getting started or are an expert in your field, there are many ways to get involved and start contributing to Docker. If you’re into technical writing, you can easily publish and/or edit articles in docs.docker.com. If you’re more into code contribution, there are dozens of open source Docker projects you can dive into. Or if you’re just interested in sharing knowledge and spreading Docker goodness, you can organize a local meetup or a virtual workshop on our community events page. 

There are literally countless ways one can contribute to Docker. This makes it sometimes a bit difficult to find the right project or activity that maps to your interests and level of Docker expertise. That’s why we’ve been working to make it easier for anyone to learn more about ways to contribute and find the right project or activity. To this end, we created a community-driven website that aims to make it easier than ever to navigate the many different contribution opportunities that exist at Docker, and ultimately, to find the right contribution pathway to get started. 

The website Continue reading

Compiling Containers – Dockerfiles, LLVM and BuildKit

Today we’re featuring a blog from Adam Gordon Bell at Earthly who writes about how BuildKit, a technology developed by Docker and the community, works and how to write a simple frontend. Earthly uses BuildKit in their product.

Introduction

How are containers made? Usually, from a series of statements like `RUN`, `FROM`, and `COPY`, which are put into a Dockerfile and built.  But how are those commands turned into a container image and then a running container?  We can build up an intuition for how this works by understanding the phases involved and creating a container image ourselves. We will create an image programmatically and then develop a trivial syntactic frontend and use it to build an image.

On `docker build`

We can create container images in several ways. We can use Buildpacks, we can use build tools like Bazel or sbt, but by far, the most common way images are built is using `docker build` with a Dockerfile.  The familiar base images Alpine, Ubuntu, and Debian are all created this way.     

Here is an example Dockerfile:

FROM alpine
COPY README.md README.md
RUN echo "standard docker build" > /built.txt"

We will be using Continue reading

A Birthday Challenge as Docker Turns 8

Time flies. Eight years ago Docker was introduced to the world and forever changed the way applications are developed. We have enjoyed watching developers from all walks of life and from every corner of the globe bring their ideas to life using our technology. 

As is our tradition in the Docker community, and as announced during our last Community All-Hands, we are celebrating Docker’s big day with a birthday challenge where Docker users are encouraged to learn some of our Docker Captain’s favorite tips + tricks by completing 8 hands-on interactive exercises. Unlike last year’s challenge, this year as you complete an exercise you not only earn badges but you also earn points based on speed and accuracy which will be displayed on a leaderboard organised by individual score, country score and Captain score.

The challenge is on for the next month and we will announce the winners and award special prizes to the top three individual scores. 

So let’s celebrate 8 years of Docker and let the challenge begin!

The post A Birthday Challenge as Docker Turns 8 appeared first on Docker Blog.

DockerCon LIVE 2021 Registration is Now Open

We’re excited to announce that registration for DockerCon LIVE 2021 is now officially open!

Taking place on Thursday, May 27th, the one day virtual event brings together all of the application development technology, skills, tools and people to help you build, share and run applications faster. And the best part? It’s FREE.  

Attendees will:

  • Learn about the latest Docker features and technology updates
  • See live, on-demand technical demos
  • Talk to a panel of experts and industry leaders who can help you build better apps 
  • Connect with peers and network with a thriving, vibrant community of developers
  • Share experiences with other developers about creating leading edge cloud native applications for any cloud environment
  • Attend tutorials on how to get started with containers and how to use multiple languages
  • Get best practices tips and insights from innovative organizations that are building next generation applications with Docker
  • Hear about what’s new with tools and partner integration
  • Participate in live sessions with Docker Captains

Be in on the Action

Our Call For Presentations is open until April 1st so there’s still time for you to submit a talk. If you have any questions about our CFP or the the conference in general, Continue reading

Advanced Image Management in Docker Hub

We are excited to announce the latest feature for Docker Pro and Team users, our new Advanced Image Management Dashboard available on Docker Hub. The new dashboard provides developers with a new level of access to all of the content you have stored in Docker Hub providing you with more fine grained control over removing old content and exploring old versions of pushed images. 

Historically in Docker Hub we have had visibility into the latest version of a tag that a user has pushed, but what has been very hard to see or even understand is what happened to all of those old things that you pushed. When you push an image to Docker Hub you are pushing a manifest, a list of all of the layers of your image, and the layers themselves.

When you are updating an existing tag, only the new layers will be pushed along with the new manifest which references these layers. This new manifest will be given the tag you specify when you push, such as bengotch/simplewhale:latest. But this does mean that all of those old manifests which point at the previous layers that made up your image are removed from Hub. These Continue reading

Docker Community All Hands Recap

We are sharing a recap of last week’s second quarterly Community All-Hands and the feedback we got from the community.

The Community All-Hands deepen our engagement with the Docker community and bring users, contributors and staff together on a quarterly basis. It is an opportunity for the community to get updates on what we’re working on and align on priorities for the year. It also provides a live forum for the community to engage and ask questions directly to Docker’s executive and community leadership. 

In December, we wrote that we wanted to build on the feedback we got after our first Community All-Hands and that we are committed to providing more content, a longer format and make it more interactive for attendees. To this end, we chose to extend the event by 2 hours and include parallel tracks with more speakers and a mix of live keynotes, workshops, lightning talks and regional content. We also picked the Tulu.la video platform to host the event, leveraging their awesome innovative features (eg. integrated chat, multi-casting, WebRTC).

These improvements paid off in an impressive way: we had close to 3,000 unique attendees (including Youtube-live stream viewers), almost tripling the number of Continue reading

Docker and CNCF Join Forces for “Container Garage” Event Series

At Docker, we’re constantly trying to engage and connect with developer communities around the world to explore ways we can cross pollinate ideas, share, and learn from each other. Today, we’re thrilled to announce that Docker and the CNCF are joining forces to run a community-led event series called “Container Garage”, covering all things containers and focusing on a particular theme each time (eg. “runtime”, “images”, “security” etc…). The aim of the event is to engage our respective communities and foster closer collaboration.

To this end Docker Captains and CNCF Ambassadors are taking the lead with the planning and execution of the event, working in lock-step to curate excellent content and recruit amazing speakers for engaging talks, demos, and live panels.

The kick-off event will be on Thursday April 1st around the theme of container runtimes. The agenda is structured as follows: 

2pm – 4pm CET : Talks & Demos

4pm – 4:15 CET : Break

4:15pm – 5pm CET : Live panel discussion

5pm – 5:15 : Break

5pm – 7pm CET : Talks & Demos 

Again, the first event will be held on April 1st on the topic of container runtimes.

You can register for free Continue reading

Docker Series B: More Fuel To Help Dev Teams Get Ship Done

Today we’re excited and humbled to announce Docker’s Series B raise of $23 million to accelerate our mission of delivering tools development teams love to quickly take their ideas from code to cloud. The round was led by Tribe Capital with participation from our existing investors, Benchmark and Insight Partners. Arjun Sethi, Tribe co-founder and partner, will join the Docker board. 

This would not have been possible without the Docker team: Thank you for giving each other your best, every day, despite the disruptions of the refocusing, the pandemic, the overnight switch to work-from-home, and so much more. We also thank our developer community of users, contributors, customers, partners, and Docker Captains – your enthusiastic engagement throughout this past year was invaluable.

Hit Refresh

Tribe sees in Docker what we saw in November 2019 when we refocused the company: the opportunity to build on the bottoms-up developer love of the Docker experience and provide a collaborative app development platform for development teams to accelerate getting their ideas from code to cloud. And that’s just what we did.

Key inputs to Tribe’s investment decision were our results this last year, which included attracting 80,000 developer participants to DockerCon 2020, adding Continue reading

Docker Compose: From Local to Amazon ECS

By using cloud platforms, we can take advantage of different resource configurations and compute capacities. However, deploying containerized applications on cloud platforms is proving to be quite challenging, especially for new users who have no expertise on how to use that platform. As each platform may provide specific APIs, orchestrating the deployment of a containerized application can become a hassle.

Docker Compose is a very popular tool used to manage containerized applications deployed on Docker hosts. Its popularity is maybe due to the simplicity on how to define an application and its components in a Compose file and the compact commands to manage its deployment.

Since cloud platforms for containers have emerged, being able to deploy a Compose application on them is a most-wanted feature by many developers that use Docker Compose for their local development.

In this blog post, we discuss how to use Docker Compose to deploy containerized applications to Amazon ECS. We aim to show how the transition from deploying to a local Docker environment to deploying to Amazon ECS is effortless, the application being managed in the same way for both environments.

Requirements

In order to exercise the examples in this blogpost, the following tools need Continue reading

Guest Post: Calling the Docker CLI from Python with Python-on-whales

Image: Alice Lang, [email protected]

At Docker, we are incredibly proud of our vibrant, diverse and creative community. From time to time, we feature cool contributions from the community on our blog to highlight some of the great work our community does. The following is a guest post by Docker community member Gabriel de Marmiesse. Are you working on something awesome with Docker? Send your contributions to William Quiviger (@william) on the Docker Community Slack and we might feature your work!   

The most common way to call and control Docker is by using the command line.

With the increased usage of Docker, users want to call Docker from programming languages other than shell. One popular way to use Docker from Python has been to use docker-py. This library has had so much success that even docker-compose is written in Python, and leverages docker-py.

The goal of docker-py though is not to replicate the Docker client (written in Golang), but to talk to the Docker Engine HTTP API. The Docker client is extremely complex and is hard to duplicate in another language. Because of this, a lot of features that were in the Docker client could not be available in Continue reading

Desktop Support for iTerm2 – A Feature Request from the Docker Public Roadmap

The latest Docker Desktop release, 3.2, includes support for iTerm2 which is a terminal emulator that is highly popular with macOS fans. From the Containers/Apps Dashboard, for a running container, you can click `CLI` to open a terminal and run commands on the container. With this latest release of Docker Desktop, if you have installed iTerm2 on your Mac, the CLI option opens an iTerm2 terminal. Otherwise, it opens the Terminal app on Mac or a Command Prompt on Windows. 

Of note, this feature request to support additional terminals started from the Docker public roadmap. Daniel Rodriguez, one of our community members, submitted the request to the public roadmap. 180 people upvoted that request and we added it and prioritized it on our public roadmap. 

The public roadmap is our source of truth for community feedback on prioritizing product updates and feature enhancements. Not everything submitted to the public roadmap will end up as a delivered feature, but the support for M1 chipsets, image vulnerability scanning and audit logging – all delivered within the last year – all started as issues submitted via the roadmap.  

This is the easiest way for you to let us know Continue reading

Join Us Next Week for Docker’s Community All-Hands

Next week, on Thursday March 11th, 2021 (8am PST/5pm CET) we’ll be hosting our next quarterly Docker Community All-Hands. This free virtual event, open to everyone, is a unique opportunity for Docker staff and the broader Docker community to come together for company and product updates, live demos, community presentations and a live Q&A. 

As luck would have it, this All-Hands will coincide almost to the day with Docker’s 8th birthday (yay!). To mark the occasion, we’re going to make this event extra special by introducing : 

  • a longer format (ie. 3 hours instead of 1 hour)
  • lots more content (ie. demos, community lightning talks and workshops)
  • regional content in French, Spanish and Portuguese! 

We’re also really excited about the new video platform we’ll be using that makes it much easier for attendees to engage/connect/share with each other.

Who will be presenting

  • Members of Docker’s leadership team including Scott Johnston (CEO), Justin Cormack (CTO), Donnie Berkholz (VP of Products) and Jean-Laurent de Morlhon (VP of Engineering)
  • Members of Docker’s product, engineering and community team
  • Docker Captains and Community Leaders

What we’ll cover

  • Company vision and product roadmap for 2021 and beyond
  • High-level overview of Docker’s technology strategy 
  • Continue reading

How to Write a Great Talk Proposal for DockerCon LIVE 2021

First off, a big thank you to all those who have already submitted a talk proposal for DockerCon LIVE 2021. We’re seeing some really excellent proposals and we look forward to reviewing many more! We opened the CFP on February 8th and with a few more weeks to go before we close the CFP on March 15th there’s still lots of time to submit a talk. 

If you’re toying with the idea of submitting a talk but you’re still not sure whether or not your topic is interesting enough, or how to approach your topic, or if you just need a little push in the right direction to write up your proposal and click on “Send”, below are a few resources we thought you might find interesting. 

Amanda Sopkin wrote a great article a few years ago that has now become a reference for conference organizers sharing tips on how to get a technical talk accepted for a conference.  We also like Todd Lewis’ 13 tips on how to write an awesome talk proposal for a tech conference. Other interesting articles include: 

How to Use Your Own Registry

One of the things that makes the Docker Platform so powerful is how easy it is to use images from a central location. Docker Hub is the premier Image Repository with thousands of Official Images ready for use. It’s also just as easy to push your own images to the Docker Hub registry so that everyone can benefit from your Dockerized applications.

But in certain scenarios, you might not want to push your images outside of your firewall. In this case you can set up a local registry using the open source software project Distribution. In this article we’ll take a look at setting up and configuring a local instance of the Distribution project where your teams can share images with docker commands they already know: docker push and docker pull.

Prerequisites

To complete this tutorial, you will need the following:

Running the Distribution service

The Distribution project has been packaged as an Official Image on Docker Hub. To run a version locally, execute the following command:

$ docker run -d -p 5000:5000 --name Continue reading

Captains Take 5 – Nick Janetakis

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 Nick Janetakis who has been a Docker Captain since 2016. He is a freelance full stack developer / teacher and is based in New York, United States.

How/when did you first discover Docker?

I was doing freelance web development work and kept running into situations where it was painful to set up my development environment for web apps created with Ruby on Rails. Different apps had different Ruby version requirements as well as needing different PostgreSQL and Redis versions too.

I remember running a manually provisioned Linux VM on my Windows dev box and did most of my development there. I even started to use LXC directly within that Linux VM.

That wasn’t too bad after investing a lot of time to Continue reading

Compiling Qt with Docker Using Caching

This is a guest post from Viktor Petersson, CEO of Screenly.io. Screenly is the most popular digital signage product for the Raspberry Pi. Find Viktor on Twitter @vpetersson.

In the previous blog post, we talked about how we compile Qt for Screenly OSE using Docker’s nifty multi-stage and multi-platform features. In this article, we build on this topic further and zoom in on caching. 

Docker does a great job with caching using layers. Each command (e.g., RUN, ADD, etc.) generates a layer, which Docker then reuses in future builds unless something changes. As always, there are exceptions to this process, but this is generally speaking true. Another type of caching is caching for a particular operation, such as compiling source code, inside a container.

At Screenly, we created a Qt build environment inside a Docker container. We created this Qt build to ensure that the build process was reproducible and easy to share among developers. Since the Qt compilation process takes a long time, we leveraged ccache to speed up our Qt compilation. Implementing ccache requires volume mounting a folder from outside of the Docker environment. 

The above steps work well if you Continue reading

New Docker Desktop Preview for Apple M1 Released

This is just a quick update to let you know that we’ve released another preview of Docker Desktop for Apple M1 chips, which you can download from our Docker Apple M1 Tech Preview page. The most exciting change in this version is that Kubernetes now works.

First, a big thank you to everyone who tried out the previous preview and gave us feedback. We’re really excited to see how much enthusiasm there is for this, and also really grateful to you for reporting what doesn’t yet work and what your highest priorities are for quick fixes. In this post, we want to update you on what we’ve done and what we’re still working on.

Some of the biggest things we’ve been doing since the New Year are not immediately visible but are an essential part of eventually turning this into a supported product. The previous preview was built on a developer’s laptop from a private branch. Now all of the code is fully integrated into our main development branch. We’ve extended our CI suite to add several M1 machines, and we’ve extended our CI code to build and test Docker Desktop itself and all our dependencies for both architectures in Continue reading