docker-documentation/general/containers-101/index.html

3 wiersze
39 KiB
HTML
Czysty Wina Historia

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="Welcome to the home of the LinuxServer.io documentation!"><meta name=author content=LinuxServer.io><link href=https://docs.linuxserver.io/general/containers-101/ rel=canonical><link rel=icon href="https://gblobscdn.gitbook.com/spaces%2F-LWuIse8qFJj2MqDi90T%2Favatar-1590244439115.png?alt=media"><meta name=generator content="mkdocs-1.4.2, mkdocs-material-8.5.10"><title>Docker Containers: 101 - LinuxServer.io</title><link rel=stylesheet href=../../assets/stylesheets/main.472b142f.min.css><link rel=stylesheet href=../../assets/stylesheets/palette.08040f6c.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=purple data-md-color-accent=indigo> <script>var palette=__md_get("__palette");if(palette&&"object"==typeof palette.color)for(var key of Object.keys(palette.color))document.body.setAttribute("data-md-color-"+key,palette.color[key])</script> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#docker-containers-101 class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=../.. title=LinuxServer.io class="md-header__button md-logo" aria-label=LinuxServer.io data-md-component=logo> <img src="https://gblobscdn.gitbook.com/spaces%2F-LWuIse8qFJj2MqDi90T%2Favatar-1590244439115.png?alt=media" alt=logo> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> LinuxServer.io </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Docker Containers: 101 </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media="(prefers-color-scheme: light)" data-md-color-scheme=default data-md-color-primary=purple data-md-color-accent=indigo aria-label="Switch to dark mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_2 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M17 6H7c-3.31 0-6 2.69-6 6s2.69 6 6 6h10c3.31 0 6-2.69 6-6s-2.69-6-6-6zm0 10H7c-2.21 0-4-1.79-4-4s1.79-4 4-4h10c2.21 0 4 1.79 4 4s-1.79 4-4 4zM7 9c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"/></svg> </label> <input class=md-option data-md-color-media="(prefers-color-scheme: dark)" data-md-color-scheme=slate data-md-color-primary=purple data-md-color-accent=indigo aria-label="Switch to light mode" type=radio name=__palette id=__palette_2> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M17 7H7a5 5 0 0 0-5 5 5 5 0 0 0 5 5h10a5 5 0 0 0 5-5 5 5 0 0 0-5-5m0 8a3 3 0 0 1-3-3 3 3 0 0 1 3-3 3 3 0 0 1 3 3 3 3 0 0 1-3 3Z"/></svg> </label> </form> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg> </label> <nav class=md-search__options aria-label=Search> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg> </button> </nav> </form> <div class=md-search__output> <div class=md-search__scrollwrap data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/linuxserver/docker-documentation title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 448 512"><!-- Font Awesome Free 6.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg> </div> <div class=md-source__repository> linuxserver/docker-documentation </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=../.. title=LinuxServer.io class="md-nav__button md-logo" aria-label=LinuxServer.io data-md-component=logo> <img src="https://gblobscdn.gitbook.com/spaces%2F-LWuIse8qFJj2MqDi90T%2Favatar-1590244439115.png?alt=media" alt=logo> </a> LinuxServer.io </label> <div class=md-nav__source> <a href=https://github.com/linuxserver/docker-documentation title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 448 512"><!-- Font Awesome Free 6.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg> </div> <div class=md-source__repository> linuxserver/docker-documentation </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../.. class=md-nav__link> Introduction </a> </li> <li class=md-nav__item> <a href=../../FAQ/ class=md-nav__link> FAQ </a> </li> <li class="md-nav__item md-nav__item--active md-nav__item--nested"> <input class="md-nav__toggle md-toggle" data-md-toggle=__nav_3 type=checkbox id=__nav_3 checked> <label class=md-nav__link for=__nav_3> General <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav aria-label=General data-md-level=1> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> General </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../container-execution/ class=md-nav__link> Container Execution </a> </li> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" data-md-toggle=toc type=checkbox id=__toc> <label class="md-nav__link md-nav__link--active" for=__toc> Docker Containers: 101 <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> Docker Containers: 101 </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#what-do-i-need-to-know class=md-nav__link> What do I need to know? </a> </li> <li class=md-nav__item> <a href=#key-terminology class=md-nav__link> Key Terminology </a> </li> <li class=md-nav__item> <a href=#key-concepts class=md-nav__link> Key Concepts </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../running-our-containers/ class=md-nav__link> Running LinuxServer Containers </a> </li> <li class=md-nav__item> <a href=../container-customization/ class=md-nav__link> Customizing LinuxServer Containers </a> </li> <li class=md-nav__item> <a href=../docker-compose/ class=md-nav__link> Docker Compose </a> </li> <li class=md-nav__item> <a href=../understanding-puid-and-pgid/ class=md-nav__link> Understanding PUID and PGID </a> </li> <li class=md-nav__item> <a href=../updating-our-containers/ class=md-nav__link> Updating our containers </a> </li> <li class=md-nav__item> <a href=../volumes/ class=md-nav__link> Volumes </a> </li> <li class=md-nav__item> <a href=../fleet/ class=md-nav__link> Fleet </a> </li> <li class=md-nav__item> <a href=../swag/ class=md-nav__link> Swag </a> </li> <li class=md-nav__item> <a href=../awesome-lsio/ class=md-nav__link> Awesome LSIO </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle" data-md-toggle=__nav_4 type=checkbox id=__nav_4> <label class=md-nav__link for=__nav_4> Images <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav aria-label=Images data-md-level=1> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Images </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../images/docker-adguardhome-sync/ class=md-nav__link> adguardhome-sync </a> </li> <li class=md-nav__item> <a href=../../images/docker-airsonic-advanced/ class=md-nav__link> airsonic-advanced </a> </li> <li class=md-nav__item> <a href=../../images/docker-airsonic/ class=md-nav__link> airsonic </a> </li> <li class=md-nav__item> <a href=../../images/docker-apprise-api/ class=md-nav__link> apprise-api </a> </li> <li class=md-nav__item> <a href=../../images/docker-babybuddy/ class=md-nav__link> babybuddy </a> </li> <li class=md-nav__item> <a href=../../images/docker-bazarr/ class=md-nav__link> bazarr </a> </li> <li class=md-nav__item> <a href=../../images/docker-beets/ class=md-nav__link> beets </a> </li> <li class=md-nav__item> <a href=../../images/docker-blender/ class=md-nav__link> blender </a> </li> <li class=md-nav__item> <a href=../../images/docker-boinc/ class=md-nav__link> boinc </a> </li> <li class=md-nav__item> <a href=../../images/docker-booksonic-air/ class=md-nav__link> booksonic-air </a> </li> <li class=md-nav__item> <a href=../../images/docker-booksonic/ class=md-nav__link> booksonic </a> </li> <li class=md-nav__item> <a href=../../images/docker-bookstack/ class=md-nav__link> bookstack </a> </li> <li class=md-nav__item> <a href=../../images/docker-budge/ class=md-nav__link> budge </a> </li> <li class=md-nav__item> <a href=../../images/docker-calibre-web/ class=md-nav__link> calibre-web </a> </li> <li class=md-nav__item> <a href=../../images/docker-calibre/ class=md-nav__link> calibre </a> </li> <li class=md-nav__item> <a href=../../images/docker-cardigann/ class=md-nav__link> linuxserver/cardigann </a> </li> <li class=md-nav__item> <a href=../../images/docker-changedetection.io/ class=md-nav__link> changedetection.io </a> </li> <li class=md-nav__item> <a href=../../images/docker-chevereto/ class=md-nav__link> chevereto </a> </li> <li class=md-nav__item> <a href=../../images/docker-clarkson/ class=md-nav__link> clarkson </a> </li> <li class=md-nav__item> <a href=../../images/docker-cloud9/ class=md-nav__link> cloud9 </a> </li> <li class=md-nav__item> <a href=../../images/docker-code-server/ class=md-nav__link> code-server </a> </li> <li class=md-nav__item> <a href=../../images/docker-codiad/ class=md-nav__link> linuxserver/codiad </a> </li> <li class=md-nav__item> <a href=../../images/docker-codimd/ class=md-nav__link> [linuxserver/codimd](https://github.com/linuxserver/docker-codimd) </a> </li> <li class=md-nav__item> <a href=../../images/docker-cops/ class=md-nav__link> cops </a> </li> <li class=md-nav__item> <a href=../../images/docker-couchpotato/ class=md-nav__link> couchpotato </a> </li> <li class=md-nav__item> <a href=../../images/docker-daapd/ class=md-nav__link> daapd </a> </li> <li class=md-nav__item> <a href=../../images/docker-darktable/ class=md-nav__link> darktable </a> </li> <li class=md-nav__item> <a href=../../images/docker-davos/ class=md-nav__link> davos </a> </li> <li class=md-nav__item> <a href=../../images/docker-ddclient/ class=md-nav__link> ddclient </a> </li> <li class=md-nav__item> <a href=../../images/docker-deluge/ class=md-nav__link> deluge </a> </li> <li class=md-nav__item> <a href=../../images/docker-digikam/ class=md-nav__link> digikam </a> </li> <li class=md-nav__item> <a href=../../images/docker-dillinger/ class=md-nav__link> dillinger </a> </li> <li class=md-nav__item> <a href=../../images/docker-diskover/ class=md-nav__link> diskover </a> </li> <li class=md-nav__item> <a href=../../images/docker-docker-compose/ class=md-nav__link> docker-compose </a> </li> <li class=md-nav__item> <a href=../../images/docker-dokuwiki/ class=md-nav__link> dokuwiki </a> </li> <li class=md-nav__item> <a href=../../images/docker-domoticz/ class=md-nav__link> domoticz </a> </li> <li class=md-nav__item> <a href=../../images/docker-doplarr/ class=md-nav__link> doplarr </a> </li> <li class=md-nav__item> <a href=../../images/docker-doublecommander/ class=md-nav__link> doublecommander </a> </li> <li class=md-nav__item> <a href=../../images/docker-duckdns/ class=md-nav__link> duckdns </a> </li> <li class=md-nav__item> <a href=../../images/docker-duplicati/ class=md-nav__link> duplicati </a> </li> <li class=md-nav__item> <a href=../../images/docker-emby/ class=md-nav__link> emby </a> </li> <li class=md-nav__item> <a href=../../images/docker-embystat/ class=md-nav__link> embystat </a> </li> <li class=md-nav__item> <a href=../../images/docker-emulatorjs/ class=md-nav__link> emulatorjs </a> </li> <li class=md-nav__item> <a href=../../images/docker-endlessh/ class=md-nav__link> endlessh </a> </li> <li class=md-nav__item> <a href=../../images/docker-fail2ban/ class=md-nav__link> fail2ban </a> </li> <li class=md-nav__item> <a href=../../images/docker-feed2toot/ class=md-nav__link> feed2toot </a> </li> <li class=md-nav__item> <a href=../../images/docker-ffmpeg/ class=md-nav__link> ffmpeg </a> </li> <li class=md-nav__item> <a href=../../images/docker-filezilla/ class=md-nav__link> filezilla </a> </li> <li class=md-nav__item> <a href=../../images/docker-firefox/ class=md-nav__link> firefox </a> </li> <li class=md-nav__item> <a href=../../images/docker-fleet/ class=md-nav__link> fleet </a> </li> <li class=md-nav__item> <a href=../../images/docker-foldingathome/ class=md-nav__link> foldingathome </a> </li> <li class=md-nav__item> <a href=../../images/docker-freshrss/ class=md-nav__link> freshrss </a> </li> <li class=md-nav__item> <a href=../../images/docker-grav/ class=md-nav__link> grav </a> </li> <li class=md-nav__item> <a href=../../images/docker-grocy/ class=md-nav__link> grocy </a> </li> <li class=md-nav__item> <a href=../../images/docker-guacd/ class=md-nav__link> guacd </a> </li> <li class=md-nav__item> <a href=../../images/docker-habridge/ class=md-nav__link> habridge </a> </li> <li class=md-nav__item> <a href=../../images/docker-headphones/ class=md-nav__link> headphones </a> </li> <li class=md-nav__item> <a href=../../images/docker-healthchecks/ class=md-nav__link> healthchecks </a> </li> <li class=md-nav__item> <a href=../../images/docker-hedgedoc/ class=md-nav__link> hedgedoc </a> </li> <li class=md-nav__item> <a href=../../images/docker-heimdall/ class=md-nav__link> heimdall </a> </li> <li class=md-nav__item> <a href=../../images/docker-homeassistant/ class=md-nav__link> homeassistant </a> </li> <li class=md-nav__item> <a href=../../images/docker-htpcmanager/ class=md-nav__link> htpcmanager </a> </li> <li class=md-nav__item> <a href=../../images/docker-hydra/ class=md-nav__link> [linuxserver/hydra](https://github.com/linuxserver/docker-hydra) </a> </li> <li class=md-nav__item> <a href=../../images/docker-ipfs/ class=md-nav__link> ipfs </a> </li> <li class=md-nav__item> <a href=../../images/docker-jackett/ class=md-nav__link> jackett </a> </li> <li class=md-nav__item> <a href=../../images/docker-jellyfin/ class=md-nav__link> jellyfin </a> </li> <li class=md-nav__item> <a href=../../images/docker-kanzi/ class=md-nav__link> kanzi </a> </li> <li class=md-nav__item> <a href=../../images/docker-kasm/ class=md-nav__link> kasm </a> </li> <li class=md-nav__item> <a href=../../images/docker-kdenlive/ class=md-nav__link> kdenlive </a> </li> <li class=md-nav__item> <a href=../../images/docker-lazylibrarian/ class=md-nav__link> lazylibrarian </a> </li> <li class=md-nav__item> <a href=../../images/docker-ldap-auth/ class=md-nav__link> ldap-auth </a> </li> <li class=md-nav__item> <a href=../../images/docker-libreoffice/ class=md-nav__link> libreoffice </a> </li> <li class=md-nav__item> <a href=../../images/docker-libresonic/ class=md-nav__link> linuxserver/libresonic </a> </li> <li class=md-nav__item> <a href=../../images/docker-librespeed/ class=md-nav__link> librespeed </a> </li> <li class=md-nav__item> <a href=../../images/docker-lidarr/ class=md-nav__link> lidarr </a> </li> <li class=md-nav__item> <a href=../../images/docker-limnoria/ class=md-nav__link> limnoria </a> </li> <li class=md-nav__item> <a href=../../images/docker-lychee/ class=md-nav__link> lychee </a> </li> <li class=md-nav__item> <a href=../../images/docker-mariadb/ class=md-nav__link> mariadb </a> </li> <li class=md-nav__item> <a href=../../images/docker-mastodon/ class=md-nav__link> mastodon </a> </li> <li class=md-nav__item> <a href=../../images/docker-medusa/ class=md-nav__link> medusa </a> </li> <li class=md-nav__item> <a href=../../images/docker-minetest/ class=md-nav__link> minetest </a> </li> <li class=md-nav__item> <a href=../../images/docker-minisatip/ class=md-nav__link> minisatip </a> </li> <li class=md-nav__item> <a href=../../images/docker-mstream/ class=md-nav__link> mstream </a> </li> <li class=md-nav__item> <a href=../../images/docker-muximux/ class=md-nav__link> muximux </a> </li> <li class=md-nav__item> <a href=../../images/docker-mysql-workbench/ class=md-nav__link> mysql-workbench </a> </li> <li class=md-nav__item> <a href=../../images/docker-nano-discord-bot/ class=md-nav__link> [lsiodev/nano-discord-bot](https://github.com/linuxserver/docker-nano-discord-bot) </a> </li> <li class=md-nav__item> <a href=../../images/docker-nano-wallet/ class=md-nav__link> nano-wallet </a> </li> <li class=md-nav__item> <a href=../../images/docker-nano/ class=md-nav__link> nano </a> </li> <li class=md-nav__item> <a href=../../images/docker-netbootxyz/ class=md-nav__link> netbootxyz </a> </li> <li class=md-nav__item> <a href=../../images/docker-netbox/ class=md-nav__link> netbox </a> </li> <li class=md-nav__item> <a href=../../images/docker-nextcloud/ class=md-nav__link> nextcloud </a> </li> <li class=md-nav__item> <a href=../../images/docker-nginx/ class=md-nav__link> nginx </a> </li> <li class=md-nav__item> <a href=../../images/docker-ngircd/ class=md-nav__link> ngircd </a> </li> <li class=md-nav__item> <a href=../../images/docker-nntp2nntp/ class=md-nav__link> nntp2nntp </a> </li> <li class=md-nav__item> <a href=../../images/docker-nzbget/ class=md-nav__link> nzbget </a> </li> <li class=md-nav__item> <a href=../../images/docker-ombi/ class=md-nav__link> ombi </a> </li> <li class=md-nav__item> <a href=../../images/docker-openssh-server/ class=md-nav__link> openssh-server </a> </li> <li class=md-nav__item> <a href=../../images/docker-openvpn-as/ class=md-nav__link> openvpn-as </a> </li> <li class=md-nav__item> <a href=../../images/docker-openvscode-server/ class=md-nav__link> openvscode-server </a> </li> <li class=md-nav__item> <a href=../../images/docker-organizr/ class=md-nav__link> [linuxserver/organizr](https://github.com/linuxserver/docker-organizr) </a> </li> <li class=md-nav__item> <a href=../../images/docker-oscam/ class=md-nav__link> oscam </a> </li> <li class=md-nav__item> <a href=../../images/docker-overseerr/ class=md-nav__link> overseerr </a> </li> <li class=md-nav__item> <a href=../../images/docker-paperless-ng/ class=md-nav__link> paperless-ng </a> </li> <li class=md-nav__item> <a href=../../images/docker-paperless-ngx/ class=md-nav__link> paperless-ngx </a> </li> <li class=md-nav__item> <a href=../../images/docker-papermerge/ class=md-nav__link> papermerge </a> </li> <li class=md-nav__item> <a href=../../images/docker-photoshow/ class=md-nav__link> photoshow </a> </li> <li class=md-nav__item> <a href=../../images/docker-phpmyadmin/ class=md-nav__link> phpmyadmin </a> </li> <li class=md-nav__item> <a href=../../images/docker-pidgin/ class=md-nav__link> pidgin </a> </li> <li class=md-nav__item> <a href=../../images/docker-piwigo/ class=md-nav__link> piwigo </a> </li> <li class=md-nav__item> <a href=../../images/docker-pixapop/ class=md-nav__link> pixapop </a> </li> <li class=md-nav__item> <a href=../../images/docker-plex-meta-manager/ class=md-nav__link> plex-meta-manager </a> </li> <li class=md-nav__item> <a href=../../images/docker-plex/ class=md-nav__link> plex </a> </li> <li class=md-nav__item> <a href=../../images/docker-projectsend/ class=md-nav__link> projectsend </a> </li> <li class=md-nav__item> <a href=../../images/docker-prowlarr/ class=md-nav__link> prowlarr </a> </li> <li class=md-nav__item> <a href=../../images/docker-pwndrop/ class=md-nav__link> pwndrop </a> </li> <li class=md-nav__item> <a href=../../images/docker-pyload-ng/ class=md-nav__link> pyload-ng </a> </li> <li class=md-nav__item> <a href=../../images/docker-pyload/ class=md-nav__link> pyload </a> </li> <li class=md-nav__item> <a href=../../images/docker-pylon/ class=md-nav__link> pylon </a> </li> <li class=md-nav__item> <a href=../../images/docker-qbittorrent/ class=md-nav__link> qbittorrent </a> </li> <li class=md-nav__item> <a href=../../images/docker-qdirstat/ class=md-nav__link> qdirstat </a> </li> <li class=md-nav__item> <a href=../../images/docker-quassel-core/ class=md-nav__link> quassel-core </a> </li> <li class=md-nav__item> <a href=../../images/docker-quassel-web/ class=md-nav__link> quassel-web </a> </li> <li class=md-nav__item> <a href=../../images/docker-radarr/ class=md-nav__link> radarr </a> </li> <li class=md-nav__item> <a href=../../images/docker-raneto/ class=md-nav__link> raneto </a> </li> <li class=md-nav__item> <a href=../../images/docker-rdesktop/ class=md-nav__link> rdesktop </a> </li> <li class=md-nav__item> <a href=../../images/docker-readarr/ class=md-nav__link> readarr </a> </li> <li class=md-nav__item> <a href=../../images/docker-remmina/ class=md-nav__link> remmina </a> </li> <li class=md-nav__item> <a href=../../images/docker-requestrr/ class=md-nav__link> requestrr </a> </li> <li class=md-nav__item> <a href=../../images/docker-resilio-sync/ class=md-nav__link> resilio-sync </a> </li> <li class=md-nav__item> <a href=../../images/docker-rsnapshot/ class=md-nav__link> rsnapshot </a> </li> <li class=md-nav__item> <a href=../../images/docker-sabnzbd/ class=md-nav__link> sabnzbd </a> </li> <li class=md-nav__item> <a href=../../images/docker-scrutiny/ class=md-nav__link> scrutiny </a> </li> <li class=md-nav__item> <a href=../../images/docker-shout-irc/ class=md-nav__link> linuxserver/shout-irc </a> </li> <li class=md-nav__item> <a href=../../images/docker-sickchill/ class=md-nav__link> sickchill </a> </li> <li class=md-nav__item> <a href=../../images/docker-sickgear/ class=md-nav__link> sickgear </a> </li> <li class=md-nav__item> <a href=../../images/docker-smokeping/ class=md-nav__link> smokeping </a> </li> <li class=md-nav__item> <a href=../../images/docker-snapdrop/ class=md-nav__link> snapdrop </a> </li> <li class=md-nav__item> <a href=../../images/docker-snipe-it/ class=md-nav__link> snipe-it </a> </li> <li class=md-nav__item> <a href=../../images/docker-sonarr/ class=md-nav__link> sonarr </a> </li> <li class=md-nav__item> <a href=../../images/docker-sqlitebrowser/ class=md-nav__link> sqlitebrowser </a> </li> <li class=md-nav__item> <a href=../../images/docker-swag/ class=md-nav__link> swag </a> </li> <li class=md-nav__item> <a href=../../images/docker-synclounge/ class=md-nav__link> synclounge </a> </li> <li class=md-nav__item> <a href=../../images/docker-syncthing/ class=md-nav__link> syncthing </a> </li> <li class=md-nav__item> <a href=../../images/docker-syslog-ng/ class=md-nav__link> syslog-ng </a> </li> <li class=md-nav__item> <a href=../../images/docker-taisun/ class=md-nav__link> taisun </a> </li> <li class=md-nav__item> <a href=../../images/docker-tautulli/ class=md-nav__link> tautulli </a> </li> <li class=md-nav__item> <a href=../../images/docker-thelounge/ class=md-nav__link> thelounge </a> </li> <li class=md-nav__item> <a href=../../images/docker-transmission/ class=md-nav__link> transmission </a> </li> <li class=md-nav__item> <a href=../../images/docker-tvheadend/ class=md-nav__link> tvheadend </a> </li> <li class=md-nav__item> <a href=../../images/docker-ubooquity/ class=md-nav__link> ubooquity </a> </li> <li class=md-nav__item> <a href=../../images/docker-unifi-controller/ class=md-nav__link> unifi-controller </a> </li> <li class=md-nav__item> <a href=../../images/docker-webgrabplus/ class=md-nav__link> webgrabplus </a> </li> <li class=md-nav__item> <a href=../../images/docker-webtop/ class=md-nav__link> webtop </a> </li> <li class=md-nav__item> <a href=../../images/docker-wikijs/ class=md-nav__link> wikijs </a> </li> <li class=md-nav__item> <a href=../../images/docker-wireguard/ class=md-nav__link> wireguard </a> </li> <li class=md-nav__item> <a href=../../images/docker-wireshark/ class=md-nav__link> wireshark </a> </li> <li class=md-nav__item> <a href=../../images/docker-xbackbone/ class=md-nav__link> xbackbone </a> </li> <li class=md-nav__item> <a href=../../images/docker-yq/ class=md-nav__link> yq </a> </li> <li class=md-nav__item> <a href=../../images/docker-znc/ class=md-nav__link> znc </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle" data-md-toggle=__nav_5 type=checkbox id=__nav_5> <label class=md-nav__link for=__nav_5> Misc <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav aria-label=Misc data-md-level=1> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Misc </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../misc/finances/ class=md-nav__link> Finances </a> </li> </ul> </nav> </li> </ul> </nav> </div> </div> </div> <div class="md-sidebar md-sidebar--secondary" data-md-component=sidebar data-md-type=toc> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#what-do-i-need-to-know class=md-nav__link> What do I need to know? </a> </li> <li class=md-nav__item> <a href=#key-terminology class=md-nav__link> Key Terminology </a> </li> <li class=md-nav__item> <a href=#key-concepts class=md-nav__link> Key Concepts </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=docker-containers-101>Docker Containers: 101</h1> <p>A container bundles all the libraries required by an application to run, you no longer need to know which version of Java, Apache or whatever – the person who built the container for you took care of that. Containers dont usually ship with configuration files baked in though. This is because the contents of a container are stateless or immutable. In English, this means the state or filesystem of the container itself cannot be modified after it is created.</p> <h2 id=what-do-i-need-to-know>What do I need to know?</h2> <p>To get started, not much. You will need to know about some of the terminology or concepts when performing more advanced tasks or troubleshooting but getting started couldn't be much simpler.</p> <pre><code class=language-bash>docker run hello-world
</code></pre> <p>That's it, your first docker container. It pre-supposes you have <a href=https://github.com/IronicBadger/til/blob/master/docker/yum-apt-repos-docker.md>docker installed</a> but that's all it takes to run a container. You didn't need to know anything about installed what that app needed to run - this is the key benefit. <code>hello-world</code> is a simple example but imagine you have a complex application with a large number of dependencies and it is tied to a specific version of Python or Java. Then imagine you have a second app again tied to a specific, but different, version of Java or Python. Now you have to try and ensure these two (often conflicting) versions sit on the same host and play nice. In the world of containers these two versions can operate in complete isolation from one another. Bliss.</p> <h2 id=key-terminology>Key Terminology</h2> <p>There are a few terms you might find useful to understand when working with containers:</p> <ul> <li><strong>docker</strong> - the first, and most popular, container runtime - it sits as an abstraction layer between the kernels features such as cgroups or namespaces and running applications</li> <li><strong>container</strong> - a sandboxed process isolated in memory and running instance of an image</li> <li><strong>image</strong> - a pre-built filesystem in a format ready to be understood by a container runtime (usually docker)</li> <li><strong>volume</strong> - use volumes to persist data outside of the containers sandboxed filesystem</li> <li><strong>environment</strong> - a way of configuring the sandboxed environment your container runs in</li> </ul> <h2 id=key-concepts>Key Concepts</h2> <p>Containers are completely sandboxed environments by the Linux kernel. It may help you to think of them <em>somewhat</em> like a small VM however in practice this is largely false. The Linux kernel controls access to various system resources utilising control groups (cgroups). We rely on docker to translate these complex concepts into simple ones that users can understand and consume.</p> <p>By default a running container has absolutely no context of the world around it. Out the box you cannot connect from the outside world to the running webservers on ports 80 and 443 below. To allow entry to the sandbox from the outside world we must explicitly allow entry using the <code>-p</code> flag.</p> <pre><code class=language-bash>docker run -d --name=letsencrypt -p 80:80 -p 443:443 linuxserver/letsencrypt
</code></pre> <p>Take this concept and multiply it across all aspects of a running application. Ports, volumes (i.e. the files you want to be available inside the container from outside the container), environment variables and so on. For us as developers this allows us to isolate your system from troubleshooting as the box the container is running in (the container) is identical to the next.</p> <p>Containers are an amazing way to run applications in a secure, sandboxed way.</p> </article> </div> </div> </main> <footer class=md-footer> <nav class="md-footer__inner md-grid" aria-label=Footer> <a href=../container-execution/ class="md-footer__link md-footer__link--prev" aria-label="Previous: Container Execution" rel=prev> <div class="md-footer__button md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg> </div> <div class=md-footer__title> <div class=md-ellipsis> <span class=md-footer__direction> Previous </span> Container Execution </div> </div> </a> <a href=../running-our-containers/ class="md-footer__link md-footer__link--next" aria-label="Next: Running LinuxServer Containers" rel=next> <div class=md-footer__title> <div class=md-ellipsis> <span class=md-footer__direction> Next </span> Running LinuxServer Containers </div> </div> <div class="md-footer__button md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11H4Z"/></svg> </div> </a> </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2022 LinuxServer.io </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/linuxserver target=_blank rel=noopener title=github.com class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 448 512"><!-- Font Awesome Free 6.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM277.3 415.7c-8.4 1.5-11.5-3.7-11.5-8 0-5.4.2-33 .2-55.3 0-15.6-5.2-25.5-11.3-30.7 37-4.1 76-9.2 76-73.1 0-18.2-6.5-27.3-17.1-39 1.7-4.3 7.4-22-1.7-45-13.9-4.3-45.7 17.9-45.7 17.9-13.2-3.7-27.5-5.6-41.6-5.6-14.1 0-28.4 1.9-41.6 5.6 0 0-31.8-22.2-45.7-17.9-9.1 22.9-3.5 40.6-1.7 45-10.6 11.7-15.6 20.8-15.6 39 0 63.6 37.3 69 74.3 73.1-4.8 4.3-9.1 11.7-10.6 22.3-9.5 4.3-33.8 11.7-48.3-13.9-9.1-15.8-25.5-17.1-25.5-17.1-16.2-.2-1.1 10.2-1.1 10.2 10.8 5 18.4 24.2 18.4 24.2 9.7 29.7 56.1 19.7 56.1 19.7 0 13.9.2 36.5.2 40.6 0 4.3-3 9.5-11.5 8-66-22.1-112.2-84.9-112.2-158.3 0-91.8 70.2-161.5 162-161.5S388 165.6 388 257.4c.1 73.4-44.7 136.3-110.7 158.3zm-98.1-61.1c-1.9.4-3.7-.4-3.9-1.7-.2-1.5 1.1-2.8 3-3.2 1.9-.2 3.7.6 3.9 1.9.3 1.3-1 2.6-3 3zm-9.5-.9c0 1.3-1.5 2.4-3.5 2.4-2.2.2-3.7-.9-3.7-2.4 0-1.3 1.5-2.4 3.5-2.4 1.9-.2 3.7.9 3.7 2.4zm-13.7-1.1c-.4 1.3-2.4 1.9-4.1 1.3-1.9-.4-3.2-1.9-2.8-3.2.4-1.3 2.4-1.9 4.1-1.5 2 .6 3.3 2.1 2.8 3.4zm-12.3-5.4c-.9 1.1-2.8.9-4.3-.6-1.5-1.3-1.9-3.2-.9-4.1.9-1.1 2.8-.9 4.3.6 1.3 1.3 1.8 3.3.9 4.1zm-9.1-9.1c-.9.6-2.6 0-3.7-1.5s-1.1-3.2 0-3.9c1.1-.9 2.8-.2 3.7 1.3 1.1 1.5 1.1 3.3 0 4.1zm-6.5-9.7c-.9.9-2.4.4-3.5-.6-1.1-1.3-1.3-2.8-.4-3.5.9-.9 2.4-.4 3.5.6 1.1 1.3 1.3 2.8.4 3.5zm-6.7-7.4c-.4.9-1.7 1.1-2.8.4-1.3-.6-1.9-1.7-1.5-2.6.4-.6 1.5-.9 2.8-.4 1.3.7 1.9 1.8 1.5 2.6z"/></svg> </a> <a href=https://gitlab.com/linuxserver.io target=_blank rel=noopener title=gitlab.com class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 448 512"><!-- Font Awesome Free 6.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M48 32h352c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48zm334.1 192.9-44.6-116.4c-.9-2.3-2.6-4.3-4.6-5.6-1.6-1-3.4-1.6-5.2-1.8-1.8-.2-3.7.1-5.4.7-1.7.7-3.3 1.7-4.5 3.1-1.2 1.4-2.1 3-2.6 4.8L285 201.9H162.1l-29.2-92.2c-.5-1.8-1.5-3.4-2.7-4.8-2.1-1.3-2.8-2.4-4.5-3-2.6-.7-3.6-1.8-5.4-.8-1.8.2-3.6.8-5.2 1.8-2 1.3-3.6 3.3-4.5 5.6L65.94 224.9l-.47 1.2a82.94 82.94 0 0 0-2.25 52.5c4.96 17.3 15.4 32.5 29.75 43.3l.17.1.38.3 67.88 50.9 54.2 40.9c1.5 1 5.3 2.8 8.3 2.8 3 0 6-1.8 8.4-2.8l54.1-40.9 68.4-51.2.2-.1c14.4-10.9 24.8-26.1 29.8-43.3 4.9-17.3 3.3-35.7-2.3-52.5l-.4-1.2z"/></svg> </a> <a href=https://twitter.com/linuxserverio target=_blank rel=noopener title=twitter.com class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 448 512"><!-- Font Awesome Free 6.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-48.9 158.8c.2 2.8.2 5.7.2 8.5 0 86.7-66 186.6-186.6 186.6-37.2 0-71.7-10.8-100.7-29.4 5.3.6 10.4.8 15.8.8 30.7 0 58.9-10.4 81.4-28-28.8-.6-53-19.5-61.3-45.5 10.1 1.5 19.2 1.5 29.6-1.2-30-6.1-52.5-32.5-52.5-64.4v-.8c8.7 4.9 18.9 7.9 29.6 8.3a65.447 65.447 0 0 1-29.2-54.6c0-12.2 3.2-23.4 8.9-33.1 32.3 39.8 80.8 65.8 135.2 68.6-9.3-44.5 24-80.6 64-80.6 18.9 0 35.9 7.9 47.9 20.7 14.8-2.8 29-8.3 41.6-15.8-4.9 15.2-15.2 28-28.8 36.1 13.2-1.4 26-5.1 37.8-10.2-8.9 13.1-20.1 24.7-32.9 34z"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"base": "../..", "features": ["navigation.instant"], "search": "../../assets/javascripts/workers/search.16e2a7d4.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script> <script src=../../assets/javascripts/bundle.d6c3db9e.min.js></script> </body> </html>