Re: static linked ISA executables

2015-01-30 Thread Brett Viren
Hi Yasha,

Yasha Karant ykar...@csusb.edu writes:

 My intention is this. There exist applications on various other
 distributions (Fedora, Ubuntu, SuSE, etc.) that do not exist and will
 not build under SL 7. The intent would be to setup a development
 machine of the other distro, build the application from source as
 static as possible (with bloat by this mechanism), include whatever
 directories or files that need to be present, and then run the thing
 under SL 7 . 

I suggest just simply trying it.  Here's what I see on Ubuntu 14.04 for
a trivial test:

$ cat foo.c
int main() {return 0;}
$ gcc -o foo -static foo.c

$ ldd foo
not a dynamic executable
$ ./foo
$ echo $?
0

I don't have SL7 handy, but copying that to RHEL 6.4 I get the same
results for those last three commands.

 In a worst case, rather that using a physical machine,
 install the other distro in a virtual machine under VirtualBox (that
 runs very well under SL 7) -- with enough disk space assigned to the
 Virtual Box machine to allow for such a build. Some applications (such
 as a full window manager) I would not consider, but there are others
 of more limited generality that I would.

I want to have easy access to a broad set of Linux distributions for the
purpose of building and testing some software stacks for the various
projects I'm involved in.  I started out using VirtualBox to run Fedora
Core 20 on my Ubuntu 14.04 workstation.  It worked but was a real pain
for me to set up and use and was noticeably slower when comparing the
same processes running on the native host.  There's no way I could
efficiently scale this setup beyond even one virtual host.  The setup
was enough of a show stopper but the disk space for multiple VM images
would start to become annoying.

I then switched to using Docker containers and have been hugely
impressed.  Setup and use is very straight-forward.  No messing around
with GUIs to start but also it lends itself to both scripting/automation
as well as one-off hacking.  I can not notice any runtime performance
difference between processes running in a container and ones running on
the native host.  And what's fairly killer is the smart way that images
are overlayed to maximize reuse.  It's kind of like git but for OS
images.

-Brett.



pgprXzA33AY62.pgp
Description: PGP signature


Re: Docker

2015-01-30 Thread Yasha Karant
You have answered my question.  There are, roughly, using old 
terminology, heavy-weight containers and light-weight containers.  
VMware used to offer heavy-weight containers that would run any MS Win 
application under Linux (presuming the same underlying ISA), but were n 
some instances extreme resource hogs.  Docker thus seems to be a 
light-weight container with strong limitations as to the differences in 
the underlying environment and OS structures (again, same ISA -- 
different ISAs require rather different approaches, including the old 
Sun approach on SPARC workstations of having a Sbus IA-32 coprocessor 
board to run a licensed copy of MS Win).


Yasha Karant

On 01/30/2015 10:14 AM, Jamie Duncan wrote:
Using containers is nothing like using a fully virtualized kernel. 
It's using cgroups, kernel namespaces, and selinux to isolate 
applications within Linux and make them easier to deliver.


So you can't run a windows app natively in docker. You'd have to run 
Wine in docker and execute your application that way. It's not a 
replacement for virtualizaton.


On Fri, Jan 30, 2015 at 12:45 PM, Yasha Karant ykar...@csusb.edu 
mailto:ykar...@csusb.edu wrote:


On a different (albeit related) thread, the recommendation was
made to use Docker to port alien applications and environments
(presumably with the ISA and basic machine components used by SL7)
to SL 7.  Looking at the Docker documentation and license (license
reproduced below), this seems feasible -- rather than using any VM
for the purpose of running such an application.

How many have tried Docker?  Does it work well?  For example, will
a legally licensed MS Win application that does not run under
Wine/CrossOver work under Docker under SL 7 the same as it would
under VirtualBox with a full install of say MS Win 8.1 (soon MS
Win 10)?  Can one make a Docker application package on the target
host (e.g., SL 7) or does one need first a full install of the
(virtual) base (e.g., DLLs and OS environment structures of the
original host of the application, e.g., MS Win) under which to
dockerize (e.g., run MS Win under VirtualBox under SL7,
dockerize a MS Win application, and then run the dockerized
application under SL7 without VirtualBox or any regular VM)?

from -- https://www.docker.com/company/aboutus/

Business Model

Docker, Inc. offers Docker-related products and services and is
creating a network of certified professional support, training,
and services providers. We are committed to keeping Docker open
source under the Apache 2.0 license.

Yasha Karant

End quote.




--
Thanks,

Jamie Duncan
@jamieeduncan



Re: Docker

2015-01-30 Thread Brett Viren
Yasha Karant ykar...@csusb.edu writes:

 For example, will a
 legally licensed MS Win application that does not run under
 Wine/CrossOver work under Docker under SL 7 the same as it would under
 VirtualBox with a full install of say MS Win 8.1 (soon MS Win 10)?

Docker containers run on Linux (the kernel) so, no, if your application
requires honest-to-badness MicroSoft Windows don't plan on using Docker.

 Can one make a Docker application package on the target host (e.g., SL
 7) or does one need first a full install of the (virtual) base

I don't know what target (host? guest?) means here.

A Docker image is a full OS (minus the kernel).  To start you write one
line in a Dockerfile like:

  FROM fedora:20

and do a docker build

You can follow up this line with additional instructions (such as yum
install ...) to further populate.

