From 606cb045136f581716f5df64c2a7bccb21aacaea Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Sun, 18 Mar 2018 12:59:03 +0100 Subject: [PATCH 1/2] critical css --- README.md | 2 +- build.js | 8 +- critical-css.js | 30 + index.html | 2 + index.tmpl | 28 - package.json | 5 +- favicon.png => website/favicon.png | Bin website/index.html | 913 +++++++++++++++++++++++++++++ index.js => website/index.js | 0 website/index.tmpl | 255 ++++++++ style.css => website/style.css | 0 11 files changed, 1209 insertions(+), 34 deletions(-) create mode 100644 critical-css.js delete mode 100644 index.tmpl rename favicon.png => website/favicon.png (100%) create mode 100644 website/index.html rename index.js => website/index.js (100%) create mode 100644 website/index.tmpl rename style.css => website/style.css (100%) diff --git a/README.md b/README.md index 2ab3aea..71d50b5 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ If this list is not complete, you can [contribute][editREADME] to make it so. He ***You can see the updates from [TWITTER](https://twitter.com/awesome_docker)*** -> **Please**, help organize these resources so that they are _easy to find_ and _understand_ for new comers. See how to **[Contribute](https://github.com/veggiemonk/awesome-docker/blob/master/CONTRIBUTING.md)** for tips! +> **Please**, help organize these resources so that they are _easy to find_ and _understand_ for new comers. See how to **[Contribute](https://github.com/veggiemonk/awesome-docker/blob/master/.github/CONTRIBUTING.md)** for tips! #### *If you see a link here that is not (any longer) a good fit, you can fix it by submitting a [pull request][editREADME] to improve this file. Thank you!* diff --git a/build.js b/build.js index 5b9f348..4c04a27 100644 --- a/build.js +++ b/build.js @@ -27,20 +27,20 @@ const converter = new showdown.Converter({ // converter.setFlavor('github'); console.log('Loading files...'); -const index = fs.readFileSync('index.tmpl', 'utf8'); +const index = fs.readFileSync('website/index.tmpl', 'utf8'); const readme = fs.readFileSync('README.md', 'utf8'); console.log('Merging files...'); const $ = cheerio.load(index); $('#md').append(converter.makeHtml(readme)); -console.log('Writing main.html'); -fs.writeFileSync('main.html', $.html(), 'utf8'); +console.log('Writing index.html'); +fs.writeFileSync('website/index.html', $.html(), 'utf8'); console.log('Bundling with Parcel.js'); console.log(''); -new Parcel('main.html', { +new Parcel('website/index.html', { name: 'build', // publicURL: '/awesome-docker' publicURL: '/' diff --git a/critical-css.js b/critical-css.js new file mode 100644 index 0000000..5a88617 --- /dev/null +++ b/critical-css.js @@ -0,0 +1,30 @@ +const path = require('path'); +const fs = require('fs'); +const tmpDir = require('os').tmpdir(); +const request = require('request'); +const criticalcss = require('criticalcss'); + +const cssUrl = + 'https://awesome-docker.netlify.com/16dc205b0ca3044a54bfb5fc8384de31.css'; +const cssPath = path.join(tmpDir, 'style.css'); +request(cssUrl) + .pipe(fs.createWriteStream(cssPath)) + .on('close', () => { + criticalcss.getRules(cssPath, (err, output) => { + if (err) { + throw new Error(err); + } else { + criticalcss.findCritical( + 'https://awesome-docker.netlify.com/', + { rules: JSON.parse(output) }, + (err, output) => { + if (err) { + throw new Error(err); + } else { + console.log(output); + } + } + ); + } + }); + }); diff --git a/index.html b/index.html index 572c816..d072a82 100644 --- a/index.html +++ b/index.html @@ -6,6 +6,8 @@ Awesome-docker +

We moved to a new place, click here to be redirected.

diff --git a/index.tmpl b/index.tmpl deleted file mode 100644 index 8a6fb62..0000000 --- a/index.tmpl +++ /dev/null @@ -1,28 +0,0 @@ - - - - - Awesome-docker - - - - - - - - - - - -
- - - - \ No newline at end of file diff --git a/package.json b/package.json index 31da402..4066192 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "description": "> A curated list of Docker resources and projects Inspired by [@sindresorhus](https://github.com/sindresorhus)' [awesome][sindresorhus] and improved by these **[amazing contributors](https://github.com/veggiemonk/awesome-docker/graphs/contributors)**.", "main": "index.js", "scripts": { - "build": "node build.js", + "build": "rimraf ./dist/ && node build.js", "convert": "showdown makehtml -i README.md -o README.html --omitExtraWLInCodeBlocks --simplifiedAutoLink --excludeTrailingPunctuationFromURLs --literalMidWordUnderscores --strikethrough --tables --tablesHeaderId --ghCodeBlocks --tasklists --disableForced4SpacesIndentedSublists --simpleLineBreaks --requireSpaceBeforeHeadingText --ghCompatibleHeaderId --ghMentions --backslashEscapesHTMLTags --emoji --splitAdjacentBlockquotes", "package": "parcel build index.html --public-url /awesome-docker" }, @@ -20,8 +20,11 @@ "homepage": "https://github.com/veggiemonk/awesome-docker#readme", "dependencies": { "cheerio": "^1.0.0-rc.2", + "criticalcss": "^2.1.0", "inline-assets": "^1.2.4", "parcel-bundler": "^1.6.2", + "request": "^2.85.0", + "rimraf": "^2.6.2", "showdown": "^1.8.6" }, "devDependencies": { diff --git a/favicon.png b/website/favicon.png similarity index 100% rename from favicon.png rename to website/favicon.png diff --git a/website/index.html b/website/index.html new file mode 100644 index 0000000..5660570 --- /dev/null +++ b/website/index.html @@ -0,0 +1,913 @@ + + + + + Awesome-docker + + + + + + + + + + + + +

Awesome Docker Awesome Join the chat at https://gitter.im/veggiemonk/awesome-docker Say Thanks

+
+

A curated list of Docker resources and projects
+ Inspired by @sindresorhus' awesome and improved by these amazing contributors.

+
+

It's now a GitHub project because it's considerably easier for other people to edit, fix and expand on Docker using GitHub.
+Just click README.md to submit a pull request.
+If this list is not complete, you can contribute to make it so. Here is a great video tutorial to contribute on Github

+

You can see the updates from TWITTER

+
+

Please, help organize these resources so that they are easy to find and understand for new comers. See how to Contribute for tips!

+
+ +

The creators and maintainers of this list do not receive and should not receive any form of payment to accept a change made by any contributor.
+The goal of this repo is to index open-source projects, not to advertise for profit.

+

All the links are monitored and tested with awesome_bot made by @dkhamsing

+

Contents

+ +

Legend

+ +

What is Docker

+
+

Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications. Consisting of Docker Engine, a portable, lightweight runtime and packaging tool, and Docker Hub, a cloud service for sharing applications and automating workflows, Docker enables apps to be quickly assembled from components and eliminates the friction between development, QA, and production environments. As a result, IT can ship faster and run the same app, unchanged, on laptops, data center VMs, and any cloud.

+
+

Source: What is Docker

+

Where to start

+ +

Cheatsheets by

+ +

Where to start (Windows)

+ +
+

Projects

+

Moby = open source development

+

Docker CE = free product release based on Moby

+

Docker EE = commercial product release based on Docker CE.

+

Docker EE is on the same code base as Docker CE, so also built from Moby, with commercial components added, such as "docker data center / universal control plane"

+ +

Container Operations

+

Container Composition

+ +

Deployment and Infrastructure

+ +

Monitoring

+ +

Networking

+ +

Orchestration

+ +

PaaS

+ +

Reverse Proxy

+ +

Security

+ +

Service Discovery

+ +

Volume Management / Data

+ +

User Interface

+

Desktop

+

Native desktop applications for managing and montoring docker hosts and clusters

+ +

Terminal

+ +

Web

+ +

Docker Images

+

Base Tools

+

Tools and applications that are either installed inside containers or designed to be run as a sidecar

+ +

Builder

+

Applications designed to help or simplify building new images

+ +

Dockerfile

+ +

Examples by:

+ +

Linter

+ +

Metadata

+ +

Registry

+

Services to securely store your Docker images.

+ +

Development with Docker

+

API Client

+ +

CI/CD

+ +

Development Environment

+ +

Garbage Collection

+ +

Serverless

+ +

Testing

+ +

Wrappers

+ +

Services based on Docker (💲)

+

CI Services

+ +

CaaS

+ +

Monitoring Services

+ +

Useful Resources

+ +

Blogs by

+ +

Awesome Lists

+ +

Good Tips

+ +

Raspberry Pi & ARM

+ +

Security

+ +

Videos

+ +

Communities and Meetups

+

Brazilian

+ +

Chinese

+ +

English

+ +

Russian

+
+ + + + + + \ No newline at end of file diff --git a/index.js b/website/index.js similarity index 100% rename from index.js rename to website/index.js diff --git a/website/index.tmpl b/website/index.tmpl new file mode 100644 index 0000000..e011798 --- /dev/null +++ b/website/index.tmpl @@ -0,0 +1,255 @@ + + + + + + + + Awesome-docker + + + + + + + + + + + + +
+ + + + + + \ No newline at end of file diff --git a/style.css b/website/style.css similarity index 100% rename from style.css rename to website/style.css From d45cec0294da1349dc334f5f01cc403438c6c164 Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Sun, 18 Mar 2018 14:37:19 +0100 Subject: [PATCH 2/2] critical css inlined --- .gitignore | 2 + build.js | 99 +++-- critical-css.js | 30 -- package.json | 6 +- website/index.html | 913 ---------------------------------------- website/index.tmpl | 255 ----------- website/index.tmpl.html | 34 ++ 7 files changed, 102 insertions(+), 1237 deletions(-) delete mode 100644 critical-css.js delete mode 100644 website/index.html delete mode 100644 website/index.tmpl create mode 100644 website/index.tmpl.html diff --git a/.gitignore b/.gitignore index e50c4e7..a2e8584 100644 --- a/.gitignore +++ b/.gitignore @@ -6,4 +6,6 @@ node_modules .cache dist package-lock.json +website/index.merged.html +website/index.html diff --git a/build.js b/build.js index 4c04a27..4dfb0fa 100644 --- a/build.js +++ b/build.js @@ -2,46 +2,75 @@ const fs = require('fs'); const showdown = require('showdown'); const cheerio = require('cheerio'); const Parcel = require('parcel-bundler'); +const critical = require('critical'); process.env.NODE_ENV = 'production'; -const converter = new showdown.Converter({ - omitExtraWLInCodeBlocks: true, - simplifiedAutoLink: true, - excludeTrailingPunctuationFromURLs: true, - literalMidWordUnderscores: true, - strikethrough: true, - tables: true, - tablesHeaderId: true, - ghCodeBlocks: true, - tasklists: true, - disableForced4SpacesIndentedSublists: true, - simpleLineBreaks: true, - requireSpaceBeforeHeadingText: true, - ghCompatibleHeaderId: true, - ghMentions: true, - backslashEscapesHTMLTags: true, - emoji: true, - splitAdjacentBlockquotes: true -}); -// converter.setFlavor('github'); +const main = () => { + const converter = new showdown.Converter({ + omitExtraWLInCodeBlocks: true, + simplifiedAutoLink: true, + excludeTrailingPunctuationFromURLs: true, + literalMidWordUnderscores: true, + strikethrough: true, + tables: true, + tablesHeaderId: true, + ghCodeBlocks: true, + tasklists: true, + disableForced4SpacesIndentedSublists: true, + simpleLineBreaks: true, + requireSpaceBeforeHeadingText: true, + ghCompatibleHeaderId: true, + ghMentions: true, + backslashEscapesHTMLTags: true, + emoji: true, + splitAdjacentBlockquotes: true + }); + // converter.setFlavor('github'); -console.log('Loading files...'); -const index = fs.readFileSync('website/index.tmpl', 'utf8'); -const readme = fs.readFileSync('README.md', 'utf8'); + console.log('Loading files...'); + const index = fs.readFileSync('website/index.tmpl.html', 'utf8'); + const readme = fs.readFileSync('README.md', 'utf8'); -console.log('Merging files...'); -const $ = cheerio.load(index); -$('#md').append(converter.makeHtml(readme)); + console.log('Merging files...'); + const $ = cheerio.load(index); + $('#md').append(converter.makeHtml(readme)); -console.log('Writing index.html'); -fs.writeFileSync('website/index.html', $.html(), 'utf8'); + console.log('Writing index.html'); + fs.writeFileSync('website/index.merged.html', $.html(), 'utf8'); -console.log('Bundling with Parcel.js'); -console.log(''); + console.log(''); + console.log('Generating critical css above the fold'); + console.log(''); -new Parcel('website/index.html', { - name: 'build', - // publicURL: '/awesome-docker' - publicURL: '/' -}).bundle(); + critical + .generate({ + inline: true, + base: 'website/', + src: 'index.merged.html', + dest: 'index.html', + css: 'website/style.css', + dimensions: [ + { + height: 200, + width: 500 + }, + { + height: 900, + width: 1200 + } + ] + }) + .then(() => { + console.log('Bundling with Parcel.js'); + console.log(''); + + new Parcel('website/index.html', { + name: 'build', + // publicURL: '/awesome-docker' + publicURL: '/' + }).bundle(); + }); +}; + +main(); diff --git a/critical-css.js b/critical-css.js deleted file mode 100644 index 5a88617..0000000 --- a/critical-css.js +++ /dev/null @@ -1,30 +0,0 @@ -const path = require('path'); -const fs = require('fs'); -const tmpDir = require('os').tmpdir(); -const request = require('request'); -const criticalcss = require('criticalcss'); - -const cssUrl = - 'https://awesome-docker.netlify.com/16dc205b0ca3044a54bfb5fc8384de31.css'; -const cssPath = path.join(tmpDir, 'style.css'); -request(cssUrl) - .pipe(fs.createWriteStream(cssPath)) - .on('close', () => { - criticalcss.getRules(cssPath, (err, output) => { - if (err) { - throw new Error(err); - } else { - criticalcss.findCritical( - 'https://awesome-docker.netlify.com/', - { rules: JSON.parse(output) }, - (err, output) => { - if (err) { - throw new Error(err); - } else { - console.log(output); - } - } - ); - } - }); - }); diff --git a/package.json b/package.json index 4066192..7ab651a 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "description": "> A curated list of Docker resources and projects Inspired by [@sindresorhus](https://github.com/sindresorhus)' [awesome][sindresorhus] and improved by these **[amazing contributors](https://github.com/veggiemonk/awesome-docker/graphs/contributors)**.", "main": "index.js", "scripts": { - "build": "rimraf ./dist/ && node build.js", + "build": "rimraf ./dist/ && node build.js && rimraf ./website/index.html", "convert": "showdown makehtml -i README.md -o README.html --omitExtraWLInCodeBlocks --simplifiedAutoLink --excludeTrailingPunctuationFromURLs --literalMidWordUnderscores --strikethrough --tables --tablesHeaderId --ghCodeBlocks --tasklists --disableForced4SpacesIndentedSublists --simpleLineBreaks --requireSpaceBeforeHeadingText --ghCompatibleHeaderId --ghMentions --backslashEscapesHTMLTags --emoji --splitAdjacentBlockquotes", "package": "parcel build index.html --public-url /awesome-docker" }, @@ -20,10 +20,8 @@ "homepage": "https://github.com/veggiemonk/awesome-docker#readme", "dependencies": { "cheerio": "^1.0.0-rc.2", - "criticalcss": "^2.1.0", - "inline-assets": "^1.2.4", + "critical": "^1.1.1", "parcel-bundler": "^1.6.2", - "request": "^2.85.0", "rimraf": "^2.6.2", "showdown": "^1.8.6" }, diff --git a/website/index.html b/website/index.html deleted file mode 100644 index 5660570..0000000 --- a/website/index.html +++ /dev/null @@ -1,913 +0,0 @@ - - - - - Awesome-docker - - - - - - - - - - - - -

Awesome Docker Awesome Join the chat at https://gitter.im/veggiemonk/awesome-docker Say Thanks

-
-

A curated list of Docker resources and projects
- Inspired by @sindresorhus' awesome and improved by these amazing contributors.

-
-

It's now a GitHub project because it's considerably easier for other people to edit, fix and expand on Docker using GitHub.
-Just click README.md to submit a pull request.
-If this list is not complete, you can contribute to make it so. Here is a great video tutorial to contribute on Github

-

You can see the updates from TWITTER

-
-

Please, help organize these resources so that they are easy to find and understand for new comers. See how to Contribute for tips!

-
- -

The creators and maintainers of this list do not receive and should not receive any form of payment to accept a change made by any contributor.
-The goal of this repo is to index open-source projects, not to advertise for profit.

-

All the links are monitored and tested with awesome_bot made by @dkhamsing

-

Contents

- -

Legend

-
    -
  • Abandoned 💀
  • -
  • Beta 🚧
  • -
  • Monetized 💲
  • -
-

What is Docker

-
-

Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications. Consisting of Docker Engine, a portable, lightweight runtime and packaging tool, and Docker Hub, a cloud service for sharing applications and automating workflows, Docker enables apps to be quickly assembled from components and eliminates the friction between development, QA, and production environments. As a result, IT can ship faster and run the same app, unchanged, on laptops, data center VMs, and any cloud.

-
-

Source: What is Docker

-

Where to start

- -

Cheatsheets by

- -

Where to start (Windows)

- -
-

Projects

-

Moby = open source development

-

Docker CE = free product release based on Moby

-

Docker EE = commercial product release based on Docker CE.

-

Docker EE is on the same code base as Docker CE, so also built from Moby, with commercial components added, such as "docker data center / universal control plane"

- -

Container Operations

-

Container Composition

-
    -
  • bocker (2) - Write Dockerfile completely in Bash. Extensible and simple. --> Reusable by @icy
  • -
  • bocker (1) 💀 - Docker implemented in 100 lines of bash by p8952
  • -
  • box - Build Dockerfile images with a mruby DSL, includes flattening and layer manipulation
  • -
  • Capitan - Composable docker orchestration with added scripting support by @byrnedo.
  • -
  • compose_plantuml - Generate Plantuml graphs from docker-compose files by @funkwerk
  • -
  • Composerize - Convert docker run commands into docker-compose files
  • -
  • crowdr - Tool for managing multiple Docker containers (docker-compose alternative) by @polonskiy
  • -
  • docker-compose-graphviz - Turn a docker-compose.yml files into Graphviz .dot files by @abesto
  • -
  • docker-compose-search - A search engine for Docker Compose application stacks by @francescou
  • -
  • draw-compose - Utility to draw a schema of a docker compose by @Alexis-benoist
  • -
  • elsy - An opinionated, multi-language, build tool based on Docker and Docker Compose
  • -
  • habitus - A Build Flow Tool for Docker by @cloud66
  • -
  • Maestro 💀 - Maestro provides the ability to easily launch, orchestrate and manage mulitiple Docker containers as single unit by @tascanini
  • -
  • percheron 💀 - Organise your Docker containers with muscle and intelligence by @ashmckenzie
  • -
  • rocker-compose - Docker composition tool with idempotency features for deploying apps composed of multiple containers. By @grammarly
  • -
  • rocker - Extended Dockerfile builder. Supports multiple FROMs, MOUNTS, templates, etc. by grammarly.
  • -
  • Stacker - Docker Compose Templates. Stacker provides an abstraction layer over Docker Compose and a better DX (developer experience).
  • -
  • Zodiac 💀 - A lightweight tool for easy deployment and rollback of dockerized applications. By @CenturyLinkLabs
  • -
-

Deployment and Infrastructure

-
    -
  • blackfish - a CoreOS VM to build swarm clusters for Dev & Production by @DataMC
  • -
  • Centurion - Centurion is a mass deployment tool for Docker fleets. It takes containers from a Docker registry and runs them on a fleet of hosts with the correct environment variables, host volume mappings, and port mappings. By @newrelic
  • -
  • Clocker - Clocker creates and manages a Docker cloud infrastructure. Clocker supports single-click deployments and runtime management of multi-node applications that run as containers distributed across multiple hosts, on both Docker and Marathon. It leverages Calico and Weave for networking and Brooklyn for application blueprints. By @brooklyncentral
  • -
  • Conduit - Experimental deployment system for Docker by @ehazlett
  • -
  • depcon - Depcon is written in Go and allows you to easily deploy Docker containers to Apache Mesos/Marathon, Amazon ECS and Kubernetes. By @gonodr
  • -
  • deploy 💀 - Git and Docker deployment tool. A middle ground between simple Docker composition tools and full blown cluster orchestration by @ttiny
  • -
  • dockit 💀 - Do docker actions and Deploy gluster containers! By @humblec
  • -
  • Grafeas - A common API for metadata about containers, from image and build details to security vulnerabilities. By Grafeas
  • -
  • Longshoreman 💀 - Longshoreman automates application deployment using Docker. Just create a Docker repository (or use a service), configure the cluster using AWS or Digital Ocean (or whatever you like) and deploy applications using a Heroku-like CLI tool. By longshoreman
  • -
-

Monitoring

-
    -
  • Axibase Collector - Axibase Collector streams performance counters, configuration changes and lifecycle events from the Docker engine(s) into Axibase Time Series Database for roll-up dashboards and integration with upstream monitoring systems.
  • -
  • cAdvisor - Analyzes resource usage and performance characteristics of running containers. Created by @Google
  • -
  • Docker-Alertd - Monitor and send alerts based on docker container resource usage/statistics
  • -
  • Docker-Flow-Monitor - Reconfigures Prometheus when a new service is updated or deployed automatically by @vfarcic
  • -
  • Docker-Fluentd - Docker container to Log Other Containers' Logs. One can aggregate the logs of Docker containers running on the same host using Fluentd by @kiyoto
  • -
  • Dockerana 💀 - packaged version of Graphite and Grafana, specifically targeted at metrics from Docker.
  • -
  • Dynatrace - Monitor containerized applications without installing agents or modifying your Run commands
  • -
  • Glances - A cross-platform curses-based system monitoring tool written in Python by @nicolargo
  • -
  • Grafana Docker Dashboard Template - A template for your Docker, Grafana and Prometheus stack @vegasbrianc
  • -
  • InfluxDB, cAdvisor, Grafana - InfluxDB Time series DB in combination with Grafana and cAdvisor by @vegasbrianc
  • -
  • LogJam - Logjam is a log forwarder designed to listen on a local port, receive log entries over UDP, and forward these messages on to a log collection server (such as logstash) by @gocardless
  • -
  • Logsene for Docker Monitoring of Metrics, Events and Logs implemented in Node.js. Integrated logagent-js to detect and parse various log formats. @sematext
  • -
  • Logspout - Log routing for Docker container logs by @gliderlabs
  • -
  • Out-of-the-box Host/Container Monitoring/Logging/Alerting Stack - Docker host and container monitoring, logging and alerting out of the box using cAdvisor, Prometheus, Grafana for monitoring, Elasticsearch, Kibana and Logstash for logging and elastalert and Alertmanager for alerting. Set up in 5 Minutes. Secure mode for production use with built-in Automated Nginx Reverse Proxy (jwilder's).
  • -
  • Zabbix Docker module - Zabbix module that provides discovery of running containers, CPU/memory/blk IO/net container metrics. Systemd Docker and LXC execution driver is also supported. It's a dynamically linked shared object library, so its performance is (~10x) better, than any script solution.
  • -
  • Zabbix Docker - Monitor containers automatically using zabbix LLD feature.
  • -
-

Networking

-
    -
  • Calico-Docker - Calico is a pure layer 3 virtual network that allows containers over multiple docker-hosts to talk to each other.
  • -
  • Flannel - Flannel is a virtual network that gives a subnet to each host for use with container runtimes. By @coreos
  • -
  • netshoot - The netshoot container has a powerful set of networking tools to help troubleshoot Docker networking issues by @nicolaka
  • -
  • Weave (The Docker network) - Weave creates a virtual network that connects Docker containers deployed across multiple hosts.
  • -
-

Orchestration

-
    -
  • athena - An automation platform with a plugin architecture that allows you to easily create and share services.
  • -
  • blimp 💀 - Uses Docker Machine to easily move a container from one Docker host to another, show containers running against all of your hosts, replicate a container across multiple hosts and more by @defermat and @schvin
  • -
  • CloudSlang - CloudSlang is a workflow engine to create Docker process automation
  • -
  • clusterdock - Docker container orchestration to enable the testing of long-running cluster deployments
  • -
  • ContainerShip A simple container management platform
  • -
  • Crane - Control plane based on docker built-in swarm @Dataman-Cloud
  • -
  • Docker Flow Swarm Listener 🚧 - Docker Flow Swarm Listener project is to listen to Docker Swarm events and send requests when a change occurs.. By @vfarcic
  • -
  • gantryd 💀 - A framework for easy management of docker-based components across machines by @DevTable
  • -
  • Haven - Haven is a simplified container management platform that integrates container, application, cluster, image, and registry managements. By @codeabovelab
  • -
  • Helios - A simple platform for deploying and managing containers across an entire fleet of servers by @spotify
  • -
  • Kontena - Application Containers for Masses website
  • -
  • Kubernetes - Open source orchestration system for Docker containers by Google
  • -
  • ManageIQ - Discover, optimize and control your hybrid IT. By ManageIQ
  • -
  • Mantl - Mantl is a modern platform for rapidly deploying globally distributed services
  • -
  • Marathon - Marathon is a private PaaS built on Mesos. It automatically handles hardware or software failures and ensures that an app is "always on"
  • -
  • Mesos - Resource/Job scheduler for containers, VM's and physical hosts @apache
  • -
  • Mesosphere DC/OS 💲 - Integrated platform for data and containers built on Apache Mesos by @mesosphere
  • -
  • Nebula - A Docker orchestration tool designed to manage massive scale distributed clusters.
  • -
  • Nomad - Easily deploy applications at any scale. A Distributed, Highly Available, Datacenter-Aware Scheduler by @hashicorp
  • -
  • Panamax 💀 - An open-source project that makes deploying complex containerized apps as easy as Drag-and-Drop by @CenturyLinkLabs.
  • -
  • Rancher - An open source project that provides a complete platform for operating Docker in production by @rancher.
  • -
  • Swarmpit - Lightweight Docker Swarm orchestration. Swarmpit provides clean way to manage your Docker Swarm cluster with various handful features such Service management, smart search, shared access and private registries.
  • -
-

PaaS

-
    -
  • Atlantis 💀 - Atlantis is an Open Source PaaS for HTTP applications built on Docker and written in Go
  • -
  • CaptainDuckDuck - Open source Heroku-like platform with a one-liner installer and a GUI for managing apps - with serveral one-click databases and apps.
  • -
  • Convox Rack - Convox Rack is open source PaaS built on top of expert infrastructure automation and devops best practices.
  • -
  • Dcw - Docker-compose SSH wrapper: a very poor man PaaS, exposing the docker-compose and custom-container commands defined in container labels.
  • -
  • Dokku - Docker powered mini-Heroku that helps you build and manage the lifecycle of applications (originally by @progrium)
  • -
  • Empire - A PaaS built on top of Amazon EC2 Container Service (ECS)
  • -
  • Flynn - A next generation open source platform as a service
  • -
  • Jelastic - An advanced PaaS for developers that simplifies clustering and complex cloud deployments with powerful web UI and usage-only pricing
  • -
  • Nanobox 💲 - An application development platform that creates local environments that can then be deployed and scaled in the cloud.
  • -
  • OpenShift - An open source PaaS built on Kubernetes and optimized for Dockerized app development and deployment by Red Hat
  • -
  • Tsuru - Tsuru is an extensible and open source Platform as a Service software
  • -
  • Workflow - The open source PaaS for Kubernetes by Deis. Formerly Deis v1.
  • -
-

Reverse Proxy

- -

Security

-
    -
  • Anchor Cloud 💲 - Hosted version of Anchor Engine by @Anchor
  • -
  • Anchor Engine - Analyze images for CVE vulnerabilities and against custom security policies by @Anchor
  • -
  • Aqua Security 💲 - Securing container-based applications from Dev to Production on any platform
  • -
  • bane - AppArmor profile generator for Docker containers by @genuinetools
  • -
  • CIS Docker Benchmark - This InSpec compliance profile implement the CIS Docker 1.12.0 Benchmark in an automated way to provide security best-practice tests around Docker daemon and containers in a production environment. By @dev-sec
  • -
  • Clair - Clair is an open source project for the static analysis of vulnerabilities in appc and docker containers. By @coreos
  • -
  • docker-bench-security - script that checks for dozens of common best-practices around deploying Docker containers in production. By @docker
  • -
  • notary - a server and a client for running and interacting with trusted collections. By @TUF
  • -
  • oscap-docker - OpenSCAP provides oscap-docker tool which is used to scan Docker containers and images. By RedHat
  • -
  • Sysdig Falco - Sysdig Falco is an open source container security monitor. It can monitor application, container, host, and network activity and alert on unauthorized activity.
  • -
  • Sysdig Secure 💲 - Sysdig Secure addresses run-time security through behavioral monitoring and defense, and provides deep forensics based on open source Sysdig for incident response.
  • -
  • Twistlock 💲 - Twistlock Security Suite detects vulnerabilities, hardens container images, and enforces security policies across the lifecycle of applications.
  • -
-

Service Discovery

- -

Volume Management / Data

-
    -
  • Blockbridge - The Blockbridge plugin is a volume plugin that provides access to an extensible set of container-based persistent storage options. It supports single and multi-host Docker environments with features that include tenant isolation, automated provisioning, encryption, secure deletion, snapshots and QoS. By @blockbridge
  • -
  • Convoy - an open-source Docker volume driver that can snapshot, backup and restore Docker volumes anywhere. By @rancher
  • -
  • Docker Machine NFS Activates NFS for an existing boot2docker box created through Docker Machine on OS X.
  • -
  • Docker Unison A docker volume container using Unison for fast two-way folder sync. Created as an alternative to slow boot2docker volumes on OS X. By @leighmcculloch
  • -
  • Local Persist Specify a mountpoint for your local volumes (created via docker volume create) so that files will always persist and so you can mount to different directories in different containers.
  • -
  • Minio - S3 compatible object storage server in Docker containers
  • -
  • Netshare Docker NFS, AWS EFS, Ceph & Samba/CIFS Volume Plugin. By @ContainX
  • -
  • portworx 💲 - Decentralized storage solution for persistent, shared and replicated volumes.
  • -
  • quobyte 💲 - fully fault-tolerant distributed file system with a docker volume driver
  • -
  • REX-Ray provides a vendor agnostic storage orchestration engine. The primary design goal is to provide persistent storage for Docker, Kubernetes, and Mesos. By@thecodeteam (DELL Technologies)
  • -
-

User Interface

-

Desktop

-

Native desktop applications for managing and montoring docker hosts and clusters

- -

Terminal

- -

Web

- -

Docker Images

-

Base Tools

-

Tools and applications that are either installed inside containers or designed to be run as a sidecar

-
    -
  • amicontained - Container introspection tool. Find out what container runtime is being used as well as features available by @genuinetools
  • -
  • autodock - Daemon for Docker Automation by @prologic
  • -
  • Chaperone - A single PID1 process designed for docker containers. Does user management, log management, startup, zombie reaping, all in one small package. by @garywiz
  • -
  • CoreOS - Linux for Massive Server Deployments
  • -
  • docker-alpine - A super small Docker base image (5MB) using Alpine Linux by @gliderlabs
  • -
  • docker-gen - Generate files from docker container meta-data by @jwilder
  • -
  • dockerize - Utility to simplify running applications in docker containers by @jwilder
  • -
  • GoSu - Run this specific application as this specific user and get out of the pipeline (entrypoint script tool) by @tianon
  • -
  • is-docker - Check if the process is running inside a Docker container by @sindresorhus
  • -
  • supercronic - crontab-compatible job runner, designed specifically to run in containers by @aptible
  • -
  • TrivialRC - A minimalistic Runtime Configuration system and process manager for containers @vorakl
  • -
-

Builder

-

Applications designed to help or simplify building new images

-
    -
  • container-diff - An image tool for comparing and analzying container images by @GoogleCloudPlatform
  • -
  • container-factory - Produces Docker images from tarballs of application source code by @mutable
  • -
  • copy-docker-image - Copy a Docker image between registries without a full Docker installation by @mdlavin
  • -
  • Derrick - A tool help you to automate the generation of Dockerfile and dockerize application by scanning the code. By @alibaba.
  • -
  • dlayer - Stats collector for Docker layers by @wercker
  • -
  • docker-companion - A command line tool written in Golang to squash and unpack docker images by @mudler
  • -
  • docker-make - Build, tag,and push a bunch of related docker images via a single command.
  • -
  • docker-replay - Generate docker runcommand and options from running containers. By bcicen
  • -
  • DockerSlim shrinks fat Docker images creating the smallest possible images.
  • -
  • Dockly - Dockly is a gem made to ease the pain of packaging an application in Docker by @swipely
  • -
  • dockramp 💀 - Proof of Concept: A Client Driven Docker Image Builder by @jlhawn
  • -
  • flyimg - Docker image resizing, cropping, and compression on the fly.
  • -
  • img - Standalone, daemon-less, unprivileged Dockerfile and OCI compatible container image builder by @genuinetools
  • -
  • MicroBadger - Analyze the contents of images and add metadata labels
  • -
  • packer - Hashicorp tool to build machine images including docker image integrated with configuration management tools like chef, puppet, ansible
  • -
  • portainer - Apache Mesos framework for building Docker images by @duedil-ltd
  • -
  • runlike 🚧 - Generate docker runcommand and options from running containers by @lavie
  • -
  • SkinnyWhale 💀 - Skinnywhale helps you make smaller (as in megabytes) Docker containers.
  • -
  • Whales - A tool to automatically dockerize your applications by @icalialabs.
  • -
-

Dockerfile

-
    -
  • chaperone-docker - A set of images using the Chaperone process manager, including a lean Alpine image, LAMP, LEMP, and bare-bones base kits.
  • -
  • Dockerfile Generator
  • -
  • Dockerfile Project : Trusted Automated Docker Builds. Dockerfile Project maintains a central repository of Dockerfile for various popular open source software services runnable on a Docker container.
  • -
  • Vektorcloud - A collection of minimal, Alpine-based Docker images
  • -
-

Examples by:

- -

Linter

- -

Metadata

-
    -
  • opencontainer - A convention and shared namespace for Docker labels defined by OCI Image Spec.
  • -
-

Registry

-

Services to securely store your Docker images.

-
    -
  • Amazon EC2 Container Registry Amazon EC2 Container Registry (ECR) is a fully-managed Docker container registry that makes it easy for developers to store, manage, and deploy Docker container images.
  • -
  • Azure Container Registry Manage a Docker private registry as a first-class Azure resource
  • -
  • CargoOS - A bare essential OS for running the Docker Engine on bare metal or Cloud. By @RedCoolBeans
  • -
  • Cycle.io Bare-metal container hosting.
  • -
  • Docker Hub provided by Docker Inc.
  • -
  • Docker Registry v2 - The Docker toolset to pack, ship, store, and deliver content
  • -
  • Docket - Custom docker registry that allows for lightning fast deploys through bittorrent by @netvarun
  • -
  • Europa 💲 - Private docker registry with support for image pipelines and webhooks. By @puppetlabs
  • -
  • GCE Container Registry Fast, private Docker image storage on Google Cloud Platform
  • -
  • GitLab Container Registry - Repositories focused on using it images in GitLab CI
  • -
  • JFrog Artifactory - Artifact Repository Manager, can be used as private Docker Registry as well
  • -
  • Private Docker Registry 💲 - Dedicated Conainer Registry Service with unlimited private repositories, users, teams, namespaces together with enterprise grade authentication LDAP/AD/OAuth/SAML.
  • -
  • Quay.io (part of CoreOS) - Secure hosting for private Docker repositories
  • -
  • Rescoyl - Private Docker registry (free and open source) by @noteed
  • -
  • Sonatype Nexus - Repository with Universal Support, also for Docker images
  • -
  • TreeScale - Build and Distribute container based applications. By @tigranbs
  • -
  • VMWare Harbor Project Harbor by VMWare is an enterprise-class registry server that stores and distributes Docker images. Harbor extends the open source Docker Distribution by adding the functionalities usually required by an enterprise, such as security, identity and management.
  • -
-

Development with Docker

-

API Client

- -

CI/CD

-
    -
  • Buddy - The best of Git, build & deployment tools combined into one powerful tool that supercharged our development.
  • -
  • Captain - Convert your Git workflow to Docker containers ready for Continuous Delivery by @harbur.
  • -
  • Cyclone - A cloud native CI/CD platform built for container workflow by @caicloud.
  • -
  • Docker plugin for Jenkins - The aim of the docker plugin is to be able to use a docker host to dynamically provision a slave, run a single build, then tear-down that slave.
  • -
  • Drone - Continuous integration server built on Docker and configured using YAML files.
  • -
  • GitLab CI - GitLab has integrated CI to test, build and deploy your code with the use of GitLab runners.
  • -
  • GOCD-DockerGo Server and Agent in docker containers to provision.
  • -
  • Microservices Continuous Deployment - Continuous deployment of a microservices application.
  • -
  • mu - Tool to configure CI/CD of your container applications via AWS CodePipeline, CodeBuild and ECS @Stelligent
  • -
  • Screwdriver - Yahoo's OpenSource buildplatform designed for Continous Delivery.
  • -
  • Skipper - Easily dockerize your Git repository by @Stratoscale
  • -
  • SwarmCI - Create a distributed, isolated task pipeline in your Docker Swarm.
  • -
  • Watchtower - Automatically update running Docker containers by @CenturyLinkLabs
  • -
-

Development Environment

-
    -
  • Binci - Containerize your development workflow. (formerly DevLab by @TechnologyAdvice)
  • -
  • Boot2Docker - Docker for OSX and Windows
  • -
  • construi - Run your builds inside a Docker defined environment by @lstephen
  • -
  • Devstep 💀 - Development environments powered by Docker and buildpacks by @fgrehm
  • -
  • Dinghy - An alternative way to use Docker on Mac OS X using Docker Machine with virtualbox, vmware, xhyve or parallels
  • -
  • DLite - Simplest way to use Docker on OSX, no VM needed. By @nlf
  • -
  • Docker Missing Tools - A set of bash commands to shortcut typical docker dev-ops. An alternative to creating typical helper scripts like "build.sh" and "deploy.sh" inside code repositories. By @NandoQuintana.
  • -
  • Docker osx dev - A productive development environment with Docker on OS X by @brikis98
  • -
  • Docker-Arch - Generate Web/CLI projects Dockerized development environments, from 1 simple YAML file. By @Ph3nol
  • -
  • Docker-sync - Drastically improves performance (50-70x) when using Docker for development on Mac OS X/Windows and Linux while sharing code to the container. By @EugenMayer
  • -
  • docker-vm - Simple and transparent alternative to boot2docker (backed by Vagrant) by @shyiko
  • -
  • Dusty - Managed Docker development environments on OS X
  • -
  • Eclipse Che - Developer workspace server with Docker runtimes, cloud IDE, next-generation Eclipse IDE
  • -
  • EnvCLI - Replace your local installation of Node, Go, … with project-specific docker containers. By @PhilippHeuer
  • -
  • forward2docker 💀 - Utility to auto forward a port from localhost into ports on Docker containers running in a boot2docker VM by @bsideup
  • -
  • Vagga - Vagga is a containerisation tool without daemons. It is a fully-userspace container engine inspired by Vagrant and Docker, specialized for development environments by @tailhook
  • -
  • Vessel 💀 - Automates the setup & use of dockerized development environments by @awvessel
  • -
-

Garbage Collection

- -

Serverless

-
    -
  • AMP - The open source unified CaaS/FaaS platform for Docker, batteries included. By @Appcelerator
  • -
  • Apache OpenWhisk - a serverless, open source cloud platform that executes functions in response to events at any scale. By @apache
  • -
  • Docker-Lambda - Docker images and test runners that replicate the live AWS Lambda environment. By @lamb-ci
  • -
  • Funker - Functions as Docker containers example voting app. By @bfirsh
  • -
  • IronFunctions - The serverless microservices platform FaaS (Funcitons as a Service) which uses Docker containers to run Any language or AWS Lambda functions
  • -
  • OpenFaaS - A complete serverless functions framework for Docker and Kubernetes. By OpenFaaS
  • -
  • SCAR - Serverless Container-aware Architectures (SCAR) is a serverless framework that allows easy deployment and execution of containers (e.g. Docker) in Serverless environments (e.g. Lambda) by @grycap
  • -
-

Testing

-
    -
  • Container Structure Test - A framework to validate the structure of an image by checking the outputs of commands or the contents of the filesystem. By @GoogleCloudPlatform
  • -
  • dgoss - A fast YAML based tool for validating docker containers.
  • -
  • DockerSpec - A small Ruby Gem to run RSpec and Serverspec, Infrataster and Capybara tests against Dockerfiles or Docker images easily. By @zuazo
  • -
  • Dockunit 💀 - Docker based integration tests. A simple Node based utility for running Docker based unit tests. By @dockunit
  • -
  • InSpec - InSpec is an open-source testing framework for infrastructure with a human- and machine-readable language for specifying compliance, security and policy requirements. By @chef
  • -
  • Pumba - Chaos testing tool for Docker. Can be deployed on kubernetes and CoreOS cluster. By @alexei-led
  • -
-

Wrappers

- -

Services based on Docker (💲)

-

CI Services

-
    -
  • CircleCI - Push or pull Docker images from your build environment, or build and run containers right on CircleCI.
  • -
  • CodeFresh - Everything you need to build, test, and share your Docker applications. Provides automated end to end testing.
  • -
  • CodeShip - Work with your established Docker workflows while automating your testing and deployment tasks with our hosted platform dedicated to speed and security.
  • -
  • ConcourseCI - A CI SaaS platform for developers and DevOps teams pipeline oriented.
  • -
  • IBM Bluemix Continous Delivery - Continuous delivery using a pipeline deployment onto IBM containers on Bluemix.
  • -
  • Semaphore CI — A high-performance cloud solution that makes it easy to build, test and ship your containers to production.
  • -
  • Shippable - A SaaS platform for developers and DevOps teams that significantly reduces the time taken for code to be built, tested and deployed to production.
  • -
  • TravisCI - A Free github projects continuous integration Saas platform for developers and Devops.
  • -
  • Wercker - A Docker-Native continous integration & deployment Automation platform for Kubernetes & Microservice Deployments.
  • -
-

CaaS

-
    -
  • Amazon ECS - A management service on EC2 that supports Docker containers.
  • -
  • Arukas - Heroku-inspired CaaS
  • -
  • Azure ACS - A management service on Azure Virtual Machines that supports Docker containers.
  • -
  • Cloud 66 - Full-stack hosted container management as a service
  • -
  • Codenvy - One-click Docker environments and cloud workspace for development teams
  • -
  • ContainerShip Cloud - Multi-Cloud Container Hosting Automation Platform.
  • -
  • Docker Cloud - Former Tutum
  • -
  • Dockhero - Dockhero is a Heroku add-on which turns a Docker image into a microservice attached to the Heroku app. Currently in beta.
  • -
  • Giant Swarm - Simple microservice infrastructure. Deploy your containers in seconds.
  • -
  • Google Container Engine - Docker containers on Google Cloud Computing powered by Kubernetes.
  • -
  • Hyper_ - Secure container hosting service with "nano-containers" and per-second billing.
  • -
  • IBM Bluemix Container Service - Run Docker containers in a hosted cloud environment on IBM Bluemix.
  • -
  • Jelastic Cloud - "Easy-to-use" container hosting platfrom with automatic vertical and horizontal scaling. Available over 50+ hosting providers worldwide.
  • -
  • OpenShift Dedicated - A hosted OpenShift cluster for running your Docker containers managed by Red Hat.
  • -
  • Sloppy.io - all-in-one solution for container deployment and hosting – made and hosted in Germany
  • -
  • Triton - Elastic container-native infrastructure by Joyent.
  • -
-

Monitoring Services

-
    -
  • AppDynamics - AppDynamics gives enterprises real-time insights into application performance, user performance, and business performance so they can move faster in an increasingly sophisticated, software-driven world.
  • -
  • Axibase Time-Series Database - Long-term retention of container statistics and built-in dashboards for Docker. Collected with native Google cAdvisor storage driver.
  • -
  • CA Technologies Docker Monitoring - Agile Operations solutions from CA deliver the modern Docker monitoring businesses need to accelerate and optimize the performance of microservices and the dynamic Docker environments running them. Monitor both the Docker environment and apps that run inside them.
  • -
  • Collecting docker logs and stats with Splunk
  • -
  • CoScale - Full stack monitoring for containerized applications and microservices. Powered by anomaly detection to find performance problems faster.
  • -
  • Datadog - Datadog is a full-stack monitoring service for large-scale cloud environments that aggregates metrics/events from servers, databases, and applications. It includes support for Docker, Kubernetes, and Mesos.
  • -
  • Meros - Analyzes containers resources, captures logs, remote web SSH terminal and powerful DevOps alerts.
  • -
  • Prometheus - Open-source service monitoring system and time series database
  • -
  • Site24x7 - Docker Monitoring for DevOps and IT is a SaaS Pay per Host model
  • -
  • SPM for Docker - Monitoring of host and container metrics, Docker events and logs. Automatic log parser. Anomaly Detection and alerting for metrics and logs. @sematext
  • -
  • Sysdig Monitor - Sysdig Monitor can be used as either software or a SaaS service to monitor, alert, and troubleshoot containers using system calls. It has container-specific features for Docker and Kubernetes.
  • -
-

Useful Resources

- -

Blogs by

- -

Awesome Lists

- -

Good Tips

- -

Raspberry Pi & ARM

- -

Security

- -

Videos

- -

Communities and Meetups

-

Brazilian

- -

Chinese

- -

English

- -

Russian

-
- - - - - - \ No newline at end of file diff --git a/website/index.tmpl b/website/index.tmpl deleted file mode 100644 index e011798..0000000 --- a/website/index.tmpl +++ /dev/null @@ -1,255 +0,0 @@ - - - - - - - - Awesome-docker - - - - - - - - - - - - -
- - - - - - \ No newline at end of file diff --git a/website/index.tmpl.html b/website/index.tmpl.html new file mode 100644 index 0000000..ae17cf4 --- /dev/null +++ b/website/index.tmpl.html @@ -0,0 +1,34 @@ + + + + + + + + Awesome-docker + + + + + + + + + + + +
+ + + + + + \ No newline at end of file