Docker kontejnery jsou skvělým konceptem, jak propojovat svět distribucí. Jedná se o ideální nástroj pro práci se systémem CentOS na Fedoře, s Fedorou na Red Hat Enterprise Linuxu nebo naopak. Díky tomu nemusíme omezovat naši práci s Dockerem na Fedoře jen na obrazy postavené nad Fedora base obrazem. Naopak můžeme bez problémů vytvářet a spouštět obrazy postavené i nad zmíněnými systémy CentOS nebo RHEL.

Nicméně je třeba si uvědomit, že při práci s Docker kontejnery záleží především na obsahu a je velmi důležité obsahu věřit. Kontejnery samotné jsou sice ochraňovány (chcete-li izolovány od hostitelského stroje a samy od sebe navzájem) pomocí cgroups a SELinuxu, ale kontejnery s hostitelským systémem stále sdílí kernel. To znamená, že potenciální bezpečností díra v kernelu může dovolit útočníkovi dostat se z izolace a ovlivnit tak ostatní kontejnery, včetně hostitelského stroje.

Více informací o bezpečnosti kontejnerů můžete najít na Docker Security a Project Atomic article. Zkrátka, neměli byste spouštět neznámé kontejnery, a to už vůbec ne na produkčním stroji.

Docker obrazy postavené nad Fedorou

Všechny oficiální obrazy postavené nad Fedorou a udržované maintainery Fedory jsou k dispozici v oficiálním Fedora repozitáři na Docker hubu.

Základní obrazy ve jmenném prostoru fedora/ používají tag fedora:latest pro rawhide a fedora:22 tag pro konkrétní verzi obrazu.

Tzn. pro získání například Fedora 22 základního obrazu a spuštění Bashe v takovém kontejneru, spusťte:

$ sudo docker pull fedora:22
$ sudo docker run --rm -ti fedora:22 bash

Na Docker Hubu je k dispozici také několik obrazů postavených nad tímto základním Fedora obrazu, tzv. layered obrazy (vrstvené). Jejich zdroj je k dispozici ve Fedora Dockerfiles repozitáři a obrazy jsou k dispozici taktéž ve jmenném prostoru fedora/ na Docker Hubu.

Například pro získání databázového obrazu pro MariaDB, spusťte:

$ sudo docker pull fedora/mariadb
$ sudo docker run fedora/mariadb

Seznam dostupných obrazů je možné najít na Docker Hubu pod jmenným prostorem fedora.

CentOS obrazy

Komunita okolo operačního systému CentOS je v případě Docker technologie také aktivní a vzhledem k zaměření tohoto systému na stabilní řešení, jsou i obrazu poskytované CentOS komunitou zárukou stabilního řešení. Seznam obrazů oficiálně poskytovaných CentOS komunitou můžete najít ve jmenném prostoru CentOS a základní obrazje k dispozici v oficiální knihovně na Docker Hubu.

Stáhnout CentOS 7 obraz a spustit v něm příkaz můžeme takto:

$ sudo docker pull centos:7
$ sudo docker run --rm -ti centos:7 bash

Stáhnout CentOS 6 obraz a spustit v něm příkaz můžeme potom obdobně:

$ sudo docker pull centos:6
$ sudo docker run --rm -ti centos:6 bash

Zároveň, jak je v Docker světě zvykem, je vždy k dispozici centos:latest tag pro nejnovější stavilní release.

Obrazy postavené nad Software Collections

Oficiální CentOS repozitář obsahuje mimo jiné i obrazy, které jsou funkčně totožné s obrazy poskytovanými Red Hat vývojáři ve jmenném prostoru rhscl/ (ty jsou ale dostupné ve vlastním registru registry.access.redhat.com).

Tyto obrazy jsou postavené na balících vytvořených pomocí technologie Software Collections. Některé z nich (starší verze jednotlivých démonů nebo platforem) jsou vydávány pod organizací (nebo checete-li jmenným prostorem) OpenShift. Novější verze démonů a platforem jsou potom k dispozici pod organizací CentOS.

Některé z nich (zejména obrazy postavené nad platfomami dynamických jazyků) používají pro přenos koncové aplikace a vytvoření koncového obrazu nástroj Source-To-Image.

Následuje seznam obrazů postavených nad balíky typu Software Collections:

Název obrazu Popis
centos/httpd-24-centos7 Apache HTTP 2.4 Server
centos/mariadb-100-centos7 MariaDB 10.0 SQL databázový server
centos/mongodb-26-centos7 MongoDB 2.6 NoSQL databázový server
centos/mysql-56-centos7 MySQL 5.6 SQL databázový server
centos/postgresql-94-centos7 PostgreSQL 9.4 SQL databázový server
centos/nginx-16-centos7 Nginx 1.6 server a reverzní proxy server
centos/nodejs-010-centos7 NodeJS 0.10 platforma pro balení a spouštění aplikací
centos/passenger-40-centos7 Phusion Passenger® 4.0 web server a aplikační server
centos/perl-520-centos7 Perl 5.20 platforma pro balení a spouštění aplikací
centos/php-56-centos7 PHP 5.6 platforma pro balení a spouštění aplikací
centos/python-27-centos7 Python 2.7 platforma pro balení a spouštění aplikací
centos/python-34-centos7 Python 3.4 platforma pro balení a spouštění aplikací
centos/ror-41-centos7 Ruby on Rails 4.1 platforma pro balení a spouštění aplikací
centos/ruby-22-centos7 Ruby 2.2 platforma pro balení a spouštění aplikací
openshift/mysql-55-centos7 MySQL 5.5 SQL databázový server
openshift/postgresql-92-centos7 PostgreSQL 9.4 SQL databázový server
openshift/mongodb-24-centos7 MongoDB 2.4 NoSQL databázový server
openshift/ruby-20-centos7 Ruby 2.0 platforma pro balení a spouštění aplikací
openshift/python-33-centos7 Python 3.3 platforma pro balení a spouštění aplikací
openshift/nodejs-010-centos7 NodeJS 0.10 platforma pro balení a spouštění aplikací
openshift/perl-516-centos7 Perl 5.16 platforma pro balení a spouštění aplikací

Jak tyto obrazy použít, najdete v README souborech dostupných na githubu.