If you have a second image that shares some portion of these
instructions, or as you add more instructions, any prior existing
layer is reused.


I don't find a lot of bases for SL but there are ways to add new base
OSes from first principles (CMS has some scripts in github) and there
are established ones for centos.


-Brett.


pgp_1w7X1Cgek.pgp
Description: PGP signature


Docker

2015-01-30 Thread Yasha Karant
On a different (albeit related) thread, the recommendation was made to 
use Docker to port alien applications and environments (presumably 
with the ISA and basic machine components used by SL7) to SL 7.  Looking 
at the Docker documentation and license (license reproduced below), this 
seems feasible -- rather than using any VM for the purpose of running 
such an application.


How many have tried Docker?  Does it work well?  For example, will a 
legally licensed MS Win application that does not run under 
Wine/CrossOver work under Docker under SL 7 the same as it would under 
VirtualBox with a full install of say MS Win 8.1 (soon MS Win 10)?  Can 
one make a Docker application package on the target host (e.g., SL 7) or 
does one need first a full install of the (virtual) base (e.g., DLLs and 
OS environment structures of the original host of the application, e.g., 
MS Win) under which to dockerize (e.g., run MS Win under VirtualBox 
under SL7, dockerize a MS Win application, and then run the dockerized 
application under SL7 without VirtualBox or any regular VM)?


from -- https://www.docker.com/company/aboutus/

Business Model

Docker, Inc. offers Docker-related products and services and is creating 
a network of certified professional support, training, and services 
providers. We are committed to keeping Docker open source under the 
Apache 2.0 license.


Yasha Karant

End quote.


Re: Docker

2015-01-30 Thread Jamie Duncan
Using containers is nothing like using a fully virtualized kernel. It's
using cgroups, kernel namespaces, and selinux to isolate applications
within Linux and make them easier to deliver.

So you can't run a windows app natively in docker. You'd have to run Wine
in docker and execute your application that way. It's not a replacement for
virtualizaton.

On Fri, Jan 30, 2015 at 12:45 PM, Yasha Karant ykar...@csusb.edu wrote:

 On a different (albeit related) thread, the recommendation was made to use
 Docker to port alien applications and environments (presumably with the
 ISA and basic machine components used by SL7) to SL 7.  Looking at the
 Docker documentation and license (license reproduced below), this seems
 feasible -- rather than using any VM for the purpose of running such an
 application.

 How many have tried Docker?  Does it work well?  For example, will a
 legally licensed MS Win application that does not run under Wine/CrossOver
 work under Docker under SL 7 the same as it would under VirtualBox with a
 full install of say MS Win 8.1 (soon MS Win 10)?  Can one make a Docker
 application package on the target host (e.g., SL 7) or does one need first
 a full install of the (virtual) base (e.g., DLLs and OS environment
 structures of the original host of the application, e.g., MS Win) under
 which to dockerize (e.g., run MS Win under VirtualBox under SL7,
 dockerize a MS Win application, and then run the dockerized application
 under SL7 without VirtualBox or any regular VM)?

 from -- https://www.docker.com/company/aboutus/

 Business Model

 Docker, Inc. offers Docker-related products and services and is creating a
 network of certified professional support, training, and services
 providers. We are committed to keeping Docker open source under the Apache
 2.0 license.

 Yasha Karant

 End quote.




-- 
Thanks,

Jamie Duncan
@jamieeduncan


Re: Docker

2015-01-30 Thread Yasha Karant

On 01/30/2015 10:32 AM, Brett Viren wrote:

Yasha Karant ykar...@csusb.edu writes:


For example, will a
legally licensed MS Win application that does not run under
Wine/CrossOver work under Docker under SL 7 the same as it would under
VirtualBox with a full install of say MS Win 8.1 (soon MS Win 10)?

Docker containers run on Linux (the kernel) so, no, if your application
requires honest-to-badness MicroSoft Windows don't plan on using Docker.


Can one make a Docker application package on the target host (e.g., SL
7) or does one need first a full install of the (virtual) base

I don't know what target (host? guest?) means here.


The application, say A, runs under environment (OS) X, not environment 
Y.  One wants A under Y.  The target is Y.  Can one build A under Y 
using the appropriate chunks
from X with Docker, or does one re-build (dockerise) A under X for 
target Y?  In the first event, one only needs to be running Y; in the 
second event, one needs to be running X to build for Y.


A Docker image is a full OS (minus the kernel).  To start you write one
line in a Dockerfile like:

   FROM fedora:20

and do a docker build

You can follow up this line with additional instructions (such as yum
install ...) to further populate.

If you have a second image that shares some portion of these
instructions, or as you add more instructions, any prior existing
layer is reused.


I don't find a lot of bases for SL but there are ways to add new base
OSes from first principles (CMS has some scripts in github) and there
are established ones for centos.


-Brett.
Presumably, any application that will run under CentOS, in particular, 
CentOS 7 that is the RHEL source release for other ports, such as SL 7, 
should be able to run under SL.  My understanding is that SL 7 is not 
built from the actual RHEL 7 source that is used to build RHEL 7 that is 
licensed for fee, but from the RHEL packaged CentOS source (CentOS now 
effectively being a unit of Red Hat, a for-profit corporation) that is 
used to build CentOS 7 (that, as with SL 7, is licensed for free as a 
binary installable executable system that requires no building from 
source per se).


Yasha