

Question about Docker and supported ISAs - lch_ian

I am new to computer programming and computer architecture, and have a stupid question on the relationship between Docker and underlying hardware instruction set architecture (ISA). My question is: if Docker (or Linux Container in general) is built on top of OS of Linux, and also if Linux runs on various ISAs (e.g. x86, PowerPC, MIPS, ARM, etc.), why Docker cannot run on those ISAs out-of-box? By reading the post (https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=6709517), my impression is Docker may be able to run on different ISAs in the future, but so far only supports x86_64 and ARM. I wonder why is that, why cannot Docker run on Linux unmodified which runs on many ISAs? I guess my real question is what is the relationship between the layers (hardware &lt;-&gt; OS &lt;-&gt; Docker). Thanks for your comments!
======
wmf
Good question. In theory, Docker should be able to be compiled for all ISAs,
but it's written in Go and Go does not have compilers for many ISAs. (gccgo is
more portable but it's incompatible enough with real Go that it's a net
negative IMO.)

~~~
lch_ian
Thanks a lot for your answer.

