Top Related Projects
Primary source of truth for the Docker "Official Images" program
The Moby Project - a collaborative project for the container ecosystem to assemble container-based systems
Production-Grade Container Scheduling and Management
Define and run multi-container applications with Docker
An open and reliable container runtime
CLI tool for spawning and running containers according to the OCI specification
Quick Overview
Bitnami Containers is a GitHub repository that provides a collection of Docker containers for popular open-source applications and development stacks. These containers are pre-configured, secure, and optimized for production use, making it easier for developers to deploy and manage applications in containerized environments.
Pros
- Ready-to-use containers for a wide range of applications and stacks
- Regularly updated with security patches and new versions
- Optimized for performance and resource efficiency
- Well-documented and maintained by Bitnami's team of experts
Cons
- Some containers may have specific configuration requirements
- Limited customization options for certain applications
- Dependency on Bitnami's update schedule for new versions
- Potential learning curve for users new to containerization
Getting Started
To get started with Bitnami Containers, follow these steps:
- Install Docker on your system if you haven't already.
- Choose a container from the Bitnami Containers repository.
- Pull the container image using Docker:
docker pull bitnami/<container-name>:<tag>
- Run the container with the appropriate configuration:
docker run --name <container-name> bitnami/<container-name>:<tag>
For more detailed instructions and configuration options, refer to the specific container's documentation in the repository.
Competitor Comparisons
Primary source of truth for the Docker "Official Images" program
Pros of official-images
- Officially supported by Docker, ensuring high-quality and well-maintained images
- Extensive documentation and best practices for image creation
- Wider range of base images and operating systems
Cons of official-images
- Less frequent updates compared to containers
- Fewer application-specific images and configurations
- Limited customization options for end-users
Code Comparison
official-images:
FROM debian:buster-slim
RUN apt-get update && apt-get install -y \
nginx \
&& rm -rf /var/lib/apt/lists/*
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
containers:
FROM bitnami/minideb:buster
RUN install_packages nginx
COPY rootfs /
ENTRYPOINT [ "/opt/bitnami/scripts/nginx/entrypoint.sh" ]
CMD [ "/opt/bitnami/scripts/nginx/run.sh" ]
The official-images Dockerfile is more straightforward, while the containers Dockerfile uses Bitnami's custom base image and includes additional scripts for improved configurability.
The Moby Project - a collaborative project for the container ecosystem to assemble container-based systems
Pros of Moby
- More comprehensive and feature-rich container platform
- Larger community and ecosystem for support and contributions
- Offers advanced networking and orchestration capabilities
Cons of Moby
- Steeper learning curve due to its complexity
- Heavier resource footprint compared to simpler container solutions
- May be overkill for basic containerization needs
Code Comparison
Moby (Docker) Dockerfile example:
FROM ubuntu:20.04
RUN apt-get update && apt-get install -y nginx
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
Bitnami Containers example:
FROM bitnami/minideb:buster
RUN install_packages nginx
EXPOSE 8080
CMD ["nginx", "-g", "daemon off;"]
Summary
Moby (formerly Docker) is a more comprehensive container platform with advanced features and a large ecosystem. It's suitable for complex containerization needs but may be overkill for simpler use cases. Bitnami Containers, on the other hand, focuses on providing pre-built, secure, and optimized container images for various applications and development stacks. It offers a simpler approach to containerization, making it easier for developers to get started with containerized applications quickly.
Production-Grade Container Scheduling and Management
Pros of Kubernetes
- Comprehensive container orchestration platform with advanced features
- Extensive ecosystem and community support
- Highly scalable and suitable for large-scale deployments
Cons of Kubernetes
- Steeper learning curve and more complex setup
- Requires more resources to run and maintain
- May be overkill for smaller projects or simpler container deployments
Code Comparison
Kubernetes manifest example:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3
selector:
matchLabels:
app: nginx
Bitnami Containers Dockerfile example:
FROM bitnami/minideb:bullseye
RUN install_packages nginx
EXPOSE 8080
CMD ["nginx", "-g", "daemon off;"]
Summary
Kubernetes is a powerful container orchestration platform suitable for complex, large-scale deployments, while Containers focuses on providing pre-built, secure container images for various applications. Kubernetes offers more advanced features but requires more resources and expertise, whereas Containers simplifies the process of deploying containerized applications with ready-to-use images.
Define and run multi-container applications with Docker
Pros of Compose
- Offers a more flexible and customizable approach to defining multi-container applications
- Provides a unified CLI tool for managing complex Docker environments
- Supports various deployment options, including local development and production environments
Cons of Compose
- Requires more manual configuration and setup compared to pre-built containers
- May have a steeper learning curve for beginners in containerization
- Lacks the extensive library of pre-configured application stacks available in Containers
Code Comparison
Compose example:
version: '3'
services:
web:
image: nginx:alpine
ports:
- "80:80"
Containers example:
docker run -d --name nginx-server -p 80:80 bitnami/nginx:latest
Summary
Compose offers greater flexibility and control over container configurations, making it ideal for complex, custom applications. It provides a powerful tool for managing multi-container environments but requires more manual setup.
Containers, on the other hand, offers a vast collection of pre-configured, production-ready containers for popular applications. It simplifies deployment with minimal configuration but may be less flexible for highly customized setups.
The choice between the two depends on the specific needs of your project, with Compose being more suitable for custom, complex applications and Containers being ideal for quick, standardized deployments.
An open and reliable container runtime
Pros of containerd
- Core container runtime used by Docker and Kubernetes, offering deeper integration with container ecosystems
- Highly performant and lightweight, designed for production-grade container management
- Extensive features for container lifecycle management, including image transfer, storage, and execution
Cons of containerd
- Steeper learning curve, primarily aimed at advanced users and system-level integrations
- Less user-friendly for developers seeking ready-to-use application containers
- Requires additional tooling for higher-level container orchestration and management
Code comparison
containerd:
import (
"github.com/containerd/containerd"
"github.com/containerd/containerd/cio"
)
client, err := containerd.New("/run/containerd/containerd.sock")
container, err := client.NewContainer(ctx, "redis", spec)
bitnami/containers:
FROM bitnami/minideb:bullseye
RUN install_packages redis
EXPOSE 6379
CMD ["redis-server"]
Summary
containerd is a low-level container runtime focusing on core container operations, while bitnami/containers provides pre-built, application-specific container images. containerd offers more control and integration possibilities but requires more expertise, whereas bitnami/containers emphasizes ease of use and quick deployment of popular applications.
CLI tool for spawning and running containers according to the OCI specification
Pros of runc
- Low-level container runtime, providing more control over container execution
- Implements OCI (Open Container Initiative) runtime specification, ensuring compatibility
- Lightweight and focused on core container runtime functionality
Cons of runc
- Requires more technical expertise to use effectively
- Less user-friendly for those seeking pre-configured container solutions
- Limited to container runtime, lacking higher-level features found in containers
Code Comparison
runc (runtime configuration):
{
"ociVersion": "1.0.1-dev",
"process": {
"terminal": true,
"user": {
"uid": 0,
"gid": 0
},
"args": [
"sh"
],
"env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"TERM=xterm"
],
"cwd": "/"
}
}
containers (Dockerfile example):
FROM bitnami/minideb:bullseye
LABEL maintainer="Bitnami <containers@bitnami.com>"
ENV HOME="/" \
OS_ARCH="amd64" \
OS_FLAVOUR="debian-11" \
OS_NAME="linux"
COPY prebuildfs /
# Install required system packages and dependencies
RUN install_packages ca-certificates curl libssl1.1 procps
RUN . /opt/bitnami/scripts/libcomponent.sh && component_unpack "node" "14.17.6-0" --checksum 4a4a81c3b4c2d7480b2f0a54b3e3eba1d62a74c0d71e0b97c1d651c6288d0ef2
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
The Bitnami Containers Library
Popular applications, provided by Bitnami, containerized and ready to launch.
Why use Bitnami Images?
- Bitnami closely tracks upstream source changes and promptly publishes new versions of this image using our automated systems.
- With Bitnami images the latest bug fixes and features are available as soon as possible.
- Bitnami containers, virtual machines, and cloud images use the same components and configuration approach - making it easy to switch between formats based on your project needs.
- All our images are based on minideb -a minimalist Debian-based container image that gives you a small base container image and the familiarity of a leading Linux distribution- or scratch -an explicitly empty image-.
- All Bitnami images available in Docker Hub are signed with Notation. Check this post to know how to verify the integrity of the images.
- Bitnami container images are released regularly with the latest distribution packages available.
Looking to use our applications in production? Try VMware Tanzu Application Catalog, the enterprise edition of Bitnami Application Catalog.
Get an image
The recommended way to get any of the Bitnami Images is to pull the prebuilt image from the Docker Hub Registry.
docker pull bitnami/APP
To use a specific version, you can pull a versioned tag.
docker pull bitnami/APP:[TAG]
If you wish, you can also build the image yourself by cloning the repository, changing to the directory containing the Dockerfile, and executing the docker build
command.
git clone https://github.com/bitnami/containers.git
cd bitnami/APP/VERSION/OPERATING-SYSTEM
docker build -t bitnami/APP .
Remember to replace the
APP
,VERSION
, andOPERATING-SYSTEM
placeholders in the example command above with the correct values.
Run the application using Docker Compose
The main folder of each application contains a functional docker-compose.yml
file. Run the application using it as shown below:
curl -sSL https://raw.githubusercontent.com/bitnami/containers/main/bitnami/APP/docker-compose.yml > docker-compose.yml
docker-compose up -d
Remember to replace the
APP
placeholder in the example command above with the correct value.
Vulnerability scan in Bitnami container images
As part of the release process, the Bitnami container images are analyzed for vulnerabilities. At this moment, we are using two different tools:
This scanning process is triggered via a GH action for every PR affecting the source code of the containers, regardless of its nature or origin.
Retention policy
Deprecated assets will be retained in the container registry (Bitnami DockerHub org) without changes for, at least, 6 months after the deprecation.
After that period, all the images will be moved to a new "archived" repository. For instance, once deprecated an asset named foo whose container repository was bitnami/foo
, all the images will be moved to bitnami/foo-archived
where they will remain indefinitely.
Special images, like bitnami/bitnami-shell
or bitnami/sealed-secrets
, which are extensively used in Helm charts, will have an extended coexistence period of 1 year.
Contributing
We'd love for you to contribute to those container images. You can request new features by creating an issue, or submit a pull request with your contribution.
License
Copyright © 2024 Broadcom. The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Top Related Projects
Primary source of truth for the Docker "Official Images" program
The Moby Project - a collaborative project for the container ecosystem to assemble container-based systems
Production-Grade Container Scheduling and Management
Define and run multi-container applications with Docker
An open and reliable container runtime
CLI tool for spawning and running containers according to the OCI specification
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot