Docker a ajouté de nouveaux dépôts officiels pour les stacks de langage au Docker Hub, y compris C/C++, Java, Python ou Ruby.
La liste des dépôts officiels a d'abord été annoncée en juin lors du DockerCon avec les images de CentOS, Ubuntu et Fedora entre autres, les systèmes d'exploitation et la plupart des serveurs populaires. Sur la base des commentaires des utilisateurs et de la demande populaire, Docker a ajouté des dépôts officiels pour plusieurs stacks de langages :
- C/C++ et la Collection des Compilateurs GNU (GCC) en versions 4.6, 4.7, 4.8 et 4.9.
- Clojure en collaboration avec Leiningen 2.4.3 et 2.5.0.
- Le langage Go (golang) versions 1.2 et 1.3.
- Le langage Hy (hylang) version 0.10.
- Java avec les versions du JDK 6, 7, et 8.
- NodeJS 0,8, 0,10 et 0,11.
- Perl 5.18 et 5.20.
- PHP 5.3, 5.4, 5.5 et 5.6.
- Python 2.7.8, 3.3.5 et 3.4.1.
- Ruby on Rails 4.1.
- Ruby 1.9.3, 2.0.0 et 2.1.3.
Chaque dépôt comprend plusieurs balises et des alias pour aider à choisir la bonne version. A titre d’exemple, le référentiel Java comprend des images de Java 6 java:6b32
, 7 java:7u65
et 8 java:8u40
, y compris les versions des correctifs comme java:7u60
et les alias java:6
, java:7
et java:8
. Notez que, malgré leur utilité pour le développement, l’utilisation de ces alias pourra entraîner des mises à niveau inattendues lorsqu'ils seront exécutés sur une machine différente, de la même manière que l'utilisation de la balise latest
, vu que Docker fait appel à la dernière image disponible en ce moment. Par exemple, docker pull java:7
se traduira par une image différente quand une nouvelle image Docker pour la prochaine version de patch de Java 7 est publiée.
La plupart des images découlent des images de base de Debian, Jessie, Wheezy ou Sid, ou à partir de buildpack-deps
, une image qui inclut un grand nombre d'en-têtes de packages de développement nécessaires pour diverses choses comme RubyGems ou les modules PyPI. Les sources Dockerfiles peuvent être trouvées dans les projets de docker-library sur GitHub.
Certaines des images incluent les directives ONBUILD
pour rendre plus facile le déploiement des applications. Par exemple, lors de l'extension de ruby:2.1.3-onbuild
, elle utilisera les fichiers Gemfile
et Gemfile.lock
dans le répertoire de construction pour installer toutes les gems nécessaires avec bundler dans le système d'image résultant Ruby, sans avoir besoin d'ajouter de directive supplémentaire.
Docker ouvre également la porte à quiconque de créer et de maintenir les dépôts officiels de leurs propres projets et a publié les lignes directrices pour la mise en route et les meilleures pratiques Dockerfile. Les demandes pour ajouter un référentiel à la Docker Hub peuvent être envoyées à partners@docker.com.