mirror of https://github.com/docker/docs.git
Incorporate suggested updates
This commit is contained in:
parent
fe67ba10a6
commit
f5ab105cce
|
@ -6,29 +6,51 @@ redirect_from:
|
|||
title: Leverage multi-CPU architecture support
|
||||
notoc: true
|
||||
---
|
||||
Docker images can support multiple architectures, which means that a single
|
||||
image may contain variants for different architectures, and sometimes for different
|
||||
operating systems, such as Windows.
|
||||
|
||||
Docker Desktop for Mac provides `binfmt_misc` multi architecture support, so you can run
|
||||
containers for different Linux architectures, such as `arm`, `mips`, `ppc64le`,
|
||||
and even `s390x`.
|
||||
When running an image with multi-architecture support, `docker` will
|
||||
automatically select an image variant which matches your OS and architecture.
|
||||
|
||||
Most of the official images on Docker Hub provide a [variety of architectures](https://github.com/docker-library/official-images#architectures-other-than-amd64).
|
||||
For example, the `busybox` image supports `amd64`, `arm32v5`, `arm32v6`,
|
||||
`arm32v7`, `arm64v8`, `i386`, `ppc64le`, and `s390x`. When running this image
|
||||
on an `x86_64` / `amd64` machine, the `x86_64` variant will be pulled and run,
|
||||
which can be seen from the output of the `uname -a` command that's run inside
|
||||
the container:
|
||||
|
||||
```bash
|
||||
$ docker run busybox uname -a
|
||||
|
||||
Linux 82ef1a0c07a2 4.9.125-linuxkit #1 SMP Fri Sep 7 08:20:28 UTC 2018 x86_64 GNU/Linux
|
||||
```
|
||||
|
||||
**Docker Desktop for Mac** provides `binfmt_misc` multi-architecture support,
|
||||
which means you can run containers for different Linux architectures
|
||||
such as `arm`, `mips`, `ppc64le`, and even `s390x`.
|
||||
|
||||
This does not require any special configuration in the container itself as it uses
|
||||
<a href="http://wiki.qemu.org/" target="_blank">qemu-static</a> from the Docker for
|
||||
Mac VM.
|
||||
<a href="http://wiki.qemu.org/" target="_blank">qemu-static</a> from the **Docker for
|
||||
Mac VM**. Because of this, you can run an ARM container, like the `arm32v7` or `ppc64le`
|
||||
variants of the busybox image:
|
||||
|
||||
You can run an ARM container, like the <a href="https://www.balena.io/what-is-balena/" target="_blank">
|
||||
balena</a> arm builds:
|
||||
|
||||
```
|
||||
$ docker run balenalib/armv7hf-debian uname -a
|
||||
|
||||
Linux 3d3ffca44f6e 4.9.125-linuxkit #1 SMP Fri Sep 7 08:20:28 UTC 2018 armv7l GNU/Linux
|
||||
|
||||
$ docker run justincormack/ppc64le-debian uname -a
|
||||
|
||||
Linux edd13885f316 4.1.12 #1 SMP Tue Jan 12 10:51:00 UTC 2016 ppc64le GNU/Linux
|
||||
### arm32v7 variant
|
||||
```bash
|
||||
$ docker run arm32v7/busybox uname -a
|
||||
|
||||
Linux 9e3873123d09 4.9.125-linuxkit #1 SMP Fri Sep 7 08:20:28 UTC 2018 armv7l GNU/Linux
|
||||
```
|
||||
|
||||
Multi architecture support makes it easy to build <a href="https://blog.docker.com/2017/11/multi-arch-all-the-things/" target="_blank">
|
||||
multi architecture Docker images</a> or experiment with ARM images and binaries
|
||||
from your Mac.
|
||||
### ppc64le variant
|
||||
```bash
|
||||
$ docker run ppc64le/busybox uname -a
|
||||
|
||||
Linux 57a073cc4f10 4.9.125-linuxkit #1 SMP Fri Sep 7 08:20:28 UTC 2018 ppc64le GNU/Linux
|
||||
```
|
||||
|
||||
Notice that this time, the `uname -a` output shows `armv7l` and
|
||||
`ppc64le` respectively.
|
||||
|
||||
Multi-architecture support makes it easy to build <a href="https://blog.docker.com/2017/11/multi-arch-all-the-things/" target="_blank">multi-architecture Docker images</a> or experiment with ARM images and binaries from your Mac.
|
||||
|
||||
|
|
Loading…
Reference in New Issue