1121 lines
56 KiB
HTML
1121 lines
56 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||
|
||
|
||
|
||
|
||
<!--<link rel="shortcut icon" href="https://www.openhab.org/favicon.png"></link>-->
|
||
<title>Docker - openHAB 2 - Empowering the Smart Home</title>
|
||
|
||
<!-- CSS -->
|
||
<link type="text/css" rel="stylesheet" href="/v2.1/css/materialize.css" media="screen,projection" />
|
||
<link type="text/css" rel="stylesheet" href="/v2.1/css/pygments-jekyll-style.css" />
|
||
<link type="text/css" rel="stylesheet" href="/v2.1/css/styles.css" />
|
||
<link type="text/css" rel="stylesheet" href="/v2.1/css/openhab.css" />
|
||
<link type="text/css" rel="stylesheet" href="/v2.1/css/collapsible.css" />
|
||
|
||
<!-- Font -->
|
||
<link type="text/css" rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons" />
|
||
<link type="text/css" rel="stylesheet" href="https://fonts.googleapis.com/css?family=Lato:300,400,700" />
|
||
<link rel="canonical" href="http://docs.openhab.org/installation/docker.html" />
|
||
<script type="text/javascript">var gaProperty = 'UA-47717934-3';var disableStr = 'ga-disable-' + gaProperty;if (document.cookie.indexOf(disableStr + '=true') > -1) {window[disableStr] = true;}</script>
|
||
<script>
|
||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
||
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
||
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
|
||
ga('create', 'UA-47717934-3', 'auto');
|
||
ga('set', 'anonymizeIp', true);
|
||
ga('send', 'pageview');
|
||
</script>
|
||
</head>
|
||
|
||
|
||
<body class="documentation">
|
||
<div id="header" class="navbar-fixed">
|
||
<nav role="navigation">
|
||
<div class="container">
|
||
<div class="nav-wrapper">
|
||
<a href="/v2.1/index.html"><img id="logo" src="/images/logo.png" /></a>
|
||
<a href="#" data-activates="nav-mobile" class="button-collapse"><i class="material-icons">menu</i></a>
|
||
<ul class="right hide-on-med-and-down">
|
||
<li><a href="/tutorials/index.html">Tutorials</a></li>
|
||
<li><a href="/v2.1/introduction.html">User Manual</a></li>
|
||
<li><a href="/developers/index.html">Developer Guide</a></li>
|
||
<li><a target="_blank" href="https://community.openhab.org">Community Forum</a></li>
|
||
<li><a target="_blank" href="https://github.com/openhab">GitHub</a></li>
|
||
<li class="search"><i class="material-icons">search</i></li>
|
||
<li class="search">
|
||
<form method="GET" id="searchform" class="search-form" action="/search">
|
||
<input id="query" name="q" type="text" class="search-form-input" placeholder="search" />
|
||
</form>
|
||
</li>
|
||
</ul>
|
||
<ul id="nav-mobile" class="side-nav">
|
||
<li><a href="/v2.1/index.html">Home</a></li>
|
||
<li><a href="/tutorials/index.html">Tutorials</a></li>
|
||
<li><a href="/v2.1/introduction.html">User Manual</a></li>
|
||
<li><a href="/developers/index.html">Developer Guide</a></li>
|
||
<li><a target="_blank" href="https://community.openhab.org">Community Forum</a></li>
|
||
<li><a target="_blank" href="https://github.com/openhab">GitHub</a></li>
|
||
<li class="search">
|
||
<form method="GET" id="searchformmob" class="search-form" action="/search">
|
||
<input id="querymob" name="q" type="text" class="search-form-input" placeholder="search" />
|
||
</form>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</nav>
|
||
</div>
|
||
|
||
|
||
<section id="documentation" class="text content-wrapper">
|
||
<div class="container">
|
||
<div class="side-nav-wrapper">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<ul class="nav">
|
||
<li><a href="/v2.1/introduction.html">Introduction</a></li>
|
||
<li><a href="/v2.1/concepts/index.html">Concepts</a>
|
||
<ul>
|
||
<li><a href="/v2.1/concepts/index.html">Overview</a></li>
|
||
<hr />
|
||
<li><a href="/v2.1/concepts/things.html">Things</a></li>
|
||
<li><a href="/v2.1/concepts/items.html">Items</a></li>
|
||
<li><a href="/v2.1/concepts/discovery.html">Inbox & Discovery</a></li>
|
||
<li><a href="/v2.1/concepts/audio.html">Audio & Voice</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="/v2.1/installation/index.html">Installation</a>
|
||
<ul>
|
||
<li><a href="/v2.1/installation/index.html">Overview</a></li>
|
||
<hr />
|
||
<li><a href="/v2.1/installation/linux.html">Linux</a></li>
|
||
<li><a href="/v2.1/installation/windows.html">Windows</a></li>
|
||
<li><a href="/v2.1/installation/macosx.html">Mac OS X</a></li>
|
||
<hr />
|
||
<li><a href="/v2.1/installation/openhabian.html">openHABian</a></li>
|
||
<li><a href="/v2.1/installation/docker.html">Docker</a></li>
|
||
<hr />
|
||
<li><a href="/v2.1/installation/rasppi.html">Raspberry Pi</a></li>
|
||
<li><a href="/v2.1/installation/pine.html">Pine A64</a></li>
|
||
<li><a href="/v2.1/installation/synology.html">Synology DiskStation</a></li>
|
||
<li><a href="/v2.1/installation/qnap.html">QNAP NAS</a></li>
|
||
<hr />
|
||
<li><a href="/v2.1/installation/designer.html">SmartHome Designer</a></li>
|
||
<li><a href="/v2.1/installation/security.html">Security & Remote Access</a></li>
|
||
<li><a href="http://www.myopenhab.org">myopenHAB</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="/v2.1/configuration/index.html">Configuration</a>
|
||
<ul>
|
||
<li><a href="/v2.1/configuration/index.html">Overview</a></li>
|
||
<hr />
|
||
<li><a href="/v2.1/configuration/things.html">Things</a></li>
|
||
<li><a href="/v2.1/configuration/items.html">Items</a></li>
|
||
<li><a href="/v2.1/configuration/sitemaps.html">Sitemaps</a></li>
|
||
<li><a href="/v2.1/configuration/transform.html">Transformations</a></li>
|
||
<li><a href="/v2.1/configuration/persistence.html">Persistence</a></li>
|
||
<li><a href="/v2.1/configuration/rules-dsl.html">Rules</a></li>
|
||
<li><a href="/v2.1/configuration/services.html">Services</a></li>
|
||
<hr />
|
||
<li><a href="/v2.1/configuration/packages.html">Initial Setup Packages</a></li>
|
||
<li><a href="/v2.1/configuration/paperui.html">Paper UI</a></li>
|
||
<li><a href="/v2.1/configuration/habmin.html">HABmin</a></li>
|
||
<li><a href="/v2.1/configuration/rules-ng.html">Rules (Experimental)</a></li>
|
||
<hr />
|
||
<li><a href="/v2.1/configuration/multimedia.html">Audio & Voice</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="/v2.1/addons/index.html">Add-ons</a>
|
||
<ul>
|
||
<li><a href="/v2.1/addons/index.html">Overview</a></li>
|
||
<hr />
|
||
<li><a href="/v2.1/addons/bindings.html">Bindings</a>
|
||
<ul>
|
||
<li><a href="/v2.1/addons/bindings.html">Overview</a></li>
|
||
<hr />
|
||
|
||
<li><a href="/v2.1/addons/bindings/airquality/readme.html">Air Quality</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/akm8681/readme.html">AKM868</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/alarmdecoder1/readme.html">Alarm Decoder</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/allplay/readme.html">AllPlay</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/amazondashbutton/readme.html">Amazon Dash Button</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/anel1/readme.html">Anel NET-PwrCtrl</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/asterisk1/readme.html">Asterisk</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/astro/readme.html">Astro</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/astro1/readme.html">Astro</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/atlona/readme.html">Atlona</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/autelis/readme.html">Autelis Pool Control</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/autelis1/readme.html">Autelis</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/avmfritz/readme.html">AVM FRITZ!</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/benqprojector1/readme.html">BenQ Projector</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/bigassfan/readme.html">BigAssFan</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/bluetooth1/readme.html">Bluetooth</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/boschindego/readme.html">Bosch Indego</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/bticino1/readme.html">Bticino</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/caldav-command1/readme.html">CalDAV Command</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/caldav-personal1/readme.html">CalDAV Personal</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/chromecast/readme.html">Chromecast</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/comfoair1/readme.html">ComfoAir</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/configadmin1/readme.html">ConfigAdmin</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/coolmasternet/readme.html">CoolMasterNet</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/cups1/readme.html">CUPS</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/daikin1/readme.html">Daikin</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/davis1/readme.html">Davis</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/ddwrt1/readme.html">DD-WRT</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/denon1/readme.html">Denon</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/digitalstrom/readme.html">digitalSTROM</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/digitalstrom1/readme.html">digitalSTROM</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/diyonxbee1/readme.html">DIYOnXBee</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/dlinksmarthome/readme.html">D-Link Smart Home</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/dmx1/readme.html">DMX</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/dscalarm/readme.html">DSC Alarm</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/dscalarm1/readme.html">DSC PowerSeries Alarm System</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/dsmr1/readme.html">DSMR</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/ebus1/readme.html">eBUS</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/ecobee1/readme.html">Ecobee</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/ecotouch1/readme.html">EcoTouch</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/ekey1/readme.html">ekey</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/energenie1/readme.html">Energenie</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/enocean1/readme.html">EnOcean</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/enphaseenergy1/readme.html">Enphase Energy</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/epsonprojector1/readme.html">Epson Projector</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/exec/readme.html">Exec</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/exec1/readme.html">Exec</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/expire1/readme.html">Expire</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/fatekplc1/readme.html">Fatek PLC</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/feed/readme.html">Feed</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/fht1/readme.html">FHT</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/folding/readme.html">Folding@home</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/freebox/readme.html">Freebox</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/freebox1/readme.html">Freebox</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/freeswitch1/readme.html">FreeSWITCH</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/fritzaha1/readme.html">Fritz AHA</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/fritzbox1/readme.html">Fritz!Box</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/fritzboxtr0641/readme.html">Fritzbox (using TR064 protocol)</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/frontiersiliconradio1/readme.html">Frontier Silicon Radio</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/fs201/readme.html">FS20</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/fsinternetradio/readme.html">FS Internet Radio</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/garadget1/readme.html">Garadget</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/gardena/readme.html">Gardena</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/gc100ir1/readme.html">Global Cache IR</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/globalcache/readme.html">GlobalCache</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/gpio1/readme.html">GPIO</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/harmonyhub/readme.html">Logitech Harmony Hub</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/harmonyhub1/readme.html">Harmony Hub</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/hdanywhere/readme.html">HDanywhere</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/hdanywhere1/readme.html">HDanywhere</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/hdpowerview/readme.html">Hunter Douglas PowerView</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/heatmiser1/readme.html">Heatmiser</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/hms1/readme.html">HMS</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/homematic/readme.html">Homematic</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/homematic1/readme.html">Homematic</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/horizon1/readme.html">Horizon mediabox</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/http1/readme.html">HTTP</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/hue/readme.html">Philips Hue</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/hue1/readme.html">Hue</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/iec6205621meter1/readme.html">IEC 62056-21 Meter</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/ihc1/readme.html">IHC / ELKO</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/insteonhub1/readme.html">Insteon Hub</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/insteonplm1/readme.html">Insteon PLM</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/intertechno1/readme.html">Intertechno</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/ipp/readme.html">IPP</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/ipx8001/readme.html">IPX800</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/irtrans1/readme.html">IRTrans</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/isy1/readme.html">Description</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/jointspace1/readme.html">jointSPACE</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/k80551/readme.html">Velleman k8055 USB IO Board</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/keba/readme.html">Keba</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/km2001/readme.html">KM200</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/knx1/readme.html">KNX</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/kodi/readme.html">Kodi</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/kostalinverter/readme.html">Kostal Inverter</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/koubachi1/readme.html">Koubachi</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/lcn1/readme.html">LCN</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/lgtv1/readme.html">LG TV</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/lgtvserial/readme.html">LG TV control using serial protocol</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/lifx/readme.html">LIFX</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/lightwaverf1/readme.html">LightwaveRF</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/lutron/readme.html">Lutron</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/mailcontrol1/readme.html">MailControl</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/max/readme.html">MAX!</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/maxcube1/readme.html">MAX!Cube</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/maxcul1/readme.html">MAX!CUL</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/mcp230171/readme.html">MCP23017</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/mcp34241/readme.html">MCP3424</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/meteostick/readme.html">Meteostick</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/miele/readme.html">Miele@home</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/mihome/readme.html">Xiaomi Mi Smart Home</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/milight/readme.html">Milight/Easybulb/Limitless</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/milight1/readme.html">Milight</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/minecraft/readme.html">Minecraft</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/mios1/readme.html">MiOS Bridge</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/mochadx101/readme.html">Mochad X10</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/modbus1/readme.html">Modbus</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/mpd1/readme.html">MPD</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/mqtt1/readme.html">MQTT</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/mqttitude1/readme.html">OwnTracks (formerly MQTTitude)</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/myq1/readme.html">Chamberlain MyQ</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/mystromecopower1/readme.html">Mystrom Eco Power</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/neohub1/readme.html">NeoHub</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/nest1/readme.html">Nest</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/netatmo/readme.html">Netatmo</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/netatmo1/readme.html">Netatmo</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/network/readme.html">Network</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/networkhealth1/readme.html">Network Health</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/networkupstools1/readme.html">Network UPS Tools</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/nibeheatpump1/readme.html">Nibe Heatpump</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/nikobus1/readme.html">Nikobus</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/nikohomecontrol/readme.html">Niko Home Control</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/novelanheatpump1/readme.html">Novelan/Luxtronic Heat Pump</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/ntp/readme.html">NTP</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/ntp1/readme.html">Network Time Protocol (NTP)</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/oceanic/readme.html">Oceanic</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/omnilink1/readme.html">HAI/Leviton Omni and Lumina</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/onebusaway/readme.html">OneBusAway</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/onewire1/readme.html">OneWire</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/onkyo/readme.html">Onkyo</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/onkyo1/readme.html">Onkyo AV Receiver</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/openenergymonitor1/readme.html">Open Energy Monitor</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/openpaths1/readme.html">OpenPaths</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/opensprinkler/readme.html">OpenSprinkler</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/opensprinkler1/readme.html">OpenSprinkler</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/orvibo/readme.html">Orvibo</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/owserver1/readme.html">OWServer</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/panasonictv1/readme.html">Panasonic TV</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/panstamp1/readme.html">panStamp</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/piface1/readme.html">Piface</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/pilight1/readme.html">pilight</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/pioneeravr/readme.html">PioneerAVR Configuration</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/pioneeravr1/readme.html">Pioneer AV Receiver (1.x)</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/plcbus1/readme.html">PLCBus</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/plclogo1/readme.html">PLCLogo</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/plex1/readme.html">Plex</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/plugwise1/readme.html">Plugwise</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/powerdoglocalapi1/readme.html">PowerDog Local API</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/powermax1/readme.html">Visonic Powermax</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/primare1/readme.html">Primare</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/pulseaudio/readme.html">Pulseaudio</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/pulseaudio1/readme.html">Pulseaudio</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/rfxcom/readme.html">RFXCOM</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/rfxcom1/readme.html">RFXCOM</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/rme/readme.html">RME</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/rpircswitch1/readme.html">Raspberry Pi RC Switch</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/russound/readme.html">Russound</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/rwesmarthome1/readme.html">RWE SmartHome</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/sagercaster1/readme.html">Sager Weathercaster</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/sallegra1/readme.html">Sallegra</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/samsungac1/readme.html">Samsung Air Conditioner</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/samsungtv/readme.html">Samsung TV</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/samsungtv1/readme.html">Samsung TV</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/sapp1/readme.html">Picnet Sapp</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/satel1/readme.html">Satel Integra Alarm System</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/sensebox/readme.html">senseBox</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/serial1/readme.html">Serial</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/silvercrestwifisocket/readme.html">Silvercrest Wifi Plug</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/sleepiq/readme.html">SleepIQ</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/smaenergymeter/readme.html">SMA Energy Meter</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/smarthomatic1/readme.html">Smarthomatic</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/snmp1/readme.html">SNMP</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/sonance1/readme.html">Sonance</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/sonos/readme.html">Sonos</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/sonos1/readme.html">Sonos</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/souliss1/readme.html">Souliss</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/squeezebox/readme.html">Logitech Squeezebox</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/squeezebox1/readme.html">Squeezebox</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/stiebelheatpump1/readme.html">Stiebel Eltron LWZ</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/swegonventilation1/readme.html">Swegon Ventilation</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/synopanalyzer/readme.html">Synop Analyzer</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/systeminfo/readme.html">Systeminfo</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/systeminfo1/readme.html">System Information</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/tacmi1/readme.html">TACmi</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/tankerkoenig/readme.html">Tankerkönig</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/tcp1/readme.html">TCP & UDP</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/tellstick/readme.html">Tellstick</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/tellstick1/readme.html">Tellstick</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/tesla/readme.html">Tesla</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/tinkerforge1/readme.html">TinkerForge</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/tivo1/readme.html">TiVo</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/toon/readme.html">Toon</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/tradfri/readme.html">Trådfri</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/ucprelayboard1/readme.html">UCProjects.eu Relay Board</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/upb1/readme.html">UPB</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/urtsi/readme.html">Somfy URTSI II</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/urtsi1/readme.html">Somfy URTSI II</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/vdr1/readme.html">Video Disk Recorder (VDR)</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/vitotronic/readme.html">Vitotronic</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/wago1/readme.html">WAGO</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/weather1/readme.html">Weather</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/wemo/readme.html">Belkin Wemo</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/wemo1/readme.html">Wemo</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/wifiled/readme.html">WiFi LED</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/windcentrale/readme.html">Windcentrale</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/withings1/readme.html">Withings</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/wol1/readme.html">Wake-on-LAN</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/wr32231/readme.html">WR3223 ventilation controller</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/xbmc1/readme.html">XBMC binding (for KODI) (1.x)</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/xpl1/readme.html">xPL</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/yahooweather/readme.html">YahooWeather</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/yamahareceiver/readme.html">Yamahareceiver</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/yamahareceiver1/readme.html">Yamaha Receiver (1.x)</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/zibase1/readme.html">Zibase</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/zigbee/readme.html">ZigBee</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/zoneminder/readme.html">Zoneminder</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/zwave/readme.html">ZWave</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/zwave1/readme.html">Z-Wave</a></li>
|
||
|
||
<li><a href="/v2.1/addons/bindings/zway/readme.html">Z-Way</a></li>
|
||
|
||
</ul>
|
||
</li>
|
||
<li><a href="/v2.1/addons/uis.html">User Interfaces</a>
|
||
<ul>
|
||
<li><a href="/v2.1/addons/uis.html">Overview</a></li>
|
||
<hr />
|
||
|
||
<li><a href="/v2.1/addons/uis/basic/readme.html">Basic UI</a></li>
|
||
|
||
<li><a href="/v2.1/addons/uis/classic/readme.html">Classic UI</a></li>
|
||
|
||
<li><a href="/v2.1/addons/uis/habmin/readme.html">HABmin</a></li>
|
||
|
||
<li><a href="/v2.1/addons/uis/habpanel/readme.html">HABPanel</a></li>
|
||
|
||
<li><a href="/v2.1/addons/uis/paper/readme.html">Paper UI</a></li>
|
||
|
||
<hr />
|
||
<li><a href="/v2.1/addons/uis/apps/android.html">Android openHAB App</a></li>
|
||
<li><a href="/v2.1/addons/uis/apps/ios.html">iOS openHAB App</a></li>
|
||
<li><a href="/v2.1/addons/uis/apps/windows.html">Windows 10 openHAB App</a></li>
|
||
<hr />
|
||
<li><a href="/v2.1/addons/iconsets/classic/readme.html">Iconset (classic)</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="/v2.1/addons/persistence.html">Persistence</a>
|
||
<ul>
|
||
<li><a href="/v2.1/addons/persistence.html">Overview</a></li>
|
||
<hr />
|
||
|
||
<li><a href="/v2.1/addons/persistence/caldav/readme.html">CalDAV</a></li>
|
||
|
||
<li><a href="/v2.1/addons/persistence/cosm/readme.html">Xively (formerly Cosm)</a></li>
|
||
|
||
<li><a href="/v2.1/addons/persistence/db4o/readme.html">db4o</a></li>
|
||
|
||
<li><a href="/v2.1/addons/persistence/dynamodb/readme.html">Amazon DynamoDB</a></li>
|
||
|
||
<li><a href="/v2.1/addons/persistence/exec/readme.html">Exec</a></li>
|
||
|
||
<li><a href="/v2.1/addons/persistence/influxdb/readme.html">InfluxDB (0.9 and newer)</a></li>
|
||
|
||
<li><a href="/v2.1/addons/persistence/influxdb08/readme.html">InfluxDB (up to 0.8.x)</a></li>
|
||
|
||
<li><a href="/v2.1/addons/persistence/jdbc/readme.html">JDBC</a></li>
|
||
|
||
<li><a href="/v2.1/addons/persistence/jpa/readme.html">Java Persistence API (JPA)</a></li>
|
||
|
||
<li><a href="/v2.1/addons/persistence/mapdb/readme.html">mapdb</a></li>
|
||
|
||
<li><a href="/v2.1/addons/persistence/mongodb/readme.html">MongoDB</a></li>
|
||
|
||
<li><a href="/v2.1/addons/persistence/mqtt/readme.html">MQTT</a></li>
|
||
|
||
<li><a href="/v2.1/addons/persistence/mysql/readme.html">MySQL</a></li>
|
||
|
||
<li><a href="/v2.1/addons/persistence/rrd4j/readme.html">rrd4j</a></li>
|
||
|
||
<li><a href="/v2.1/addons/persistence/sense/readme.html">Sen.Se</a></li>
|
||
|
||
<li><a href="/v2.1/addons/persistence/sitewhere/readme.html">SiteWhere</a></li>
|
||
|
||
</ul>
|
||
</li>
|
||
<li><a href="/v2.1/addons/actions.html">Actions</a>
|
||
<ul>
|
||
<li><a href="/v2.1/addons/actions.html">Overview</a></li>
|
||
<hr />
|
||
|
||
<li><a href="/v2.1/addons/actions/astro/readme.html">Astro</a></li>
|
||
|
||
<li><a href="/v2.1/addons/actions/ciscospark/readme.html">Cisco Spark</a></li>
|
||
|
||
<li><a href="/v2.1/addons/actions/dscalarm/readme.html">DSC Alarm</a></li>
|
||
|
||
<li><a href="/v2.1/addons/actions/ecobee/readme.html">Ecobee</a></li>
|
||
|
||
<li><a href="/v2.1/addons/actions/harmonyhub/readme.html">Logitech Harmony Hub</a></li>
|
||
|
||
<li><a href="/v2.1/addons/actions/homematic/readme.html">Homematic</a></li>
|
||
|
||
<li><a href="/v2.1/addons/actions/mail/readme.html">Mail</a></li>
|
||
|
||
<li><a href="/v2.1/addons/actions/mios/readme.html">MiOS</a></li>
|
||
|
||
<li><a href="/v2.1/addons/actions/mqtt/readme.html">MQTT</a></li>
|
||
|
||
<li><a href="/v2.1/addons/actions/nma/readme.html">NotifyMyAndroid</a></li>
|
||
|
||
<li><a href="/v2.1/addons/actions/openwebif/readme.html">OpenWebIf</a></li>
|
||
|
||
<li><a href="/v2.1/addons/actions/pebble/readme.html">Pebble</a></li>
|
||
|
||
<li><a href="/v2.1/addons/actions/prowl/readme.html">Prowl</a></li>
|
||
|
||
<li><a href="/v2.1/addons/actions/pushover/readme.html">Pushover</a></li>
|
||
|
||
<li><a href="/v2.1/addons/actions/pushsafer/readme.html">Pushsafer</a></li>
|
||
|
||
<li><a href="/v2.1/addons/actions/satel/readme.html">Satel</a></li>
|
||
|
||
<li><a href="/v2.1/addons/actions/squeezebox/readme.html">Squeezebox</a></li>
|
||
|
||
<li><a href="/v2.1/addons/actions/telegram/readme.html">Telegram</a></li>
|
||
|
||
<li><a href="/v2.1/addons/actions/tinkerforge/readme.html">TinkerForge</a></li>
|
||
|
||
<li><a href="/v2.1/addons/actions/twitter/readme.html">Twitter</a></li>
|
||
|
||
<li><a href="/v2.1/addons/actions/weather/readme.html">Weather</a></li>
|
||
|
||
<li><a href="/v2.1/addons/actions/xbmc/readme.html">XBMC</a></li>
|
||
|
||
<li><a href="/v2.1/addons/actions/xmpp/readme.html">XMPP</a></li>
|
||
|
||
<li><a href="/v2.1/addons/actions/xpl/readme.html">xPL</a></li>
|
||
|
||
</ul>
|
||
</li>
|
||
<li><a href="/v2.1/addons/transformations.html">Transformations</a>
|
||
<ul>
|
||
<li><a href="/v2.1/addons/transformations.html">Overview</a></li>
|
||
<hr />
|
||
|
||
<li><a href="/v2.1/addons/transformations/exec/readme.html">Exec</a></li>
|
||
|
||
<li><a href="/v2.1/addons/transformations/javascript/readme.html">JavaScript</a></li>
|
||
|
||
<li><a href="/v2.1/addons/transformations/jsonpath/readme.html">JsonPath</a></li>
|
||
|
||
<li><a href="/v2.1/addons/transformations/map/readme.html">Map</a></li>
|
||
|
||
<li><a href="/v2.1/addons/transformations/regex/readme.html">RegEx</a></li>
|
||
|
||
<li><a href="/v2.1/addons/transformations/scale/readme.html">Scale</a></li>
|
||
|
||
<li><a href="/v2.1/addons/transformations/xpath/readme.html">XPath</a></li>
|
||
|
||
<li><a href="/v2.1/addons/transformations/xslt/readme.html">XSLT</a></li>
|
||
|
||
</ul>
|
||
</li>
|
||
<li><a href="/v2.1/addons/voice.html">Voice Services</a>
|
||
<ul>
|
||
<li><a href="/v2.1/addons/voice.html">Overview</a></li>
|
||
<hr />
|
||
|
||
<li><a href="/v2.1/addons/voice/mactts/readme.html">MacOS Text-to-Speech</a></li>
|
||
|
||
<li><a href="/v2.1/addons/voice/marytts/readme.html">Mary Text-to-Speech</a></li>
|
||
|
||
<li><a href="/v2.1/addons/voice/voicerss/readme.html">VoiceRSS Text-to-Speech</a></li>
|
||
|
||
</ul>
|
||
</li>
|
||
<hr />
|
||
<li><a href="/v2.1/addons/io.html">3rd Party Integration</a>
|
||
<ul>
|
||
<li><a href="/v2.1/addons/io.html">Overview</a></li>
|
||
<hr />
|
||
|
||
<li><a href="/v2.1/addons/io/dropbox/readme.html">Dropbox Synchronization</a></li>
|
||
|
||
<li><a href="/v2.1/addons/io/gcal/readme.html">Google Calendar Scheduler</a></li>
|
||
|
||
<li><a href="/v2.1/addons/io/homekit/readme.html">HomeKit Add-on</a></li>
|
||
|
||
<li><a href="/v2.1/addons/io/hueemulation/readme.html">openHAB Hue Emulation</a></li>
|
||
|
||
<li><a href="/v2.1/addons/io/imperihome/readme.html">ImperiHome integration service</a></li>
|
||
|
||
<li><a href="/v2.1/addons/io/openhabcloud/readme.html">openHAB Cloud Connector</a></li>
|
||
|
||
<hr />
|
||
<li><a href="/v2.1/configuration/restdocs.html">REST API</a></li>
|
||
<li><a href="http://www.myopenhab.org/" target="_blank">IFTTT</a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="/v2.1/administration/index.html">Advanced Functionality</a>
|
||
<ul>
|
||
<li><a href="/v2.1/administration/index.html">Overview</a></li>
|
||
<hr />
|
||
<li><a href="/v2.1/administration/console.html">Console</a></li>
|
||
<li><a href="/v2.1/administration/runtime.html">Runtime Commands</a></li>
|
||
<li><a href="/v2.1/administration/bundles.html">Bundle Management</a></li>
|
||
<li><a href="/v2.1/administration/logging.html">Logging</a></li>
|
||
<hr />
|
||
<li><a href="/v2.1/administration/jsondb.html">JsonDB Storage</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="/v2.1/appendix/help.html">Community Guidance</a>
|
||
<ul>
|
||
<li><a href="/v2.1/appendix/help.html">Finding Help & FAQs</a></li>
|
||
<li><a href="/v2.1/appendix/contributing.html">Contributing</a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
<div id="versioning" class="row valign-wrapper">
|
||
<div class="col s12 right-align">
|
||
<ul id="dropdown-versioning" class="dropdown-content">
|
||
<li><a href="/v2.1/../installation/docker.html">latest version</a></li>
|
||
<li><a href="/v2.1/../v2.2/installation/docker.html">v2.2</a></li>
|
||
<li><a href="/v2.1/installation/docker.html">v2.1<i class="tiny material-icons right">lens</i></a></li>
|
||
</ul>
|
||
<a class="btn dropdown-button grey lighten-1" href="#!" data-activates="dropdown-versioning" title="Select which version of this openHAB documentation article you want to read.">
|
||
Switch Article Version<i class="material-icons right">arrow_drop_down</i>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="content">
|
||
|
||
<h1 id="docker-installation">Docker Installation</h1>
|
||
|
||
<ul id="markdown-toc">
|
||
<li><a href="#obtaining-the-official-image-from-dockerhub" id="markdown-toc-obtaining-the-official-image-from-dockerhub">Obtaining the Official image from DockerHub</a></li>
|
||
<li><a href="#create-the-openhab-user" id="markdown-toc-create-the-openhab-user">Create the openhab user</a></li>
|
||
<li><a href="#create-the-openhab-conf-userdata-and-addon-directories" id="markdown-toc-create-the-openhab-conf-userdata-and-addon-directories">Create the openHAB conf, userdata, and addon directories</a></li>
|
||
<li><a href="#running-the-container-as-a-service-managed-by-docker" id="markdown-toc-running-the-container-as-a-service-managed-by-docker">Running the Container as a Service Managed by Docker</a></li>
|
||
<li><a href="#running-the-container-as-a-service-controlled-by-systemd" id="markdown-toc-running-the-container-as-a-service-controlled-by-systemd">Running the Container as a Service Controlled by Systemd</a></li>
|
||
</ul>
|
||
|
||
<h1 id="why-docker">Why Docker?</h1>
|
||
|
||
<p>Docker is the most popular among a collection of tools that provide containerization.
|
||
Containerization allows one to run a server in its own isolated environment without the overhead of running a full virtual machine.</p>
|
||
|
||
<p>There are several reasons one would want to run openHAB in a Docker container.
|
||
These include:</p>
|
||
|
||
<ul>
|
||
<li>easily test out different versions</li>
|
||
<li>run multiple instances side by side</li>
|
||
<li>easily map the OH ports to other ports without modifying configs</li>
|
||
<li>isolate OH from the rest of your server environment (e.g. configure the container’s networking so the only way it can be accessed is through a reverse proxy)</li>
|
||
<li>orchestration and automated deployment of OH and related servers</li>
|
||
</ul>
|
||
|
||
<p>However, this flexibility comes at a cost.
|
||
For example, because openHAB is running in its own container with only enough installed to run openHAB, the Exec binding is very likely to be useless to you because the container will not have access to the programs and files you need.</p>
|
||
|
||
<h1 id="about-the-openhab-installed-in-the-image">About the openHAB installed in the Image</h1>
|
||
|
||
<p>Inside the Docker Image, openHAB is installed to <code class="highlighter-rouge">/openhab</code>.
|
||
The install is a manual installation so all of the files are located here.
|
||
This is also set as the home directory of the <code class="highlighter-rouge">openhab</code> user.</p>
|
||
|
||
<p>The Image has a very minimal installation of Linux with no services running and just enough installed to allow openHAB to run.</p>
|
||
|
||
<p>At the time of this writing, the official image uses the latest snapshot version of openHAB 2.</p>
|
||
|
||
<h1 id="installation-through-docker">Installation through Docker</h1>
|
||
|
||
<h2 id="obtaining-the-official-image-from-dockerhub">Obtaining the Official image from DockerHub</h2>
|
||
|
||
<p><a href="https://hub.docker.com/r/openhab/openhab/">Docker Hub</a> has the basic information necessary to acquire and run the Docker image.
|
||
Please review those instructions before continuing to select the correct image for your machine and download the image.</p>
|
||
|
||
<h2 id="create-the-openhab-user">Create the openhab user</h2>
|
||
|
||
<p>Just because one is running in an isolated container does not mean running as root is recommended.
|
||
So first create an <code class="highlighter-rouge">openhab</code> user configured to be a system user with no home and no shell.
|
||
This can be done on Ubuntu and Raspbian with the command:</p>
|
||
|
||
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">sudo </span>useradd <span class="nt">-r</span> <span class="nt">-s</span> /sbin/nologin openhab
|
||
</code></pre></div></div>
|
||
|
||
<p>Add your regular user to the <code class="highlighter-rouge">openhab</code> group.</p>
|
||
|
||
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>usermod <span class="nt">-a</span> <span class="nt">-G</span> openhab <user>
|
||
</code></pre></div></div>
|
||
|
||
<h2 id="create-the-openhab-conf-userdata-and-addon-directories">Create the openHAB conf, userdata, and addon directories</h2>
|
||
|
||
<p>These directories will be mounted into the running Docker container and are where the configurations and persistence data will be stored.
|
||
Note that the software running inside a Docker container cannot follow the symbolic links located in a mounted volume.
|
||
Make sure the <code class="highlighter-rouge">openhab</code> user owns these directories.</p>
|
||
|
||
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>mkdir /opt/openhab
|
||
mkdir /opt/openhab/conf
|
||
mkdir /opt/openhab/userdata
|
||
mkdir /opt/openhab/addons
|
||
chown <span class="nt">-R</span> openhab:openhab /opt/openhab
|
||
</code></pre></div></div>
|
||
|
||
<h2 id="running-the-container-as-a-service-managed-by-docker">Running the Container as a Service Managed by Docker</h2>
|
||
|
||
<p>Services can be run an maintained on a Linux machine one of two ways, using Docker or using the system’s built in service management (e.g. systemd).
|
||
If using docker to manage the service, run the following command:</p>
|
||
|
||
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>docker run <span class="se">\</span>
|
||
<span class="nt">--name</span> openhab <span class="se">\</span>
|
||
<span class="nt">--net</span><span class="o">=</span>host <span class="se">\</span>
|
||
<span class="nt">-v</span> /etc/localtime:/etc/localtime:ro <span class="se">\</span>
|
||
<span class="nt">-v</span> /etc/timezone:/etc/timezone:ro <span class="se">\</span>
|
||
<span class="nt">-v</span> /opt/openhab/conf:/openhab/conf <span class="se">\</span>
|
||
<span class="nt">-v</span> /opt/openhab/userdata:/openhab/userdata <span class="se">\</span>
|
||
<span class="nt">-v</span> /opt/openhab/addons:/openhab/addons<span class="se">\</span>
|
||
<span class="nt">-d</span> <span class="se">\</span>
|
||
<span class="nt">--user</span><span class="o">=</span><uid> <span class="se">\</span>
|
||
<span class="nt">--restart</span><span class="o">=</span>always <span class="se">\</span>
|
||
openhab/openhab:<version>-<architecture>
|
||
</code></pre></div></div>
|
||
|
||
<p>Where <code class="highlighter-rouge"><uid></code> is the user ID number for the <code class="highlighter-rouge">openhab</code> user which you can obtain using the command <code class="highlighter-rouge">id openhab</code>, <code class="highlighter-rouge"><version></code> is the version of openHAB and <code class="highlighter-rouge"><arch></code> is the architecture of your system.
|
||
It is important that ID number is passed in as the ID for the <code class="highlighter-rouge">openhab</code> user inside the container will not match the id of the user on your host system and file permissions may be a bit odd (e.g. why does www-data own my openHAB config files?)</p>
|
||
|
||
<p>See below for an explanation of the fields passed to docker and potential additional fields.</p>
|
||
|
||
<p>Once it successfully runs (it should be listed with a CREATED time that does not include “restarting” when running <code class="highlighter-rouge">docker ps</code>):</p>
|
||
|
||
<ul>
|
||
<li>To stop the service run <code class="highlighter-rouge">docker stop openhab</code>.</li>
|
||
<li>To restart the service run <code class="highlighter-rouge">docker restart openhab</code></li>
|
||
<li>To start the service run <code class="highlighter-rouge">docker start openhab</code></li>
|
||
</ul>
|
||
|
||
<p>To change the runtime parameters stop the container then execute the long command above with the new parameters.</p>
|
||
|
||
<h2 id="running-the-container-as-a-service-controlled-by-systemd">Running the Container as a Service Controlled by Systemd</h2>
|
||
|
||
<p>If running on a Systemd based Linux distro (Ubuntu 16.1 to be specific).
|
||
The following openhab2.service file will start a new openHAB 2 container every time it starts the service and destroy that container when the service stops.
|
||
What that means is any data that you want to preserve between restarts of openHAB 2 (e.g. configuration, databases, etc.) must be mounted from your host file system into the container.</p>
|
||
|
||
<p>Creating a new container on every run greatly simplifies the upgrade and update process.
|
||
It also ensures that you start with a fresh install every time you run which can avoid some problems.</p>
|
||
|
||
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="o">[</span>Unit]
|
||
<span class="nv">Description</span><span class="o">=</span>openHAB 2
|
||
<span class="nv">Requires</span><span class="o">=</span>docker.service
|
||
<span class="nv">After</span><span class="o">=</span>docker.service
|
||
|
||
<span class="o">[</span>Service]
|
||
<span class="nv">Restart</span><span class="o">=</span>always
|
||
<span class="nv">ExecStart</span><span class="o">=</span>/usr/bin/docker run <span class="nt">--name</span><span class="o">=</span>%n <span class="nt">--net</span><span class="o">=</span>host <span class="se">\</span>
|
||
<span class="nt">-v</span> /etc/localtime:/etc/localtime:ro <span class="se">\</span>
|
||
<span class="nt">-v</span> /etc/timezone:/etc/timezone:ro <span class="se">\</span>
|
||
<span class="nt">-v</span> /opt/openhab/conf:/openhab/conf <span class="se">\</span>
|
||
<span class="nt">-v</span> /opt/openhab/userdata:/openhab/userdata <span class="se">\</span>
|
||
<span class="nt">-v</span> /opt/openhab/addons:/openhab/addons <span class="se">\</span>
|
||
<span class="nt">-v</span> /opt/openhab/.java:/openhab/.java <span class="se">\</span>
|
||
<span class="nt">--device</span><span class="o">=</span>/dev/ttyUSB0 <span class="se">\</span>
|
||
<span class="nt">--user</span><span class="o">=</span><uid> <span class="se">\</span>
|
||
openhab/openhab:<version>-<architecture>
|
||
<span class="nv">ExecStop</span><span class="o">=</span>/usr/bin/docker stop <span class="nt">-t</span> 2 %n <span class="p">;</span> /usr/bin/docker rm <span class="nt">-f</span> %n
|
||
|
||
<span class="o">[</span>Install]
|
||
<span class="nv">WantedBy</span><span class="o">=</span>multi-user.target
|
||
</code></pre></div></div>
|
||
|
||
<p>Where <code class="highlighter-rouge"><uid></code> is the user ID number for the <code class="highlighter-rouge">openhab</code> user which you can obtain using the command <code class="highlighter-rouge">id openhab</code>, <code class="highlighter-rouge"><version></code> is the version of openHAB and <code class="highlighter-rouge"><arch></code> is the architecture of your system.
|
||
It is important that ID number is passed in as the ID for the <code class="highlighter-rouge">openhab</code> user inside the container will not match the id of the user on your host system and file permissions may be a bit odd (e.g. why does www-data own my openHAB config files?)</p>
|
||
|
||
<p>Place this openhab2.service file into <code class="highlighter-rouge">/etc/systemd/system</code>.</p>
|
||
|
||
<p>Then run <code class="highlighter-rouge">sudo systemctl enable openhab2.service</code>.</p>
|
||
|
||
<p>Finally run <code class="highlighter-rouge">sudo systemctl start openhab2.service</code> to start openHAB running.</p>
|
||
|
||
<h1 id="explanation-of-arguments-passed-to-docker">Explanation of Arguments Passed to Docker</h1>
|
||
|
||
<ul>
|
||
<li><code class="highlighter-rouge">/usr/bin/docker run</code> : create a new container from the passed in Image (last argument)</li>
|
||
<li><code class="highlighter-rouge">--name=openhab</code> : give the container a human remember able name</li>
|
||
<li><code class="highlighter-rouge">--net=host</code> : by default Docker will place a container into its own network stack. However, openHAB 2 requires UPnP discovery so this parameter makes the Docker container use the host’s network stack.</li>
|
||
<li><code class="highlighter-rouge">-v /etc/localtime:/etc/localtime:ro</code> : ties the time of the container to the host’s time, read only so the container cannot change the host’s time</li>
|
||
<li><code class="highlighter-rouge">-v /etc/timezone:/etc/timezone:ro</code> : ties the timezone of the container to the host’s time zone, read only so the container cannot change the host’s time zone</li>
|
||
<li><code class="highlighter-rouge">-v /opt/openhab/conf:/openhab/conf</code> : location of the conf folder for openHAB configurations (NOTE: you must create these folders on the host before running the container)</li>
|
||
<li><code class="highlighter-rouge">-v /opt/openhab/userdata:/openhab/userdata</code> : location for logs, cache, persistence databases, etc.</li>
|
||
<li><code class="highlighter-rouge">-v /opt/openhab/addons:/openhab/addons</code> : only needed if installing addons unavailable via PaperUI or the Karaf Console</li>
|
||
<li><code class="highlighter-rouge">-v /opt/openhab/.java:/openhab/.java</code> : needed by the Nest binding (and others?), location of the security token</li>
|
||
<li><code class="highlighter-rouge">--user=<uid></code> : sets the user that runs the processes inside the container to match the uid passed, makes sure the <code class="highlighter-rouge">openhab</code> user can read and write to all needed files</li>
|
||
<li><code class="highlighter-rouge">--device=/dev/ttyUSB0</code> : location of my zwave controller, change and/or add more –device tags to pass all your devices needed by openHAB to the container</li>
|
||
<li><code class="highlighter-rouge">--restart=always</code> : if the container crashes or the syetem reboots the container is restarted</li>
|
||
<li><code class="highlighter-rouge">openhab/openhab:<version>-<architecture></code> : name of the Docker Image</li>
|
||
<li><code class="highlighter-rouge">start_debug.sh</code> : You can start the container with the command <code class="highlighter-rouge">docker run -it openhab/openhab:<version>-<architecture> ./start_debug.sh</code> to get into the debug shell. You might need to mount additional volumes and parameters as described above.</li>
|
||
</ul>
|
||
|
||
<h1 id="environment-variables">Environment Variables</h1>
|
||
|
||
<ul>
|
||
<li><code class="highlighter-rouge">EXTRA_JAVA_OPTS</code>=””</li>
|
||
<li><code class="highlighter-rouge">LC_ALL</code>=en_US.UTF-8</li>
|
||
<li><code class="highlighter-rouge">LANG</code>=en_US.UTF-8</li>
|
||
<li><code class="highlighter-rouge">LANGUAGE</code>=en_US.UTF-8</li>
|
||
<li><code class="highlighter-rouge">OPENHAB_HTTP_PORT</code>=8080</li>
|
||
<li><code class="highlighter-rouge">OPENHAB_HTTPS_PORT</code>=8443</li>
|
||
<li><code class="highlighter-rouge">USER_ID</code>=9001</li>
|
||
</ul>
|
||
|
||
<p>By default the openHAB user in the container is running with:</p>
|
||
|
||
<ul>
|
||
<li><code class="highlighter-rouge">uid=9001(openhab) gid=9001(openhab) groups=9001(openhab)</code></li>
|
||
</ul>
|
||
|
||
<h1 id="updating-the-image">Updating the Image</h1>
|
||
|
||
<p>Use the following steps to update the docker image and all installed add-ons.</p>
|
||
|
||
<p>Stop the container:</p>
|
||
|
||
<p><code class="highlighter-rouge">docker stop openhab</code> or <code class="highlighter-rouge">sudo systemct stop openhab</code></p>
|
||
|
||
<p>Delete the container:</p>
|
||
|
||
<p><code class="highlighter-rouge">docker rm openhab</code></p>
|
||
|
||
<p>Delete the contents of <code class="highlighter-rouge">/opt/openhab/userdata/cache</code> and <code class="highlighter-rouge">/opt/openhab/userdata/tmp</code></p>
|
||
|
||
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>rm <span class="nt">-rf</span> /opt/openhab/userdata/cache
|
||
rm <span class="nt">-rf</span> /opt/openhab/userdata/tmp
|
||
</code></pre></div></div>
|
||
|
||
<p>Pull down the latest image:</p>
|
||
|
||
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>docker pull openhab/openhab:<version>-<architecture>
|
||
</code></pre></div></div>
|
||
|
||
<p>where <code class="highlighter-rouge"><version></code> is the version of openHAB and <code class="highlighter-rouge"><arch></code> is your architecture.</p>
|
||
|
||
<p>Restart the container using the full command above.</p>
|
||
|
||
<p>With this upgrade approach it is best if one has configured OH using the cfg files (including addons.cfg) rather than using PaperUI or Habmin.</p>
|
||
|
||
<p>There is an alternative to deleting the cache and tmp directories by using the Karaf console.</p>
|
||
|
||
<p>Log into the Karaf console</p>
|
||
|
||
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>ssh openhab@localhost <span class="nt">-p</span> 8101
|
||
</code></pre></div></div>
|
||
|
||
<p>or</p>
|
||
|
||
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>docker <span class="nb">exec</span> <span class="nt">-it</span> openhab /openhab/runtime/bin/client
|
||
</code></pre></div></div>
|
||
|
||
<p>The default password for the login is <code class="highlighter-rouge">habopen</code>.</p>
|
||
|
||
<p>Run <code class="highlighter-rouge">bundle:update <id></code> where <code class="highlighter-rouge"><id></code> is the ID of the addon as listed when you run <code class="highlighter-rouge">bundle:list</code></p>
|
||
|
||
<p>Repeat step 2 for all bindings</p>
|
||
|
||
<p>With this approach you can maintain the installation and configuration of OH in PaperUI or Habmin but must update everything individually.</p>
|
||
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<footer>
|
||
<div class="container">
|
||
<div class="row">
|
||
<div class="col s12 m7">
|
||
Copyright © 2017 by the <a href="https://github.com/openhab">openHAB Community</a> and the <a href="http://www.openhabfoundation.org/">openHAB Foundation e.V.</a>
|
||
</div>
|
||
<div class="col s12 m5">
|
||
<ul class="list-inline right-align">
|
||
<li><a href="/imprint.html">Imprint</a></li>
|
||
<li><a href="/privacy.html">Privacy Policy</a></li>
|
||
<li><a href="http://www.openhab.org">openHAB Website</a></li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</footer>
|
||
<script src="/v2.1/js/jquery.min.js"></script>
|
||
<script src="/v2.1/js/jquery.scrollme.min.js"></script>
|
||
<script src="/v2.1/js/jquery.sticky.js"></script>
|
||
<script src="/v2.1/js/materialize.min.js"></script>
|
||
<script src="/v2.1/js/init.js"></script>
|
||
|
||
<script>
|
||
$(document).ready(function () {
|
||
|
||
$('#oh2-checkbox').change(function () {
|
||
if (this.checked) $('.since-2x').show('slow');
|
||
else $('.source-oh2').hide('slow');
|
||
});
|
||
|
||
$('#oh1-checkbox').change(function () {
|
||
if (this.checked) $('.since-1x').show('slow');
|
||
else $('.source-oh1').hide('slow');
|
||
});
|
||
|
||
$('#legacy-checkbox').change(function () {
|
||
if (this.checked) $('.install-legacy').show('slow');
|
||
else $('.install-legacy').hide('slow');
|
||
});
|
||
|
||
$('#manual-checkbox').change(function () {
|
||
if (this.checked) $('.install-manual').show('slow');
|
||
else $('.install-manual').hide('slow');
|
||
});
|
||
|
||
});
|
||
</script>
|
||
|
||
</body>
|
||
</html>
|
||
|