{"id":113,"date":"2016-10-19T18:48:23","date_gmt":"2016-10-19T16:48:23","guid":{"rendered":"http:\/\/blog.via-internet.de\/?p=113"},"modified":"2022-03-06T10:56:43","modified_gmt":"2022-03-06T09:56:43","slug":"docker-getting-started","status":"publish","type":"post","link":"https:\/\/via-internet.de\/blog\/2016\/10\/19\/docker-getting-started\/","title":{"rendered":"Docker | Getting started"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">General Information<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/github.com\/wsargent\/docker-cheat-sheet\">Docker Cheatsheet<\/a><\/li><li><a href=\"http:\/\/veggiemonk.github.io\/awesome-docker\/\">Awesome-Docker<\/a><\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Installation<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">Install with Homebrew<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">brew install bash-completion\nbrew cask install docker\nbrew install kubectl\nbrew cask install minikube<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">After Installation, check versions<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker version\ndocker-compose version\ndocker-machine --version\nkubectl version --client<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>First steps<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Start a docker image with a given name<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"1\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ docker run --interactive --tty --name ubuntu ubuntu \/bin\/bash\nUnable to find image 'ubuntu:latest' locally\nlatest: Pulling from library\/ubuntu\naf49a5ceb2a5: Pull complete \n8f9757b472e7: Pull complete \ne931b117db38: Pull complete \n47b5e16c0811: Pull complete \n9332eaf1a55b: Pull complete \nDigest: sha256:3b64c309deae7ab0f7dbdd42b6b326261ccd6261da5d88396439353162703fb5\nStatus: Downloaded newer image for ubuntu:latest\nroot@a5b411d609f0:\/#<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Run a command<\/strong><\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"1,3,5\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">root@a5b411d609f0:\/# uname -a\nLinux a5b411d609f0 4.4.27-moby #1 SMP Wed Oct 26 14:21:29 UTC 2016 x86_64 x86_64 x86_64 GNU\/Linux\nroot@a5b411d609f0:\/# id\nuid=0(root) gid=0(root) groups=0(root)\nroot@a5b411d609f0:\/# hostname\na5b411d609f0\nroot@a5b411d609f0:\/#<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Leave image<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"1\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">root@a5b411d609f0:\/# exit\nexit\n$<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">&nbsp;Show running images<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ docker ps -a\nCONTAINER ID  IMAGE \u00a0 COMMAND \u00a0 \u00a0 \u00a0CREATED \u00a0 \u00a0 \u00a0 \u00a0STATUS\u00a0 \u00a0 \u00a0 \u00a0            PORTS \u00a0NAMES\nb01ba9bfef78\u00a0 ubuntu\u00a0 \"\/bin\/bash\" \u00a041 seconds ago\u00a0Exited (0) 2 seconds ago  \u00a0 \u00a0 \u00a0 ubuntu<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Start image<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"1,3\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ docker start ubuntu\nubuntu\n$ docker ps -a\nCONTAINER ID\u00a0 IMAGE \u00a0 COMMAND \u00a0 \u00a0 \u00a0CREATED \u00a0 \u00a0 \u00a0 \u00a0STATUS\u00a0 \u00a0 \u00a0 \u00a0          PORTS \u00a0 NAMES\nb01ba9bfef78\u00a0 ubuntu\u00a0\u00a0\"\/bin\/bash\" \u00a02 minutes ago \u00a0Up 1 seconds\u00a0\u00a0 \u00a0 \u00a0 \u00a0           ubuntu<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Attach to image, e.g. &#8220;enter&#8221; the image<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Don&#8217;t forget to press enter after you entered the command do display the shell in the image again<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ docker attach ubuntu\nroot@b01ba9bfef78:\/#<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Working with Docker<\/h2>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ docker run -it --name ubuntu ubuntu bash<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">You are in a terminal with ubuntu and can do whatever you like.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To start again after a reboot:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ docker start ubuntu\n$ docker exec -it ubuntu bash<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">If you want save your changes:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ docker commit ubuntu\n$ docker images<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">See the unnamed image and:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ docker tag &lt;imageid> myubuntu<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Then you can run another container using your new image.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ docker run -it --name myubuntu myubuntu bash<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Or replace the former<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ docker stop ubuntu\n$ docker rm ubuntu\n$ docker run -it --name ubuntu myubuntu bash<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Docker Components<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Machines<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">Create machine<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted\">$ docker-machine create --driver=virtualbox default\n$ docker-machine ls\nNAME &nbsp; &nbsp; &nbsp; &nbsp; ACTIVE &nbsp; DRIVER &nbsp; &nbsp; &nbsp; STATE &nbsp; &nbsp; URL &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SWARM &nbsp; DOCKER&nbsp; &nbsp; ERRORS\ndefault&nbsp; &nbsp; &nbsp; -&nbsp; &nbsp; &nbsp; &nbsp; virtualbox &nbsp; Running &nbsp; tcp:\/\/192.168.99.100:2376 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; v1.12.2&nbsp; &nbsp;\nvirtualbox &nbsp; -&nbsp; &nbsp; &nbsp; &nbsp; virtualbox &nbsp; Stopped &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Unknown \n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Show environment of machine<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ docker-machine env\nexport DOCKER_TLS_VERIFY=\"1\"\nexport DOCKER_HOST=\"tcp:\/\/192.168.99.100:2376\"\nexport DOCKER_CERT_PATH=\"\/Users\/docker\/.docker\/machine\/machines\/default\"\nexport DOCKER_MACHINE_NAME=\"default\"\n# Run this command to configure your shell: \n# eval $(docker-machine env)<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Stop&nbsp;machine<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ docker-machine stop default\nStopping \"default\"...\ndocker-Machine \"default\" was stopped.<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Start&nbsp;&nbsp;machine<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ docker-machine start default\nStarting \"default\"...\n(default) Check network to re-create if needed...\n(default) Waiting for an IP...\nMachine \"default\" was started.\nWaiting for SSH to be available...\nDetecting the provisioner...\nStarted machines may have new IP addresses. You may need to re-run the docker-machine env command.<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Set environment of a machine<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ eval \"$(docker-machine env default)\"<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Create machine from iso image<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ docker-machine create -d virtualbox --virtualbox-boot2docker-url https:\/\/releases.rancher.com\/os\/latest\/rancheros.iso &lt;MACHINE-NAME>\n$ docker-machine env rancheros<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Images<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Images are just <a href=\"https:\/\/docs.docker.com\/engine\/understanding-docker\/#how-does-a-docker-image-work\">templates for docker containers<\/a>.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">List all images<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ docker images\nREPOSITORY\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 TAG \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 IMAGE ID\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 CREATED \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 SIZE\nubuntu\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 latest\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 f753707788c5\u00a0 \u00a0 \u00a0 \u00a0 5 days ago\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 127.2 MB<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Remove images<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ docker rmi &lt;IMAGE ID><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Remove all images<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ docker rmi $(docker images -q)<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Container<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">List all container<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ docker ps -a<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Run command in&nbsp;container<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ docker run -it ubuntu bash\nUnable to find image 'ubuntu:latest' locally\nlatest: Pulling from library\/ubuntu\n6bbedd9b76a4: Pull complete \nfc19d60a83f1: Pull complete \nde413bb911fd: Pull complete \n2879a7ad3144: Pull complete \n668604fde02e: Pull complete \nDigest: sha256:2d44ae143feeb36f4c898d32ed2ab2dffeb3a573d2d8928646dfc9cb7deb1315\nStatus: Downloaded newer image for ubuntu:latest<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Run command and delete container after running<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ docker run -it --rm ubuntu hostname<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Check environment in&nbsp;container<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"\" data-enlighter-theme=\"\" data-enlighter-highlight=\"2\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ docker run -it ubuntu bash\n# hostname\nc26fc567f552\nroot@c26fc567f552:\/# uname -a\nLinux c26fc567f552 4.4.24-boot2docker #1 SMP Fri Oct 7 20:54:27 UTC 2016 x86_64 x86_64 x86_64 GNU\/Linux<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Remove all container<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ docker rm $(docker ps -a -q)<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Commit container as new image<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ docker ps -a\nCONTAINER ID\u00a0 \u00a0 \u00a0 \u00a0 IMAGE\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 COMMAND\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 CREATED \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 STATUS \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 PORTS \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 NAMES\ne4a50905aa9c\u00a0 \u00a0 \u00a0 \u00a0 continuumio\/anaconda \u00a0 \"\/usr\/bin\/tini -- \/bi\" \u00a0 22 minutes ago\u00a0 \u00a0 \u00a0 Exited (0) 5 minutes ago \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 pedantic_kirch\n164daaac2349\u00a0 \u00a0 \u00a0 \u00a0 4f3b088e1307 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \"\/bin\/sh -c 'apt-get \" \u00a0 4 hours ago \u00a0 \u00a0 \u00a0 \u00a0 Exited (100) 4 hours ago \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 happy_jang\n817bb15d3171\u00a0 \u00a0 \u00a0 \u00a0 i_electron \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \"\/bin\/bash\"\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 2 weeks ago \u00a0 \u00a0 \u00a0 \u00a0 Exited (0) 2 weeks ago \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 cranky_wilson\n$ docker commit e4a50905aa9c r14r_anaconda<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Tipps and Tricks<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Use npm as a comand wrapper<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">Create a &nbsp;empty npm package<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ npm init --yes<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Add this lines to the package.json file<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"json\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">{\n\u00a0 \"name\": \"development\",\n   ...\n\u00a0\u00a0\"license\": \"ISC\",\n\u00a0 \"scripts\":\u00a0 {\n\u00a0 \u00a0 \"build\": \"docker build -t development .\",\n\u00a0 \u00a0 \"ssh\": \"docker run -i -t development \/bin\/bash\"\n}<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Create a Dockerfile<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">FROM ubuntu\nRUN apt-get update &amp;&amp; apt-get install -y firefox<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Now you can build the image with<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ npm\u00a0run build\n$ npm run ssh<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Running XClients from Docker on macOS Host <a href=\"https:\/\/learning-continuous-deployment.github.io\/docker\/images\/dockerfile\/2015\/04\/22\/docker-gui-osx\/\">(Source)<\/a><\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">Install Homebrew<\/h4>\n\n\n\n<h4 class=\"wp-block-heading\">Install requires parts<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ brew install socat\n$ brew cask install xquartz<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Now start XQuartz<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ open -a XQuartz<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Expose local xquartz socket via socat on a TCP port.<br>Run this in another terminal window<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ socat TCP-LISTEN:6000,reuseaddr,fork UNIX-CLIENT:\\\"$DISPLAY\\\"<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"color: #ff0000;\">The masking of the characters &#8221; is VERY important<\/span><\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Run Firefox in Docker Container<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ docker run -it -e DISPLAY=server:0.0 i_firefox firefox<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Create image from scratch<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Scratch image<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"http:\/\/blog.xebia.com\/create-the-smallest-possible-docker-container\/\">Create image from scratch<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Using Linux as Docker OS<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Available Linux OS&#8217;s<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>Alpine Linux<\/td><td>Home | Github | Docker Hub<\/td><td>&nbsp;<\/td><\/tr><tr><td>CoreOS Container Linux<\/td><td><a href=\"https:\/\/coreos.com\/os\/docs\/latest\/\">Home<\/a> | Github | <a href=\"https:\/\/hub.docker.com\/u\/coreos\/\">Docker Hub<\/a><\/td><td><a href=\"https:\/\/stable.release.core-os.net\/amd64-usr\/current\/coreos_production_iso_image.iso\">ISO<\/a> |<\/td><\/tr><tr><td>Rancher Labs RancherOS<\/td><td><a href=\"http:\/\/rancher.com\/rancher-os\/\">Home<\/a> | Github | Docker Hub<\/td><td>&nbsp;<\/td><\/tr><tr><td>Red Hat Project Atomic<\/td><td><a href=\"http:\/\/www.projectatomic.io\/\">Home<\/a> | <a href=\"https:\/\/github.com\/projectatomic\/atomicapp\">Github<\/a> | Docker Hub<\/td><td>&nbsp;<\/td><\/tr><tr><td>VMware Photon OS<\/td><td><a href=\"https:\/\/vmware.github.io\/photon\/\">Home<\/a> | <a href=\"https:\/\/github.com\/vmware\/photon\">Github<\/a> | Docker Hub<\/td><td>&nbsp;<\/td><\/tr><\/tbody><\/table><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>General Information Docker Cheatsheet Awesome-Docker Installation Install with Homebrew After Installation, check versions First steps Start a docker image with a given name Run a command Leave image &nbsp;Show running images Start image Attach to image, e.g. &#8220;enter&#8221; the image Don&#8217;t forget to press enter after you entered the command do display the shell in the image again Working with Docker You are in a terminal with ubuntu and can do whatever you like. To start again after a reboot: If you want save your changes: See the unnamed image and: Then you can run another container using your new image. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":137,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[22,82,83],"tags":[],"class_list":["post-113","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-docker","category-virtual-machine","category-virtualbox"],"jetpack_featured_media_url":"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2016\/10\/Bildschirmfoto-2016-10-21-um-16.38.00.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/posts\/113","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/comments?post=113"}],"version-history":[{"count":2,"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/posts\/113\/revisions"}],"predecessor-version":[{"id":8692,"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/posts\/113\/revisions\/8692"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/media\/137"}],"wp:attachment":[{"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/media?parent=113"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/categories?post=113"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/tags?post=113"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}