\documentclass[10pt,a4paper]{article} % Packages \usepackage{fancyhdr} % For header and footer \usepackage{multicol} % Allows multicols in tables \usepackage{tabularx} % Intelligent column widths \usepackage{tabulary} % Used in header and footer \usepackage{hhline} % Border under tables \usepackage{graphicx} % For images \usepackage{xcolor} % For hex colours %\usepackage[utf8x]{inputenc} % For unicode character support \usepackage[T1]{fontenc} % Without this we get weird character replacements \usepackage{colortbl} % For coloured tables \usepackage{setspace} % For line height \usepackage{lastpage} % Needed for total page number \usepackage{seqsplit} % Splits long words. %\usepackage{opensans} % Can't make this work so far. Shame. Would be lovely. \usepackage[normalem]{ulem} % For underlining links % Most of the following are not required for the majority % of cheat sheets but are needed for some symbol support. \usepackage{amsmath} % Symbols \usepackage{MnSymbol} % Symbols \usepackage{wasysym} % Symbols %\usepackage[english,german,french,spanish,italian]{babel} % Languages % Document Info \author{Nolgo (Nolgo)} \pdfinfo{ /Title (docker-grand-poitiers.pdf) /Creator (Cheatography) /Author (Nolgo (Nolgo)) /Subject (Docker Grand Poitiers Cheat Sheet) } % Lengths and widths \addtolength{\textwidth}{6cm} \addtolength{\textheight}{-1cm} \addtolength{\hoffset}{-3cm} \addtolength{\voffset}{-2cm} \setlength{\tabcolsep}{0.2cm} % Space between columns \setlength{\headsep}{-12pt} % Reduce space between header and content \setlength{\headheight}{85pt} % If less, LaTeX automatically increases it \renewcommand{\footrulewidth}{0pt} % Remove footer line \renewcommand{\headrulewidth}{0pt} % Remove header line \renewcommand{\seqinsert}{\ifmmode\allowbreak\else\-\fi} % Hyphens in seqsplit % This two commands together give roughly % the right line height in the tables \renewcommand{\arraystretch}{1.3} \onehalfspacing % Commands \newcommand{\SetRowColor}[1]{\noalign{\gdef\RowColorName{#1}}\rowcolor{\RowColorName}} % Shortcut for row colour \newcommand{\mymulticolumn}[3]{\multicolumn{#1}{>{\columncolor{\RowColorName}}#2}{#3}} % For coloured multi-cols \newcolumntype{x}[1]{>{\raggedright}p{#1}} % New column types for ragged-right paragraph columns \newcommand{\tn}{\tabularnewline} % Required as custom column type in use % Font and Colours \definecolor{HeadBackground}{HTML}{333333} \definecolor{FootBackground}{HTML}{666666} \definecolor{TextColor}{HTML}{333333} \definecolor{DarkBackground}{HTML}{0DB7ED} \definecolor{LightBackground}{HTML}{EFFAFD} \renewcommand{\familydefault}{\sfdefault} \color{TextColor} % Header and Footer \pagestyle{fancy} \fancyhead{} % Set header to blank \fancyfoot{} % Set footer to blank \fancyhead[L]{ \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{C} \SetRowColor{DarkBackground} \vspace{-7pt} {\parbox{\dimexpr\textwidth-2\fboxsep\relax}{\noindent \hspace*{-6pt}\includegraphics[width=5.8cm]{/web/www.cheatography.com/public/images/cheatography_logo.pdf}} } \end{tabulary} \columnbreak \begin{tabulary}{11cm}{L} \vspace{-2pt}\large{\bf{\textcolor{DarkBackground}{\textrm{Docker Grand Poitiers Cheat Sheet}}}} \\ \normalsize{by \textcolor{DarkBackground}{Nolgo (Nolgo)} via \textcolor{DarkBackground}{\uline{cheatography.com/203115/cs/43214/}}} \end{tabulary} \end{multicols}} \fancyfoot[L]{ \footnotesize \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{LL} \SetRowColor{FootBackground} \mymulticolumn{2}{p{5.377cm}}{\bf\textcolor{white}{Cheatographer}} \\ \vspace{-2pt}Nolgo (Nolgo) \\ \uline{cheatography.com/nolgo} \\ \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Cheat Sheet}} \\ \vspace{-2pt}Not Yet Published.\\ Updated 16th May, 2024.\\ Page {\thepage} of \pageref{LastPage}. \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Sponsor}} \\ \SetRowColor{white} \vspace{-5pt} %\includegraphics[width=48px,height=48px]{dave.jpeg} Measure your website readability!\\ www.readability-score.com \end{tabulary} \end{multicols}} \begin{document} \raggedright \raggedcolumns % Set font size to small. Switch to any value % from this page to resize cheat sheet text: % www.emerson.emory.edu/services/latex/latex_169.html \footnotesize % Small font. \begin{multicols*}{2} \begin{tabularx}{8.4cm}{x{2.08 cm} x{5.92 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Définitions}} \tn % Row 0 \SetRowColor{LightBackground} Image & Modèle préconfiguré en lecture seul, contenant tous les éléments nécessaires à l'exécution d'une application dans un conteneur Docker. \tn % Row Count 5 (+ 5) % Row 1 \SetRowColor{white} \seqsplit{Dockerfile} & Document texte contenant toutes les commandes que vous exécuteriez normalement manuellement pour construire une image Docker. \tn % Row Count 10 (+ 5) % Row 2 \SetRowColor{LightBackground} Conteneur & Instance exécutable et portable d'une image, encapsulant tout le nécessaire pour exécuter un processus spécifique de manière isolée. Les conteneurs partageant le même kernel mais fonctionnant indépendamment. \tn % Row Count 18 (+ 8) % Row 3 \SetRowColor{white} Daemon Docker & Service d'arrière plan exécuté sur l'hôte qui gère la création, l'exécution et la distribution des conteneurs. C'est le processus qui s'exécute dans le système d'exploitation et auquel les clients communiquent. \tn % Row Count 26 (+ 8) % Row 4 \SetRowColor{LightBackground} Service & Un ou plusieurs conteneurs exécutant le même processus dans un environnement coordonné. Un service est défini dans Docker Compose et peut échelonner le nombre de conteneurs utilisés pour une tâche donnée. \tn % Row Count 34 (+ 8) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{8.4cm}{x{2.08 cm} x{5.92 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Définitions (cont)}} \tn % Row 5 \SetRowColor{LightBackground} Volume & Système de ficher monté sur un conteneur qui à pour but de persister (conserver) les données créés à l'exécution d'un conteneur, ou de partager ces données avec d'autres conteneurs. \tn % Row Count 7 (+ 7) % Row 6 \SetRowColor{white} Network & Réseaux virtuel qui lie des conteneurs entre eux. Ils permettent d'isoler les conteneurs, de la machine et les isoler entre eux. Sur l'exemple de la Stack il s'agirais d'empêcher la machine et les les conteneurs autre que app d'accéder à la DB. \tn % Row Count 16 (+ 9) % Row 7 \SetRowColor{LightBackground} Stack & Ensemble de services travaillant ensemble de sorte à créé une application. (e.g: php + web server + database) \tn % Row Count 20 (+ 4) % Row 8 \SetRowColor{white} Docker Compose & Fichier texte définissant une stack (liste de services, volumes, networks, relations entre ces derniers, etc. \tn % Row Count 24 (+ 4) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{Liens utiles}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{\{\{popup="https://docs.docker.com/reference/dockerfile/"\}\}Référence fichiers dockerfile\{\{/popup\}\}} \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{\{\{popup="https://docs.docker.com/compose/compose-file/"\}\}Référence fichiers compose\{\{/popup\}\}} \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{\{\{popup="https://docs.docker.com/reference/cli/docker/"\}\}Référence CLI Docker\{\{/popup\}\}} \tn % Row Count 6 (+ 2) % Row 3 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{\{\{popup="https://docs.docker.com/compose/reference/"\}\}Référence CLI Docker Compose\{\{/popup\}\}} \tn % Row Count 8 (+ 2) % Row 4 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{\{\{popup="https://docs.docker.com/engine/security/protect-access/"\}\}Sécurisation du Daemon Socket\{\{/popup\}\}} \tn % Row Count 11 (+ 3) % Row 5 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{\{\{popup="https://docs.portainer.io/user/docker"\}\}Documentation Portainer\{\{/popup\}\}} \tn % Row Count 13 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{1.512 cm} x{1.872 cm} x{1.584 cm} x{2.232 cm} } \SetRowColor{DarkBackground} \mymulticolumn{4}{x{8.4cm}}{\bf\textcolor{white}{Interpolation des variables d'environnement}} \tn % Row 0 \SetRowColor{LightBackground} {\bf{Syntaxe}} & {\bf{VAR est défini}} & {\bf{VAR est vide}} & {\bf{VAR est non-défini}} \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} \$\{VAR\} & VAR & {\emph{chaine vide}} & {\emph{chaine vide}} \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} \$\{VAR:-str\} & VAR & str & str \tn % Row Count 6 (+ 2) % Row 3 \SetRowColor{white} \$\{VAR-str\} & VAR & {\emph{chaine vide}} & str \tn % Row Count 8 (+ 2) % Row 4 \SetRowColor{LightBackground} \$\{VAR:?message\} & VAR & Erreur: message & Erreur: message \tn % Row Count 10 (+ 2) % Row 5 \SetRowColor{white} \$\{VAR?message\} & VAR & {\emph{chaine vide}} & Erreur: message \tn % Row Count 12 (+ 2) % Row 6 \SetRowColor{LightBackground} \$\{VAR:+str\} & str & str & {\emph{chaine vide}} \tn % Row Count 14 (+ 2) % Row 7 \SetRowColor{white} \$\{VAR+str\} & str & {\emph{chaine vide}} & {\emph{chaine vide}} \tn % Row Count 16 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}----} \SetRowColor{LightBackground} \mymulticolumn{4}{x{8.4cm}}{L'interpolation peut être imbriqué : `\{\{lang-bash\}\}\$\{FOO:-\$\{BAR:?FOO ou BAR devrait être défini\}\}`} \tn \hhline{>{\arrayrulecolor{DarkBackground}}----} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{Docker à Grand Poitiers}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{p{8.4cm}}{\vspace{1px}\centerline{\includegraphics[width=5.1cm]{/web/www.cheatography.com/public/uploads/nolgo_1714463814_docker GP.png}}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{Les VM ont le format UVDOCKP{\emph{XXXX}}. \newline La partie VM est gérée par l'infra. \newline La partie Docker est gérée par ENM.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} % That's all folks \end{multicols*} \end{document}