v tomto prvním tutoriálu v sérii Docker se dozvíte:
-
to, Co se snažíme dosáhnout v Riot
-
Základní nastavení pro Docker
-
Základní Docker Příkazy Pull
-
Jak spustit Docker Kontejnery jako Démonů
-
Základní Jenkins možnosti konfigurace
Když jsem poprvé začal učit o Docker před rokem a zkoumání jeho použití jsem měl problém najít skvělé dokumentaci a příklady – i dnes mnozí popisují jednoduché případy použití, které nakonec nejsou výroby připraven. Výroba aplikací s kontejnery Docker vyžaduje přizpůsobení jejich pomíjivé povaze a zaměření na jeden proces. To představuje výzvy pro aplikace s potřebami perzistence dat nebo architektury s více procesy.
jak jsem zmínil ve svém posledním příspěvku, používáme Jenkins jako základní kus open source softwaru, na jehož vrcholu budujeme naši automatizaci. Jenkins je také skvělá aplikace, která demonstruje jeden způsob, jak přemýšlet o „ukotvení“ vašich aplikací. Nasazujeme Jenkins s ohledem na tyto architektonické komponenty:
-
Jenkins master serveru (Java proces)
-
Jenkins kmenová data (Moduly, Definice úloh, atd)
-
NGINX web proxy (používáme SSL certifikáty atd., s NGINX je snadná volba zde)
-
Stavět otrok prostředky (stroje buď SSH bych do, nebo JNLP připojení, Jenkins Master)
To je dobré místo pro start. Po této sérii blogů budu týkající se způsoby, jak přemýšlet o tom, všechny výše uvedené jako kontejnery a dokončit s pokročilým podívejte se na způsoby, jak používat Docker kontejnery jako stavět otroky. Pro začátek vytvoříme Jenkins master server v kontejneru Docker. Pak přejdeme k řešení perzistence dat a přidání webového proxy s NGINX.
celá tato série blogů bude zahrnovat následující koncepty Docker:
-
Dělat své vlastní Dockerfiles
-
Minimalizace image závislosti na veřejné obrázky
-
Vytváření a používání Dat-Objemy, včetně zálohy
-
Vytváření kontejnerové „Budovat Prostředí“ pomocí kontejnerů
-
Zpracování „tajné“ údaje s obrázky a Jenkins
Pokud jste neužil podívejte se na Cloudbees Jenkins Docker image, začněte tam, jak je to opravdu docela dobré. To byl můj referenční bod, když jsem poprvé přemýšlel o spuštění Jenkinse v kontejneru Docker a pro mnoho lidí to může stačit. Jejich dokumentaci najdete zde a jejich repo / Dockerfile Git zde.
tento první blog je rozdělen do dvou plánů lekce. Každá z nich je dimenzována tak, aby trvala asi 30 minut. První na řadě je příprava vývojového prostředí a naučit se pracovat s výchozím kontejnerem Jenkins Docker, který Cloudbees nabízí. Druhá část je o základy, aby zabalit tento obrázek ve své vlastní Dockerfile a s více elegantní ovládání obrazu. Společně jsou navrženy tak, aby vám začal, a to zejména pokud jste nikdy nepracovali s Docker před, nebo jsou relativně nový Docker—i když předpokládají, že již víte, a pochopit, jak pracovat s Jenkins. Pokud máte zkušenosti s Docker, některé z materiálů v lekci 1 bude trochu rehash věcí, které pravděpodobně již víte.
- Lekce 1: nastavte a spusťte svůj první obrázek
- PŘEDBĚŽNÉ POŽADAVKY:
- RYCHLÉ POZNÁMKY NA KITEMATIC
- KROK 1: NAINSTALUJTE DOCKER
- KROK 2: STÁHNOUT A SPUSTIT CLOUDBEES JENKINS KONTEJNER
- Krok 3: aby to trochu praktičtější
- krok 3A: DAEMONIZING
- krok 3B: nastavení paměti
- krok 3C: zvýšením fondu připojení
- KROK 4: DÁT TO VŠECHNO DOHROMADY
- LEKCE 2 – JENKINS ZÁKLADNÍ OBRÁZEK OBALU
- TAKŽE VAŠE ZÁKLADNÍ DOCKERFILE
- TESTOVÁNÍ NOVÉ DOCKERFILE
- přidání proměnných prostředí do našeho DOCKERFILE
- BĚŽÍ ZÁKLADNÍ PŘÍKAZ PROTI svým KONTEJNER
- NASTAVENÍ PROTOKOLU SLOŽKY
- NAČÍST PROTOKOLY, POKUD JENKINS PÁDY
- ZÁVĚREČNÉ MYŠLENKY
Lekce 1: nastavte a spusťte svůj první obrázek
Pojďme vás připravit k hodu. Zde v Riot pracujeme s Docker (a Jenkins) na Windows, Mac OSX a Linux. Raději pracuji s Docker na OSX, i když je to dokonale funkční na Windows od Docker 1.6. V dnešní době existují vynikající instalátoři pro oba operační systémy. Budu pracovat z pohledu OSX, ale stejné nástroje existují pro Windows.
PŘEDBĚŽNÉ POŽADAVKY:
1. Budete potřebovat Windows 10 Pro nebo Mac OSX Yosemite 10.10.3 (nebo novější)
2. Pokud používáte Windows, budete muset ujistěte se, že máte Windows Virtualizace povoleno (viz dokumentace Docker poskytuje)
RYCHLÉ POZNÁMKY NA KITEMATIC
S Docker 1.8 a uvolnění Docker Toolbox, Docker nyní zahrnuje „Kitematic,“ šikovný GUI nástroj, který pomůže spravovat a vizualizovat to, co se děje s vaší Docker obrazů a kontejnerů. Většina tohoto tutoriálu se zaměřuje na použití argumentů příkazového řádku a práci s Dockerem bez KITEMATICKÉHO GUI. To vás lépe vystaví základním mechanismům. Stejně tak v pozdějších blogech začnu pokrývat použití Compose pro spuštění a zastavení více kontejnerů najednou.
KROK 1: NAINSTALUJTE DOCKER
1. Přejít na: https://www.docker.com/docker-mac nebo https://www.docker.com/docker-windows
2. Stáhněte a nainstalujte příslušnou verzi Docker pro váš operační systém
3. Postupujte podle všech pokynů k nastavení.
4. Ověřte, zda vaše instalace funguje, otevřením doporučeného shellu pro váš operační systém (terminál pro OSX, Powershell pro windows) spuštěním „Docker Quickstart Terminal“. V systému Windows to bude zástupce na ploše. V OSX jej najdete ve složce applications/Docker. Zkontrolujte následující příkazy a ujistěte se, že nemáte žádné chyby
docker ps
docker info
5. Než uděláme něco jiného, měli bychom zvýšit výchozí paměť a nastavení CPU Docker používá. Později budeme naladit Jenkins používat více paměti, a pokud nebudeme upravovat tato nastavení jako první, Jenkins může dojít k selhání.
-
Jdi do svého Docker widget ve vašem panelu nástrojů a vyberte „Preferences“
-
Přejít na Rozšířené kartu konfigurace
-
Zvýšení využití PROCESORU na alespoň 4 jádra
6. Zvýšení využití paměti alespoň na 8GB, pokud možno více, něco jako 12GB být v bezpečí (pokud ho máte k dispozici)
KROK 2: STÁHNOUT A SPUSTIT CLOUDBEES JENKINS KONTEJNER
1. Zůstaňte v okně terminálu Docker.
2. Vytáhněte Jenkins z veřejného repo spuštěním:
docker pull jenkins/jenkins
docker run -p 8080:8080 --name=jenkins-master jenkins/jenkins
3. Všimněte si, že zpráva „Jenkins initial setup“ v okně shellu vám vygeneruje heslo. Zapište si to, jak budete potřebovat později. Pokud ji ztratíte, můžete spustit `docker exec jenkins-master cat /var/jenkins_home/tajemství/initialAdminPassword` s vaší kontejneru běží, aby ji získali.
4. Otevřete svůj oblíbený prohlížeč a přejděte na http://localhost:8080
vezměte Prosím na vědomí, budete vidět, že jsem pomocí Docker-název, vlajka a název kontejneru jenkins-master – je to úmluva budu používat v celém tomto blogu. Pojmenování kontejnerů je užitečná osvědčená praxe se třemi výhodami:
1. To usnadňuje jejich zapamatování a interakci s
2. Docker neumožňuje, aby dva kontejnery měly stejný název, což zabraňuje chybám, jako je náhodné spuštění dvou identických
3. Mnoho běžných nástrojů Docker (jako je Docker Compose) používá konkrétní názvy kontejnerů, takže zvyknout si na pojmenování kontejnerů je dobrým osvědčeným postupem.
Krok 3: aby to trochu praktičtější
předchozí krok začíná Jenkins s jeho nejzákladnější nastavení spuštění. Můžete dokonce vidět, že Jenkins potřebuje základní konfiguraci a žádá vás o heslo správce (které můžete získat z protokolů zobrazených na obrazovce během spuštění). Pokud jste jako Riot, je nepravděpodobné, že spustíte Jenkins ve výchozím nastavení. Pojďme projít přidáním některých užitečných možností. Zatím se nebudeme obtěžovat konfigurací Jenkins; stačí vědět, že může začít a běžet.
krok 3A: DAEMONIZING
pravděpodobně nechcete vidět Jenkins protokoly chrlit standardní ven většinu času. Použijte příznak démona Dockeru pro spuštění kontejneru (- d).
1. Ctrl-c v okně terminálu se spuštěným kontejnerem jej zastaví
2. Spusťte následující příkazy
docker rm jenkins-master
docker run -p 8080:8080 --name=jenkins-master -d jenkins/jenkins
Nyní byste měli jen hash řetězec a zobrazí se vrátil k terminálu. Pokud jste nový Docker, že hash řetězec je vlastně jedinečný IDENTIFIKÁTOR vašeho kontejneru (užitečné, pokud začnete automatizaci těchto příkazů).
krok 3B: nastavení paměti
máme tendenci spouštět Jenkins s některými svalnatými nastaveními v Riotu. Nezapomeňte, když jste zvýšili CPU / Paměť Docker používá dříve? To je hlavní důvod, proč. Pro základní spuštění, spusťte následující příkazy
docker stop jenkins-master
docker rm jenkins-master
docker run -p 8080:8080 --name=jenkins-master -d --env JAVA_OPTS="-Xmx8192m" jenkins/jenkins
To by vám mělo dát Jenkins pěkné 8 GB paměti, bazén a pokoje zvládnout sběr odpadků.
krok 3C: zvýšením fondu připojení
v Riotu dostáváme na náš server Jenkins hodně provozu, takže jsme se naučili dát Jenkinsovi trochu více prostoru pro dýchání. Spusťte následující
docker stop jenkins-master
docker rm jenkins-master
to dá Jenkinsovi pěknou základnu psovodů a čepici. Shodou okolností jste se nyní naučili používat jak JAVA OPTS, tak JENKINS OPTS jako proměnné prostředí smysluplným způsobem. Vezměte prosím na vědomí, že to funguje kvůli tomu, jak Cloudbees pohodlně strukturoval svůj Jenkins Dockerfile.
KROK 4: DÁT TO VŠECHNO DOHROMADY
jsem umístil vše, co jsme se naučili tady do jednoduchého makefile, takže můžete použít, aby příkazy pro ovládání chodu Jenkins docker kontejneru. Najdete ji zde:
-
https://github.com/maxfields2000/docker Jenkins_tutorial/tree/master/tutorial_01
můžete použít následující příkazy:
-
make build – Táhne Jenkins obrázek
-
aby spustit – Spustí kontejner
-
stop – Zastaví nádoby
-
make clean – Zastaví a odstraní existující kontejner
nemusíte použít makefile, Jen jsem najít to jednodušší, než psát celý příkaz spustit. Místo toho byste je mohli snadno vložit do skriptu podle vašeho výběru.
doufejme, že uvidíte, jak snadné je vstát a běžet s Dockerem a Jenkinsem. Snažil jsem se vám dát několik základních možností, jak vzít výchozí kontejner Cloudbees Jenkins a učinit jej trochu použitelnějším. Cloudbees má mnoho užitečných návodů pro spuštění jejich kontejneru, například jak předinstalovat pluginy a ukládat data Jenkins.
to mě přivádí k budoucím příspěvkům na toto téma. Tento kontejner/obrázek je užitečné, ale má několik nevýhod: žádný konzistentní přihlášení, žádná vytrvalost, nic webového serveru proxy v přední části, a žádný čistý způsob, jak zaručit použití verze Jenkins chcete. To vyvolává otázky jako: co když se chcete držet starší verze? Nebo co když chcete použít nejnovější dostupné období vydání?
v další lekci se budu zabývat tím, že tento kontejner bude o něco robustnější. Zejména:
-
Vytváření vlastních Dockerfile zabalit Cloudbees base
-
Stěhování některé z proměnných prostředí na nový obrázek
-
Vytvoření protokolu složky, nastavení oprávnění a dalších užitečných Jenkins adresáře, a načítání Jenkins protokoly, zatímco to běží
LEKCE 2 – JENKINS ZÁKLADNÍ OBRÁZEK OBALU
V předchozí lekci jsem se zmínil nastavení vývojového prostředí pro běh Docker a experimentoval s Jenkins Docker image poskytována Cloudbees. Zjistili jsme, že to bylo jednoduché a snadno použitelné, s některými skvělými funkcemi po vybalení z krabice. Aby se pokrok ve zlepšení oblasti, které jsme identifikovali, Docker koncepty, které v této lekci jsou:
-
Dělat své vlastní Dockerfile
-
Nastavení proměnné prostředí v Dockerfile
-
Vytváření složek a oprávnění v Dockerfile
-
Pomocí docker exec spustit příkazy proti běhu kontejneru
TAKŽE VAŠE ZÁKLADNÍ DOCKERFILE
chceme, aby se nějaké změny, jak Jenkins se spustí ve výchozím nastavení. V posledním blogu jsme to řešili vytvořením makefile, který předával argumenty jako proměnné prostředí. Vzhledem k tomu, že to chceme dělat pokaždé, můžeme je přesunout do našeho vlastního Dockerfile. Navíc, naše vlastní Dockerfile nám umožní zamknout verze Jenkins používáme v případě, Cloudbees aktualizace jejich, a nejsme připraveni na upgrade.
děláme to ve čtyřech krocích:
1. Vytvořte pracovní adresář
2. Ve svém oblíbeném textovém editoru vytvořte nový soubor s názvem“Dockerfile“
3. Přidejte do souboru následující a uložte jej:
FROM jenkins/jenkins:2.112LABEL maintainer=""
4. Pak na příkazovém řádku zadejte:
docker build -t myjenkins .
Co jsme dělali tady, bylo získat konkrétní verzi Jenkins obrázek z veřejných docker repo. Všechny dostupné verze najdete zde:
-
klauzuli FROM můžete vždy nastavit tak, aby byla k dispozici jakákoli verze obrázku. Nemůžete však pouze nastavit verzi na jakoukoli verzi Jenkins, kterou chcete. Toto je verze obrázku “ tag „nebo“ label “ a Cloudbees je dost pěkný, aby odpovídal verzi Jenkins uvnitř obrázku. Cloudbees nabízí“ jenkins/jenkins “ jako pohodlný způsob, jak získat nejnovější verzi, nebo „jenkins/jenkins: lts“, abyste získali nejnovější verzi“ dlouhodobé podpory“. V tomto příkladu používám konkrétní verzi. Tyto tagy štítku typy zprávy jsou skvělé, ale jejich použití se rozumí verze Jenkins se může změnit pod vámi, což může způsobit komplikace, pokud jste nebyli připraveni na upgrade. Doporučuji „zamykání verzí“ jako obecný osvědčený postup při řešení závislostí v Dockeru nebo jiných nástrojích pro správu závislostí. Chcete, aby se věci změnily, když to máte v úmyslu, ne dříve. Proto zde používám konkrétní verzi.
TESTOVÁNÍ NOVÉ DOCKERFILE
můžeme přejít k obrazu velmi jednoduše tím, že mění naše docker spustit následující příkaz:
docker run -p 8080:8080 --name=jenkins-master -d --env JAVA_OPTS="-Xmx8192m" --env JENKINS_OPTS=" --handlerCountMax=300" myjenkins
Nyní můžeme vyčistění těchto proměnných prostředí tím, že umístí je v naší vlastní Dockerfile.
přidání proměnných prostředí do našeho DOCKERFILE
je snadné přidat výchozí nastavení pro věci, jako jsou proměnné prostředí do Dockerfiles. To také poskytuje pěkný kus vlastní dokumentace. A protože je můžete vždy přepsat při spuštění kontejneru Docker, neexistuje žádná nevýhoda.
1. Do Dockerfile přidejte následující řádky za řádek „Správce“:
ENV JAVA_OPTS="-Xmx8192m"ENV JENKINS_OPTS=" --handlerCountMax=300"
2. Uložte a znovu vytvořte obrázek:
-
docker build-t myjenkins .
docker build -t myjenkins .
docela jednoduché! Můžete vyzkoušet, že stále funguje zadáním následujících tří příkazů:
docker stop jenkins-master
docker rm jenkins-master
docker run -p 8080:8080 --name=jenkins-master -d myjenkins
váš obrázek by měl začít hned! Ale jak víte, že proměnné prostředí fungovaly? Jednoduchý: stejným způsobem byste zkontrolovali, jaké argumenty spustily vaši aplikaci Jenkins normálně pomocí ps. A to funguje, i když vyvíjíte na Windows.
BĚŽÍ ZÁKLADNÍ PŘÍKAZ PROTI svým KONTEJNER
potvrdit, že Java a Jenkins možnosti jsou správně nastaveno, můžeme spustit ps v našem kontejneru a vidět běh Jenkins Java proces pomocí docker exec
docker exec jenkins-master ps -ef | grep java
měli Byste vidět něco podobného tomuto vrátit
jenkins 1 0 99 21:28 ? 00:00:35 java -Xmx8192m -jar /usr/share/jenkins/jenkins.war --handlerCountMax=300
Z tohoto, můžete snadno vidět naše nastavení se zasekl. docker exec je jednoduchý způsob, jak provádět příkazy shellu uvnitř kontejneru a také neuvěřitelně jednoduchý způsob, jak je zkontrolovat. To funguje i v systému Windows, protože nezapomeňte, že příkaz po „exec“ je spuštěn uvnitř kontejneru, a proto je založen na jakémkoli základním obrázku, který váš kontejner používá.
NASTAVENÍ PROTOKOLU SLOŽKY
V předchozím blogu jsme zjistili, že jsme ztratili viditelnost do Jenkins protokoly, když běží náš kontejner s daemonize vlajky (-d). Chceme použít vestavěnou funkci Jenkins k nastavení složky protokolu. Budeme to muset udělat v našem Dockerfile a pak předat možnost Protokolování Jenkinsovi.
pojďme znovu upravit náš soubor Dockerfile. Mezi „správce“ a první řádek ENV přidáme následující
RUN mkdir /var/log/jenkins
umístíme příkaz na toto místo do souboru, abychom dodržovali osvědčené postupy. Je pravděpodobnější, že změníme proměnné prostředí než tyto instalační adresáře a každý příkazový řádek v souboru Dockerfile se v podstatě stává vlastní obrazovou vrstvou. Maximalizujete opětovné použití vrstvy umístěním často měněných položek v dolní části.
nyní vytvořte svůj obrázek znovu:
docker build -t myjenkins
zobrazí se chyba, která vypadá
---> Running in 0b5ac2bce13bmkdir: cannot create directory '/var/log/jenkins': Permission denied
bez obav. Je to proto, že výchozí kontejner Cloudbees nastaví běžícího uživatele na uživatele“ Jenkins“. Pokud se podíváte na jejich Dockerfile (nalézt zde: https://github.com/ Jenkinsci/docker/blob/master/Dockerfile), měli byste vidět, u dna
USER ${user}
Tato syntaxe může být trochu matoucí. Používá Docker sestavení „argumenty“, které vám umožní definovat uživatele. Pokud se podíváte dále do souboru Docker, najdete výchozí hodnotu. Podívejte se na horní část souboru Dockerfile pro
ARG user=jenkins
tím se vytvoří argument“ user “ (ARG) a nastaví se na uživatele Jenkins. To vám umožní změnit uživatelské jméno, které Jenkins používá při volání Docker build — build-arg somevariable=somevalue. Všimněte si, že to funguje pouze v případě, že stavíte soubor Dockerfile od nuly. Tyto hodnoty nelze změnit tahem Dockeru nebo spuštěním Dockeru. Více o sestavení argumentů si můžete přečíst zde. Protože v naší klauzuli od používáme přednastavenou verzi, skončíme s výchozím uživatelem: „jenkins“.
v normálním Linuxu stačí použít SUDO nebo jiné prostředky k vytvoření složky (/var / log je ve vlastnictví root). Naštěstí pro nás Docker nám umožňuje přepínat uživatele.
přidejte do Dockerfile následující:
1. Před spuštěním mkdir linky přidat
USER root
2. Po spuštění mkdir řádku přidat
RUN chown -R jenkins:jenkins /var/log/jenkins
3. Po spuštění chown řádku přidat:
USER jenkins
Všimněte si, že jsme museli také přidat příkaz chown, protože chceme, aby uživatel Jenkins mohl zapisovat do složky. Dále nastavíme root a resetujeme Jenkins tak, aby bylo zachováno chování Dockerfile.
nyní vytvořte svůj obrázek znovu:
docker build -t myjenkins .
a… vaše chyby by měly být pryč.
adresář protokolu set (poznámka: můžete umístit tuto složku, kam chcete, budeme používat /var/log konzistence) nyní můžeme říct, Jenkins k zápisu do složky po spuštění úpravou JENKINS_OPTS proměnné prostředí.
V Dockerfile upravit JENKINS_OPTS řádek vypadat takto:
-
ENV JENKINS_OPTS=“–handlerCountMax=300 –logfile=/var/log/jenkins/jenkins.log“
ENV JENKINS_OPTS="--handlerCountMax=300 --logfile=/var/log/jenkins/jenkins.log"
nyní vytvořte svůj obrázek ještě jednou
docker build -t myjenkins .
pojďme vyzkoušet náš nový obrázek a pokud můžeme sledovat soubor protokolu! Zkuste následující příkazy
docker stop jenkins-master
docker rm jenkins-master
docker run -p 8080:8080 --name=jenkins-master -d myjenkins
S kontejnerem běh můžeme sledovat v souboru protokolu, když všechno funguje
docker exec jenkins-master tail -f /var/log/jenkins/jenkins.log
NAČÍST PROTOKOLY, POKUD JENKINS PÁDY
Čas pro bonusové kolo! Dokud diskutujeme o protokolech, Docker představuje zajímavý problém, pokud Jenkins havaruje. Kontejner přestane běžet a docker exec již nebude fungovat. Tak co dělat?
budeme diskutovat o pokročilejší způsoby přetrvávání souboru protokolu později. Prozatím, protože je kontejner zastaven, můžeme z něj kopírovat soubory pomocí příkazu Docker cp. Simulujme pád zastavením kontejneru a načtením protokolů:
1. ctrl-c pro ukončení z ocasu souboru protokolu
2. Spusťte následující příkazy
docker stop jenkins-master
docker cp jenkins-master:/var/log/jenkins/jenkins.log jenkins.log
cat jenkins.log
ZÁVĚREČNÉ MYŠLENKY
můžete najít všechny práce v mém tutoriálu Git repo (a aktualizované pohodlí makefile) zde:
-
https://github.com/maxfields2000/docker Jenkins_tutorial / strom / master / tutorial_02
vytvořením vlastního souboru Dockerfile, který obaluje soubor Cloudbees, jsme si mohli trochu usnadnit život. Vytvořili jsme vhodné místo pro ukládání protokolů a naučili jsme se, jak se na ně dívat pomocí příkazu docker exec. Přesunuli jsme naše výchozí nastavení do souboru Dockerfile a nyní to můžeme uložit do zdrojového řízení jako dobrý kus vlastní dokumentace.
stále máme problém s perzistencí dat. Naučili jsme se, jak vytáhnout soubory protokolu ze zastaveného kontejneru (užitečné, když Jenkins havaruje). Ale obecně, pokud se náš kontejner zastaví, stále přicházíme o všechna pracovní místa, která jsme vytvořili. Takže bez vytrvalosti je tento obraz Jenkins užitečný pouze pro místní rozvoj a testování.
to nás vede k dalšímu článku. S našimi základy na místě-náš vlastní Dockerfile wrapper, uzamčen na praktickou verzi Jenkins – můžeme vyřešit problém perzistence. Následující článek prozkoumá tyto pojmy:
-
Zachování Jenkins Práci a Plugin údaje
-
Docker Datové Persistence s Svazků
-
Vytváření Dat-Objem nádoby
-
Sdílení datového objemu s další kontejnery
Pro více informací, podívejte se na zbytek této série:
Část I: Myšlení Uvnitř Kontejneru
Část II: Uvedení Jenkins v Docker Kontejner (tento článek)
Část III: Docker & Jenkins: Data, Která Přetrvává
Část IV: Jenkins, Docker, Proxy, a Skládat
Část V: Převzetí Kontroly nad Své Docker Image
Část VI: Budování s Jenkins Uvnitř dočasný Docker Kontejner
Část VII: Výuka: Budova s Jenkins Uvnitř dočasný Docker Kontejner
Část VIII: DockerCon Mluvit a Příběh Tak Daleko -