2014-12-29

docker -- Docker Hub

Docker Hub
https://hub.docker.com
The home for all things Docker
Browse, Search, Push, Pull Repositories
100 Official Images
45,324 Public Images - 20141229

slitaz/slitaz-base
https://registry.hub.docker.com/u/slitaz/slitaz-base/
Pull this repository: docker pull slitaz/slitaz-base
Information
SliTaz base image weights ~ 9 MB.
SliTaz base rootfs comes pre-loaded with the following packages:
busybox 1.21.1
dropbear 2013.60 – Light SSH client and server.
nano 2.2.6 – GNU Nano Text Editor.
retawq 0.2.6c – Text mode Web browser.
tazpkg 5.1 – SliTaz packages manager (Tiny autonomous zone packages manager).
ytree 1.97 – file manager for file and archives.
The name SliTaz stands for 「Simple Light Incredible Temporary Autonomous Zone」.

docker -- boot2docker.iso

boot2docker.iso
https://github.com/boot2docker/boot2docker/releases/download/v1.3.2/boot2docker.iso
1. download boot2docker.iso

2. boot the ISO image

That's it.

Ref:
Is boot2docker only for VirtualBox?
 https://github.com/boot2docker/boot2docker/blob/master/doc/FAQ.md

There are two parts of Boot2Docker: the ISO image, and the boot2docker management tool to set up and mange a VM. The management tool only works with VirtualBox, but the ISO image is designed to also be used with physical hardware. There are no plans to make separate ISO images for different configurations.

2014-12-24

docker -- boot2docker/VBox guest additions


boot2docker - Build VBox guest additions

VirtualBox Guest Additions #534

https://github.com/boot2docker/boot2docker/pull/534/files

