Down a Rabbit Hole - Docker

tags: devops

I have been in a rabbit hole for the last week. I started looking at Docker.

Its a really interesting project that all the hosting providers seem to be moving towards. Its helpful at first to think of Docker as a really fast and small virtual machine. You can put an operating system in a virtual machine, setup all the dependencies and permissions, and then configure and install your app. Its encapsulates your web app and makes it easy to move around. Thats what docker does too except a docker container is an operating system primitive – an LXC. Which means its much faster and smaller than a virtual machine and that makes it much easier to work with.

Docker also has a builtin version control system. You can install a base operating system like Ubuntu in your container and then commit that change. Then you can install some dependencies and commit that change. This commit history also allows you to reuse different commits across different containers.

Docker also has builtin deployment that allows you to push your containers to public (or private) repositories similar to CPAN or Ruby gems or pypi.

But I said this was a rabbit hole. Because when I started playing with Docker I realized its written in Go. So I started learning Go. More on that tomorrow.






                                                              '''''''''''';
                                                              '''''''''''';
                                                              ''::;;::;;:';
                                                              ''::''::'':';
                                                              ''::''::'':';
                                                              ''::''::'':';
                                                              ''::''::'':';
                                                              ''::''::'':';
                                                              ''::''::'':';
                                                              ''::''::'':';
                                         ''''''''''''''''''''''':::::::::';
                                         ''''''''''''''''''''''''''''''''';                          ''
                                         '':::::::::':::::::::;':::::::::';                         ''''.
                                         '':;';:''::':'::''::';'::''::'':';                         '':'',
                                         '':;';:''::':'::''::';'::''::'':';                        '':::''`
                                         '':;';:''::':'::''::';'::''::'':';                        ''::::''
                                         '':;';:''::':'::''::';'::''::'':';                        ';:::::''
                                         '':;';:''::':'::''::';'::''::'':';                       ,'::::::''.
                                         '':;';:''::':'::''::';'::''::'':';                       ;':::::::''
                                         '':;';:''::':'::''::';'::''::'':';                       '':::::::;'
                                         '':::::::::':::::::::;':::::::::';                       ''::::::::';
                               ''''''''''''''''''''''''''''''''''''''''''''''''''''''             ''::::::::'' `,;'':.
                               '':::::::::':::::::::';::::::::;':::::::::':::::::::''             ;'::::::::'''''''''''':
                               '';:;';:'':':;'::''::';';:''::';'::''::'':':''::'':;''             `'::::::::''';::::::'''',
                               '';:;';:'':':;'::''::';';:''::';'::''::'':':''::'':;''              '':::::::::::::::::::;''
                               '';:;';:'':':;'::''::';';:''::';'::''::'':':''::'':;''              '':::::::::::::::::::;';
                               '';:;';:'':':;'::''::';';:''::';'::''::'':':''::'':;''              .';::::::::::::::::::''
                               '';:;';:'':':;'::''::';';:''::';'::''::'':':''::'':;''               '':::::::::::::::::''
                               '';:;';:'':':;'::''::';';:''::';'::''::'':':''::'':;''               `'':::::::::::::::''.
                               '';:;';:'':':;'::''::';';:''::';'::''::'':':''::'':;''             .'''::::::::::::::'''`
                               '';:;';:'':':;'::;'::';';:''::';'::;'::';:':''::'':;''          .'''''::::::::::::'''''
                      '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';:::::::''''''''''
                      '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';:::::::::::''''';.
                      '':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::''
                      '':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::''
                      ''::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::''
                      '':::::::::::::::::::::::::::::::'::::::::::::::::::::::::::::::::::::::::::::::::''         ;
               ':     ''::::::::;;::::::::::::::::::::''':::::::::::::::::'':::::::::::::::::::::':::::''         ''
              '''',   ''::::::;'''':::::::::::::::::'''''';:::::::::::::'''''';::::::::::::::::;'''';::''       '''''
            '''''''''''';''''''''''''';::::::::;''''''''''''''::::::;'''''''''''''';::::::::'''''''''''';,,:'''''''''',
        .'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';
                      '';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;''
                      ,';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;''.
                       '';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;''
                       '';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;''
                       '';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;''
                        '';;;;;;;;;;;;;;;;;;;;;;;;`.`;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'':
                        '';;;;;;;;;;;;;;;;;;;;;;;`''``;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'''
                        .'';;;;;;;;;;;;;;;;;;;;;;`'''`;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'''
                         '';;;;;;;;;;;;;;;;;;;;;;`'''`;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'''
                         .'';;;;;;;;;;;;;;;;;;;;;;```;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'''
                          '';;;;;;;;;;;;;;;;;''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'''
                           '''''''''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'''
                           `''''''''''''';.````;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'';
                            :';........`````````;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'''`
                             ;''..........``````;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'''
                              ;''..............``;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;''':
                               ;''................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;''''
                                .'':...............;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;''''`
                                  '''...............;;;;;;;;;;;;;;;;;;;;;;;;;;;''''.
                                   :'''..............;;;;;;;;;;;;;;;;;;;;;;;'''''`
                                     ''''.............;;;;;;;;;;;;;;;;;;;''''''
                                       ;'''',...........;;;;;;;;;;;;;'''''''
                                         `'''''';:........;;;;'''''''''':
                                             :''''''''''''''''''''';.
                                                  `,:;;;;;;,.



                          .`
                         ''';                                             ''':
                         ''''                                             ''''
                         ''''                                             ''''
                         ''''                                             ''''
                         ''''                                             ''''
                         ''''                                             ''''
               ;'''''.   ''''         ;'''''.                '''''',      ''''     `':         ,''''''                 :'''
             '''''''''': ''''       '''''''''''           `'''''''''':    ''''    :'''       ,''''''''''            .'''''':
           :'''''''''''''''''     :'''''''''''''         ;''''''''''''    ''''   :''''      ''''''''''''';         '''''''':
          ;''''''''''''''''''    ;'''''''''''''''       ''''''''''''''    ''''  :'''''     ''''''''''''''''       '''''''''
         .'''''      ;'''''''   .'''''      ;'''''     :'''''      :',    '''' :'''''     ''''':      '''''.     ''''''
         '''';         ''''''   '''';         '''',    '''':              '''':'''''     ,''''         .''''    .''''`
        :''''           '''''  :''''           ''''   ;''''               '''''''''      ''''          ;''''    ''''`
        ''''            ;''''  ''''            ;'''   ''''                ''''''''       ''';         ''''''    ''''
        ''''             ''''  ''''             ''';  ''''                '''''''       ''''         ''''';    :'''
        '''.             ''''  '''.             ''''  '''.                ''''''        ''''        '''''.     ''''
        '''              ''''  '''              ''''  '''                 '''''         ''''      `'''''       ''''
        '''.             ''''  '''.             ''''  '''.                '''''.        ''''     ,'''''        ''''
        ''';             ''''  ''';             ''''  ''';                ''''''.       ''''    ;'''''         ''''
        ''''            ,''',  ''''            ,''',  ''''                '''''''.      `''':  ''''''          ''''
        ;''':           ''''   '''':           ''''   :''':               ''''''''`      '''' ''''';           ''''
         ''''`         '''''    ''''.         '''''    ''''.              '''''''''`     ,'''''''',            ''''
         :'''''       '''''     ;'''''       '''''     ;'''''       ;     '''' '''''`     '''''''`    :'       ''''
          ''''''',,;''''''`      ''''''',,:''''''`      ''''''';,;''''    ''''  '''''`     ''''''';;'''''      ''''
           ''''''''''''''.        ''''''''''''''`        '''''''''''''    ''''   '''''      '''''''''''''      ''''
            ;'''''''''''           ;'''''''''''           ''''''''''''    ''''    ''''`      '''''''''''`      ''''
              ;'''''''               ;'''''''               ''''''''`     .''`     '''         ;'''''',        `'':