# Build VBox guest additions
# For future reference, we have to use x86 versions of several of these bits
# because TCL doesn't support ELFCLASS64
# (... and we can't use VBoxControl or VBoxService at all because of this)
ENV VBOX_VERSION 4.3.18
RUN mkdir -p /vboxguest && \
cd /vboxguest && \
\
curl -L -o vboxguest.iso http://download.virtualbox.org/virtualbox/${VBOX_VERSION}/VBoxGuestAdditions_${VBOX_VERSION}.iso && \
7z x vboxguest.iso -ir'!VBoxLinuxAdditions.run' && \
rm vboxguest.iso && \
\
sh VBoxLinuxAdditions.run --noexec --target . && \
mkdir amd64 && tar -C amd64 -xjf VBoxGuestAdditions-amd64.tar.bz2 && \
mkdir x86 && tar -C x86 -xjf VBoxGuestAdditions-x86.tar.bz2 && \
rm VBoxGuestAdditions*.tar.bz2 && \
\
KERN_DIR=/linux-kernel/ make -C amd64/src/vboxguest-${VBOX_VERSION} && \
cp amd64/src/vboxguest-${VBOX_VERSION}/*.ko $ROOTFS/lib/modules/$KERNEL_VERSION-tinycore64/ && \
\
mkdir -p $ROOTFS/sbin && \
cp x86/lib/VBoxGuestAdditions/mount.vboxsf $ROOTFS/sbin/

# Make sure that all the modules we might have added are recognized (especially VBox guest additions)
RUN depmod -a -b $ROOTFS $KERNEL_VERSION-tinycore64

# COPY VERSION $ROOTFS/etc/version
RUN cp -v $ROOTFS/etc/version /tmp/iso/version

----

boot2docker together with VirtualBox Guest Additions
How to mount /Users into boot2docker


https://blog.docker.com/2014/10/docker-1-3-signed-images-process-injection-security-options-mac-shared-directories

2014-12-22

docker -- commit and x86_64 packages


docker -- commit and x86_64 packages
packages-x86_64-178-list
http://goo.gl/ipYRQN

20140306-x86_64-packages-178.tar.gz
http://goo.gl/qeKt6o

http://forum.slitaz.org/topic/installing-virtualbox-guest-additions-in-slitaz-50#post-34953


1.
root@boot2docker:~# docker run -it slitaz/slitaz-base
/ #

download 20140306-x86_64-packages-178.tar.gz and extra to /var/www/slitaz/x86_64


2.
/ # tazpkg recharge

================================================================================
Last packages.list is ready to use. Note that next time you recharge the
list, a list of differences will be displayed to show new and upgradeable
packages.

/ # tazpkg list-mirror | tail -8
zlib-dev
1.2.8-x86_64
Zlib compression library devel files.
72.0K (240.0K installed)

================================================================================
178 packages in the last recharged list.


3.
/ # tazpkg -gi file

Tracking dependencies for: file
================================================================================
Missing: libmagic
================================================================================
1 missing package to install.

Installation of: libmagic
================================================================================
Copying libmagic... [ Done ]
Extracting libmagic... [ Done ]
Extracting the pseudo fs... [ Done ]
Installing libmagic... [ Done ]
Removing all tmp files... [ Done ]
================================================================================
libmagic (5.14) is installed.

Installation of: file
================================================================================
Copying file... [ Done ]
Extracting file... [ Done ]
Extracting the pseudo fs... [ Done ]
Installing file... [ Done ]
Removing all tmp files... [ Done ]
================================================================================
file (5.14) is installed.


4.
/ # spk info

Spk info
================================================================================
Architecture : x86_64
Database : /var/lib/tazpkg/installed
Cache info : 0 /var/cache/tazpkg
Mirror URL : /var/www/slitaz/x86_64/packages/
Extra mirrors : 0
Installed : 20
Mirrored : 178
================================================================================


5.
/ # file /lib/libc-2.13.so
/lib/libc-2.13.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, stripped


6.
/ # tail -5 /var/lib/tazpkg/installed.md5
f1e53b247bb72fcdfd225c89f93a7e71  zlib-1.2.8-x86_64.tazpkg
9afd31e45388e5b36364458d53a682e3  util-linux-uuid-2.21.1-x86_64.tazpkg
2e2cd1a2e890b840e5cbc637e7ddd5a3  util-linux-blkid-2.21.1-x86_64.tazpkg
0cb1f6e932344f44249e3c12f2fb6a89  file-5.14-x86_64.tazpkg
42a187ac1a9d649cb7e0521396ee9696  libmagic-5.14-x86_64.tazpkg

/ # exit


7.
root@boot2docker:~# docker ps -a
CONTAINER ID        IMAGE                       COMMAND             CREATED             STATUS                     PORTS               NAMES
353efd20bcd7        slitaz/slitaz-base:latest   "/bin/sh"           17 minutes ago      Exited (0) 6 seconds ago                       sick_euclid         

root@boot2docker:~# docker commit 353efd slitaz/slitaz-file
8ec8ca5baa6103e9573e0884f891d9c1213d0e84523b60334a16d39eaa72a67c

root@boot2docker:~# docker images

REPOSITORY           TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
slitaz/slitaz-file   latest              8ec8ca5baa61        6 seconds ago  11.6 MB
slitaz/slitaz-base   latest              0bd2fd062ec7        2 days ago   8.778 MB

8.
root@boot2docker:~# docker run -it slitaz/slitaz-file
/ # file /usr/bin/file
/usr/bin/file: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, stripped


9.
/ # tazpkg info file

Tazpkg information
================================================================================
Package : file
Version : 5.14
Category : system-tools
Short desc : Retrieve file type.
Maintainer : erjo@slitaz.org
Depends : zlib libmagic
Build deps : zlib-dev python
Web site : http://www.darwinsys.com/file/
================================================================================


10.
/ # du -sh /
11.9M /
/ # exit
root@boot2docker:~#

2014-12-19

docker -- SliTaz base image

SliTaz base image
root@boot2docker:~# docker run mastersrp/slitaz-core slitaz
exec format error2014/12/3 21:47:32 Error response from daemon: Cannot start container 01a8cfb9e3467cbfe7a8a6d9a95d7af7c9b836a194b3fa5482016c003fcb725e: exec format error
1.
root@boot2docker:~# docker search slitaz
NAME                    DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
slitaz/slitaz-base      SliTaz base image.                              0
mastersrp/slitaz-core   A 32bit version of the core SliTaz system ...   0

2.
root@boot2docker:~# docker pull slitaz/slitaz-base
Pulling repository slitaz/slitaz-base
0bd2fd062ec7: Download complete
511136ea3c5a: Download complete
9009fa2b6f5b: Download complete
Status: Downloaded newer image for slitaz/slitaz-base:latest

3.
root@boot2docker:~# docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
slitaz/slitaz-base   latest              0bd2fd062ec7        49 minutes ago      8.778 MB

4.
root@boot2docker:~# docker run slitaz/slitaz-base slitaz
SliTaz GNU/Linux
================================================================================
Release : cooking
Architecture : x86_64
Kernel : 3.16.7-slitaz
Boot options : loglevel=3 user=docker console=ttyS0 console=tty0 noembed nomodeset norestore waitusb=10:LABEL=boot2docker-data base
Home path : /home/slitaz
Configs : /etc/slitaz
Log files : /var/log/slitaz
Packages DB : /var/lib/tazpkg
Installed : 18 packages
Mirror : /var/www/slitaz/x86_64/packages/
================================================================================
Config file: /etc/slitaz/slitaz.conf

5.
root@boot2docker:~# docker run -i -t slitaz/slitaz-base
/ # slitaz

SliTaz GNU/Linux
================================================================================
Release : cooking
Architecture : x86_64
Kernel : 3.16.7-slitaz
Boot options : loglevel=3 user=docker console=ttyS0 console=tty0 noembed nomodeset norestore waitusb=10:LABEL=boot2docker-data base
Home path : /home/slitaz
Configs : /etc/slitaz
Log files : /var/log/slitaz
Packages DB : /var/lib/tazpkg
Installed : 18 packages
Mirror : /var/www/slitaz/x86_64/packages/
================================================================================
Config file: /etc/slitaz/slitaz.conf

6.
/ # spk info
Spk info
================================================================================
Architecture : x86_64
Database : /var/lib/tazpkg/installed
Cache info : 0 /var/cache/tazpkg
Mirror URL : /var/www/slitaz/x86_64/packages/
Extra mirrors : 0
Installed : 18
================================================================================

7.
/ # cat /var/lib/tazpkg/installed.md5

89d7b86ca37af0c5746026fd937988fc  busybox-1.21.1-x86_64.tazpkg
15b6462db63b8210b004a828f9a50bd3  dialog-1.1-20110707-x86_64.tazpkg
4fd342a79636f9eaed67969a318f900b  dropbear-2013.60-x86_64.tazpkg
a9cde0c95f41ec586126756a7eb776ff  gcc-lib-base-4.6.3-x86_64.tazpkg
d125b9760c812f5ebbacd646f7dcb9e3  gettext-base-0.18.3-x86_64.tazpkg
9604ba1cdf90e7e4d51cbd323cd5196b  glibc-base-2.13-x86_64.tazpkg
cf0916594676211e54d62fd34a37423d  nano-2.2.6-x86_64.tazpkg
7bfa71e3c6c504205b00a1e0bd186866  ncurses-5.9-x86_64.tazpkg
ea531de27a5879627d60918c8547bcc1  ncurses-common-5.9-x86_64.tazpkg
4c2262ad1c2967f22fae48c676632881  ncursesw-5.9-x86_64.tazpkg
6a55e8bb0aa9c0c697bf04ecf4105ef5  retawq-0.2.6c-x86_64.tazpkg
d8581b25420a0354bd2ed5f08af162ef  slitaz-base-files-5.4.2-x86_64.tazpkg
e9ccbca78b4263d28ef1f16007c5a830  slitaz-boot-scripts-5.3.3-x86_64.tazpkg
864ba88bf6bff85a08b0f43ae0fca7cb  tazpkg-5.1-x86_64.tazpkg
838a2813c19c2d5e85953cf170f98884  ytree-1.97-x86_64.tazpkg
f1e53b247bb72fcdfd225c89f93a7e71  zlib-1.2.8-x86_64.tazpkg
9afd31e45388e5b36364458d53a682e3  util-linux-uuid-2.21.1-x86_64.tazpkg
2e2cd1a2e890b840e5cbc637e7ddd5a3  util-linux-blkid-2.21.1-x86_64.tazpkg

8.
/ # du -sh /
9.1M /
/ # exit

root@boot2docker:~# du -sh /
117.2M /

2014-12-18

docker -- slitaz64-check-config


slitaz64-check-config

root@slitaz:~# uname -a
Linux slitaz 3.16.7-slitaz #1 SMP Mon Dec 1 11:18:28 UTC 2014 x86_64 GNU/Linux

root@slitaz:~# ./check-config.sh
info: reading kernel config from /proc/config.gz ...
Generally Necessary:
- cgroup hierarchy: properly mounted [/sys/fs/cgroup]
- CONFIG_NAMESPACES: enabled
- CONFIG_NET_NS: enabled
- CONFIG_PID_NS: enabled
- CONFIG_IPC_NS: enabled
- CONFIG_UTS_NS: enabled
- CONFIG_DEVPTS_MULTIPLE_INSTANCES: enabled
- CONFIG_CGROUPS: enabled
- CONFIG_CGROUP_CPUACCT: enabled
- CONFIG_CGROUP_DEVICE: enabled
- CONFIG_CGROUP_FREEZER: enabled
- CONFIG_CGROUP_SCHED: enabled
- CONFIG_MACVLAN: enabled
- CONFIG_VETH: enabled
- CONFIG_BRIDGE: enabled
- CONFIG_NF_NAT_IPV4: enabled
- CONFIG_IP_NF_TARGET_MASQUERADE: enabled
- CONFIG_NETFILTER_XT_MATCH_ADDRTYPE: enabled
- CONFIG_NETFILTER_XT_MATCH_CONNTRACK: enabled
- CONFIG_NF_NAT: enabled
- CONFIG_NF_NAT_NEEDED: enabled

Optional Features:
- CONFIG_MEMCG_SWAP: enabled
- CONFIG_RESOURCE_COUNTERS: enabled
- CONFIG_CGROUP_PERF: enabled
- Storage Drivers:
 - "aufs":
    - CONFIG_AUFS_FS: enabled
    - CONFIG_EXT4_FS_POSIX_ACL: enabled
    - CONFIG_EXT4_FS_SECURITY: enabled
 - "btrfs":
    - CONFIG_BTRFS_FS: enabled
 - "devicemapper":
    - CONFIG_BLK_DEV_DM: enabled
    - CONFIG_DM_THIN_PROVISIONING: enabled
    - CONFIG_EXT4_FS: enabled
    - CONFIG_EXT4_FS_POSIX_ACL: enabled
    - CONFIG_EXT4_FS_SECURITY: enabled

2014-12-17

docker -- Linux kernel 3.16.7-slitaz



Linux kernel 3.16.7-slitaz

Linux boot2docker 3.16.7-tinycore64 #1 SMP Thu Nov 20 00:06:13 UTC 2014 x86_64 GNU/Linux

Linux version 3.16.7-tinycore64 (root@064f0e1ce709) (gcc version 4.7.2 (Debian 4.7.2-5) ) #1 SMP Thu Nov 20 00:06:13 UTC 2014

Kernel Version: 3.16.7-tinycore64


1. Linux kernel: patch aufs


2.
                        ##        .
                  ## ## ##       ==
               ## ## ## ##      ===
           /""""""""""""""""\___/ ===
      ~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ /  ===- ~~~
           \______ o          __/
             \    \        __/
              \____\______/
 _                 _   ____     _            _
| |__   ___   ___ | |_|___ \ __| | ___   ___| | _____ _ __
| '_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ '__|
| |_) | (_) | (_) | |_ / __/ (_| | (_) | (__|   <  __/ |
|_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_|

Boot2Docker version 1.3.2, build master : 495c19a - Mon Nov 24 20:40:58 UTC 2014
Docker version 1.3.2, build 39fa2fa

root@boot2docker:~# uname -a
Linux boot2docker 3.16.7-slitaz #1 SMP Mon Dec 1 11:18:28 UTC 2014 x86_64 GNU/Linux

root@boot2docker:~# dmesg | grep gcc
Linux version 3.16.7-slitaz (root@slitaz) (gcc version 4.6.3 (SliTaz) ) #1 SMP Mon Dec 1 11:18:28 UTC 2014


3.
root@boot2docker:~# docker version
Client version: 1.3.2
Client API version: 1.15
Go version (client): go1.3.3
Git commit (client): 39fa2fa
OS/Arch (client): linux/amd64
Server version: 1.3.2
Server API version: 1.15
Go version (server): go1.3.3
Git commit (server): 39fa2fa


4.
root@boot2docker:~# docker info
Containers: 4
Images: 3
Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Dirs: 11
Execution Driver: native-0.2
Kernel Version: 3.16.7-slitaz
Operating System: Boot2Docker 1.3.2 (TCL 5.4); master : 495c19a - Mon Nov 24 20:40:58 UTC 2014
Debug mode (server): true
Debug mode (client): false
Fds: 11
Goroutines: 13
EventsListeners: 0
Init Path: /usr/local/bin/docker


5. 
root@boot2docker:~# lsmod
Module                  Size  Used by    Not tainted
xt_addrtype            12288  2 
xt_conntrack           12288  1 
ipt_MASQUERADE         12288  1 
iptable_nat            12288  1 
nf_conntrack_ipv4      16384  2 
nf_defrag_ipv4         12288  1 nf_conntrack_ipv4
nf_nat_ipv4            12288  1 iptable_nat
nf_nat                 16384  3 ipt_MASQUERADE,iptable_nat,nf_nat_ipv4
nf_conntrack           57344  6 xt_conntrack,ipt_MASQUERADE,iptable_nat,nf_conntrack_ipv4,nf_nat_ipv4,nf_nat
bridge                 61440  0 
stp                    12288  1 bridge
llc                    12288  2 bridge,stp
ipv6                  229376 13 bridge,[permanent]
cpufreq_conservative    12288  0 
cpufreq_stats          12288  0 
cpufreq_powersave      12288  0 
cpufreq_userspace      12288  0 
squashfs               28672  0 
loop                   20480  0 
ppdev                  12288  0 
floppy                 49152  0 
parport_pc             24576  0 
parport                28672  2 ppdev,parport_pc
intel_agp              12288  0 
intel_gtt              16384  1 intel_agp
agpgart                28672  2 intel_agp,intel_gtt
pcspkr                 12288  0 
e1000                  81920  0 
i2c_piix4              12288  0 


6.
root@boot2docker:~# modinfo nf_nat_ipv4
filename:       kernel/net/ipv4/netfilter/nf_nat_ipv4.ko
license:        GPL
alias:          nf-nat-2
depends:        nf_nat,nf_conntrack
vermagic:       3.16.7-slitaz SMP mod_unload 


7.
root@boot2docker:~# zcat /proc/config.gz | grep AUFS
CONFIG_AUFS_FS=y
# CONFIG_AUFS_BRANCH_MAX_127 is not set
# CONFIG_AUFS_BRANCH_MAX_511 is not set
# CONFIG_AUFS_BRANCH_MAX_1023 is not set
CONFIG_AUFS_BRANCH_MAX_32767=y
CONFIG_AUFS_SBILIST=y
# CONFIG_AUFS_HNOTIFY is not set
# CONFIG_AUFS_EXPORT is not set
# CONFIG_AUFS_FHSM is not set
# CONFIG_AUFS_RDU is not set
# CONFIG_AUFS_SHWH is not set
# CONFIG_AUFS_BR_RAMFS is not set
CONFIG_AUFS_BR_HFSPLUS=y
CONFIG_AUFS_BDEV_LOOP=y
# CONFIG_AUFS_DEBUG is not set
root@boot2docker:~#

docker -- mastersrp/slitaz-core: exec format error

mastersrp/slitaz-core: exec format error
40,000 "Dockerized" applications in the Docker Hub Registry
1.
root@boot2docker:~# docker search slitaz

NAME                    DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mastersrp/slitaz-core   A 32bit version of the core SliTaz system ...   0 

2.
root@boot2docker:~# docker pull mastersrp/slitaz-core
Pulling repository mastersrp/slitaz-core
3c2cb5d63685: Download complete
Status: Downloaded newer image for mastersrp/slitaz-core:latest

3.
root@boot2docker:~# docker images

REPOSITORY              TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
mastersrp/slitaz-core   latest              3c2cb5d63685        10 weeks ago        41 MB

4.
root@boot2docker:~# docker run mastersrp/slitaz-core ls -l
exec format error2014/12/3 21:47:19 Error response from daemon: Cannot start container f8042526bcb711ff76b27b3cd4288e11373b172e690e2742f6314b91ed7b2c21: exec format error

5.
root@boot2docker:~# docker run mastersrp/slitaz-core slitaz
exec format error2014/12/3 21:47:32 Error response from daemon: Cannot start container 01a8cfb9e3467cbfe7a8a6d9a95d7af7c9b836a194b3fa5482016c003fcb725e: exec format error

6.
root@boot2docker:~# docker run -i -t mastersrp/slitaz-core /bin/sh
exec format error2014/12/3 21:48:07 Error response from daemon: Cannot start container 7b35788dd3b729c33c1a316c51c9fff1e9cbef00b2950e4d6450f17d39b21dff: exec format error
root@boot2docker:~#

2014-12-15

docker -- boot2docker


                           
boot2docker

boot2docker is a lightweight Linux distribution based on Tiny Core Linux made specifically to run Docker containers. It runs completely from RAM, weighs ~27MB and boots in ~5s (YMMV).
See Frequently asked questions for more details.

Features

  • Kernel 3.16.7 with AUFS, Docker 1.3.2
  • Container persistence via disk automount on /var/lib/docker
  • SSH keys persistence via disk automount
  • Host-only network for easy access to ports mapped by Docker

boot2docker.iso

root@boot2docker:~# uname -a
Linux boot2docker 3.16.7-tinycore64 #1 SMP Thu Nov 20 00:06:13 UTC 2014 x86_64 GNU/Linux

root@boot2docker:~# dmesg | grep gcc
Linux version 3.16.7-tinycore64 (root@064f0e1ce709) (gcc version 4.7.2 (Debian 4.7.2-5) ) #1 SMP Thu Nov 20 00:06:13 UTC 2014

root@boot2docker:~# docker version
Client version: 1.3.2
Client API version: 1.15
Go version (client): go1.3.3
Git commit (client): 39fa2fa
OS/Arch (client): linux/amd64
Server version: 1.3.2
Server API version: 1.15
Go version (server): go1.3.3
Git commit (server): 39fa2fa

root@boot2docker:~# docker info
Containers: 0
Images: 0
Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Dirs: 0
Execution Driver: native-0.2
Kernel Version: 3.16.7-tinycore64
Operating System: Boot2Docker 1.3.2 (TCL 5.4); master : 495c19a - Mon Nov 24 20:40:58 UTC 2014
Debug mode (server): true
Debug mode (client): false
Fds: 10
Goroutines: 11
EventsListeners: 0
Init Path: /usr/local/bin/docker
root@boot2docker:~#

2014-12-12

docker -- tutorial


The best way to understand Docker is to try it!

 https://www.docker.com/tryit/

In this 10-minute tutorial, see how Docker works first-hand:

You'll search for and find an image another user built and shared in the Docker Hub Registry, a cloud-based collection of applications.
You'll download and run it - running images are containers - and have it output 'hello world'.
Then you'll install the 'ping' utility into the container, commit all your changes, and run a test of your updated image.
Finally, you'll push your image to the Docker Hub Registry so that other developers can find and use it...
...on a laptop, a VM in a data center, or a public cloud instance, without having to change anything at all about the image!
Welcome to the interactive Docker tutorial
you@tutorial:~$  

This emulator provides only a limited set of shell and Docker commands. 

docker -- Linux 3.8


In general, a 3.8 Linux kernel is the minimum requirement for Docker,
The latest minor version (3.x.y) of the 3.10 (or a newer maintained version) Linux kernel is recommended.
Linux namespaces & cgroups Availability:

Linux 3.8
http://kernelnewbies.org/Linux_3.8

Linux 3.8 was released on Mon, 18 Feb 2013.

This Linux release includes support in Ext4 for embedding very small files in the inode, which greatly improves the performance for these files and saves some disk space. There is also a new Btrfs feature that allows to replace quickly a disk, a new filesystem F2FS optimized for SSDs, support of filesystem mounts, UTS, IPC, PIDs, and network stack namespaces for unprivileged users, accounting of kernel memory in the memory resource controller, journal checksums in XFS, an improved NUMA policy redesign and, of course, the removal of support for 386 processors. Many small features and new drivers and fixes are also available.
  1. Prominent features in Linux 3.8
    1. Ext4 embeds very small files in the inode
    2. Btrfs fast device replacement
    3. F2FS, a SSD friendly file system
    4. User namespace support completed
    5. XFS log checksums
    6. Huge Pages support a zero page
    7. The memory resource controller supports accounting of kernel memory
    8. Automatic NUMA balancing
    9. Removal of support for 386 processors
  2. Driver and architecture-specific changes
  3. Various core changes
  4. Filesystems
  5. Block
  6. Crypto/keyring
  7. Security
  8. Perf
  9. Virtualization
  10. Networking
  11. Other news sites that track the changes of this release

1.4. User namespace support completed

Per-process namespaces allow to have different namespaces for several resources. For example, a process might see a set mountpoints, PID numbers, and network stack state, and a process in other namespace might see others. The per-process namespace support has been developed for many years: The command unshare(1), available in modern linux distros, allows to start a process with the mount, UTS, IPC or network namespaces "unshared" from its parent; and systemd uses mount namespaces for the ReadWriteDirectories, ReadOnlyDirectories or InaccessibleDirectories unit configuration options, and for systemd-nspawn. But the use of namespaces was limited only to root.
This release adds is the ability for unprivileged users to use per-process namespaces safely. The resources with namespace support available are filesystem mount points, UTS, IPC, PIDs, and network stack.
For more details about the Linux namespace support, what they are, how they work, details about the API and some example programs, you should read the article series from LWN
(The remaining namespaces will be covered in future LWN articles)

[..]

1.7. The memory resource controller supports accounting of kernel memory

The Linux memory controller is a control group that can limit, account and isolate memory usage to arbitrary groups of processes. In this release, the memory controller has got support for accounting two types uses of kernel memory usage: stack and slab usage. These limits can be useful for things like stopping fork bombs.
The files created in the control group are:
  • memory.kmem.limit_in_bytes: set/show hard limit for kernel memory
    memory.kmem.usage_in_bytes: show current kernel memory allocation
    memory.kmem.failcnt: show the number of kernel memory usage hits limits
    memory.kmem.max_usage_in_bytes: show max kernel memory usage recorded
Recommended LWN article: KS2012: memcg/mm: Improving kernel-memory accounting for memory cgroups



2014-12-11

docker -- runtime and kernel dependencies


 

Binaries

This instruction set is meant for hackers who want to try out Docker on a variety of environments.
Before following these directions, you should really check if a packaged version of Docker is already available for your distribution. We have packages for many distributions, and more keep showing up all the time!

Check runtime dependencies

To run properly, docker needs the following software to be installed at runtime:
  • iptables version 1.4 or later
  • Git version 1.7 or later
  • procps (or similar provider of a "ps" executable)
  • XZ Utils 4.9 or later
  • a properly mounted cgroupfs hierarchy (having a single, all-encompassing "cgroup" mount point is not sufficient)

Check kernel dependencies

Docker in daemon mode has specific kernel requirements. For details, check your distribution in Installation.
In general, a 3.8 Linux kernel is the minimum requirement for Docker, as some of the prior versions have known issues that are triggered by Docker. Linux kernel versions older than 3.8 are known to cause kernel panics and to break Docker.
The latest minor version (3.x.y) of the 3.10 (or a newer maintained version) Linux kernel is recommended. Keeping the kernel up to date with the latest minor version will ensure critical kernel bugs get fixed.


2014-12-10

docker -- slitaz-core64-check-config


slitaz-core64-check-config 
 
slitaz-rolling-core64.iso 2014-10-27

root@slitaz:/home/tux# uname -a
Linux slitaz 3.2.53-slitaz64 #2 SMP Sun Oct 26 09:30:52 Europe 2014 x86_64 GNU/Linux

root@slitaz:/home/tux# check-config.sh
info: reading kernel config from /proc/config.gz ...
Generally Necessary:
- cgroup hierarchy: nonexistent??
(see https://github.com/tianon/cgroupfs-mount)
- CONFIG_NAMESPACES: enabled
- CONFIG_NET_NS: enabled
- CONFIG_PID_NS: enabled
- CONFIG_IPC_NS: enabled
- CONFIG_UTS_NS: enabled
- CONFIG_DEVPTS_MULTIPLE_INSTANCES: enabled
- CONFIG_CGROUPS: enabled
- CONFIG_CGROUP_CPUACCT: enabled
- CONFIG_CGROUP_DEVICE: enabled
- CONFIG_CGROUP_FREEZER: enabled
- CONFIG_CGROUP_SCHED: enabled
- CONFIG_MACVLAN: enabled
- CONFIG_VETH: enabled
- CONFIG_BRIDGE: enabled
- CONFIG_NF_NAT_IPV4: missing
- CONFIG_IP_NF_TARGET_MASQUERADE: enabled
- CONFIG_NETFILTER_XT_MATCH_ADDRTYPE: missing
- CONFIG_NETFILTER_XT_MATCH_CONNTRACK: enabled
- CONFIG_NF_NAT: enabled
- CONFIG_NF_NAT_NEEDED: enabled
Optional Features:
- CONFIG_MEMCG_SWAP: missing
- CONFIG_RESOURCE_COUNTERS: enabled
- CONFIG_CGROUP_PERF: enabled
- Storage Drivers:
- "aufs":
- CONFIG_AUFS_FS: missing
- CONFIG_EXT4_FS_POSIX_ACL: enabled
- CONFIG_EXT4_FS_SECURITY: missing
- "btrfs":
- CONFIG_BTRFS_FS: enabled
- "devicemapper":
- CONFIG_BLK_DEV_DM: enabled
- CONFIG_DM_THIN_PROVISIONING: missing
- CONFIG_EXT4_FS: enabled
- CONFIG_EXT4_FS_POSIX_ACL: enabled
- CONFIG_EXT4_FS_SECURITY: missing


Docker: Present and Future

Docker: Present and Future
http://www.infoq.com/articles/docker-future

Docker - the story so far

Docker is a toolset for Linux containers designed to ‘build, ship and run’ distributed applications. It was first released as an open source project by DotCloud in March 2013. The project quickly became popular, leading to DotCloud rebranded as Docker Inc (and ultimately selling off their original PaaS business). Docker 1.0 was released in June 2014, and the monthly release cadence that led up to the June release has been sustained since.

The 1.0 release marked the point where Docker Inc considered the platform sufficiently mature to be used in production (with the company and partners providing paid for support options). The monthly release of point updates shows that the project is still evolving quickly, adding new features, and addressing issues as they are found. The project has however successfully decoupled ‘ship’ from ‘run’, so images sourced from any version of Docker can be used with any other version (with both forward and backward compatibility), something that provides a stable foundation for Docker use despite rapid change.

The growth of Docker into one of the most popular open source projects could be perceived as hype, but there is a great deal of substance. Docker has attracted support from many brand names across the industry, including Amazon, Canonical, CenturyLink, Google, IBM, Microsoft, New Relic, Pivotal, Red Hat and VMware. This is making it almost ubiquitously available wherever Linux can be found. In addition to the big names many startups are growing up around Docker, or changing direction to be better aligned with Docker. Those partnerships (large and small) are helping to drive rapid evolution of the core project and its surrounding ecosystem.
 

A brief technical overview of Docker

Docker makes use of Linux kernel facilities such as cGroups, namespaces and SElinux to provide isolation between containers. At first Docker was a front end for the LXC container management subsystem, but release 0.9 introduced libcontainer, which is a native Go language library that provides the interface between user space and the kernel.
Containers sit on top of a union file system, such as AUFS, which allows for the sharing of components such as operating system images and installed libraries across multiple containers. The layering approach in the filesystem is also exploited by the Dockerfile DevOps tool, which is able to cache operations that have already completed successfully. This can greatly speed up test cycles by taking out the wait time usually taken to install operating systems and application dependencies. Shared libraries between containers can also reduce RAM footprint.
A container is started from an image, which may be locally created, cached locally, or downloaded from a registry. Docker Inc operates the Docker Hub public registry, which hosts official repositories for a variety of operating systems, middleware and databases. Organisations and individuals can host public repositories for images at Docker Hub, and there are also subscription services for hosting private repositories. Since an uploaded image could contain almost anything Docker Hub provides an automated build facility (that was previously called ‘trusted build’) where images are constructed from a Dockerfile that serves as a manifest for the contents of the image.
....


docker - ecosystem



docker-ecosystem
http://www.mindmeister.com/389671722/docker-ecosystem


2014-12-09

docker - aboutus


By The Numbers - 2014.12.09
https://www.docker.com/company/aboutus/
  • 16,000 GitHub stars
  • 60 million Docker Engine downloads
  • 40,000 "Dockerized" applications in the Docker Hub Registry
  • 128 Docker Meetup Groups in 43 countries
  • 700+ community contributors
  • 40,000 third-party projects on GitHub using Docker as well as partnerships spanning PaaS, operating systems, hosting services, CI platforms, and more.
  • Over 50 user-generated case studies available from companies such as eBay, Rackspace, New Relic, Gilt, Spotify, Cloudflare, Yandex, Cambridge Healthcare, Yelp and RelatelQ.

Docker

Build, Ship and Run Any App, Anywhere

Docker - An open platform for distributed applications for developers and sysadmins.
https://www.docker.com/