mirror of
https://github.com/linuxkit/linuxkit.git
synced 2025-07-25 03:34:58 +00:00
examples: Move the Docker for Mac blueprint to examples
- merge base.yml and docker-ce.yml to docker-for-mac.yml - Adjust the README Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
This commit is contained in:
parent
f43b62a35b
commit
8028f68e0a
@ -1,49 +0,0 @@
|
|||||||
# Blueprints
|
|
||||||
|
|
||||||
This directory will contain the blueprints for base systems on the platforms that we support with LinuxKit.
|
|
||||||
|
|
||||||
These will be used for running tests, and for the low level parts of blueprints for higher level systems.
|
|
||||||
|
|
||||||
These include all the platforms that Docker has editions on, and all platforms that our community supports.
|
|
||||||
The detailed blueprints will be addded soon for at least the following platforms. There are WIP versions in
|
|
||||||
the [examples/](../examples/) directory.
|
|
||||||
|
|
||||||
- MacOS
|
|
||||||
- Windows Hyper-V
|
|
||||||
- VMWare
|
|
||||||
- KVM
|
|
||||||
- AWS
|
|
||||||
- Azure
|
|
||||||
- GCP
|
|
||||||
- BlueMix
|
|
||||||
- Packet.net
|
|
||||||
- ...
|
|
||||||
|
|
||||||
|
|
||||||
### Docker for Mac
|
|
||||||
|
|
||||||
An initial blueprint for the open source components of Docker for Mac is available in [docker-for-mac](docker-for-mac). The blueprint has support for controlling `dockerd` from the host via `vsudd` and port forwarding with VPNKit. It requires HyperKit, VPNKit and a Docker client on the host to run. The easiest way to install these at the moment is to install a recent version of Docker for Mac.
|
|
||||||
|
|
||||||
To build it with the latest Docker CE:
|
|
||||||
|
|
||||||
```
|
|
||||||
$ linuxkit build -name docker-for-mac base.yml docker-ce.yml
|
|
||||||
```
|
|
||||||
|
|
||||||
To run the VM with a 4G disk:
|
|
||||||
|
|
||||||
```
|
|
||||||
linuxkit run hyperkit -networking=vpnkit -vsock-ports=2376 -disk size=4096M -data-file ./metadata.json docker-for-mac
|
|
||||||
```
|
|
||||||
|
|
||||||
In another terminal you should now be able to access docker via the socket `guest.00000947` in the state directory (`docker-for-mac-state/` by default):
|
|
||||||
|
|
||||||
```
|
|
||||||
$ docker -H unix://docker-for-mac-state/guest.00000948 ps
|
|
||||||
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
|
|
||||||
```
|
|
||||||
|
|
||||||
### Linux Containers On Windows (LCOW)
|
|
||||||
|
|
||||||
The LCOW blueprint has moved to [its own
|
|
||||||
repository](https://github.com/linuxkit/lcow).
|
|
@ -1,31 +0,0 @@
|
|||||||
services:
|
|
||||||
# Run dockerd with the vpnkit userland proxy from the vpnkit-forwarder container.
|
|
||||||
# Bind mounts /var/run to allow vsudd to connect to docker.sock, /var/vpnkit
|
|
||||||
# for vpnkit coordination and /run/config/docker for the configuration file.
|
|
||||||
- name: docker-dfm
|
|
||||||
image: docker:17.07.0-ce-dind
|
|
||||||
capabilities:
|
|
||||||
- all
|
|
||||||
net: host
|
|
||||||
mounts:
|
|
||||||
- type: cgroup
|
|
||||||
options: ["rw","nosuid","noexec","nodev","relatime"]
|
|
||||||
binds:
|
|
||||||
- /etc/resolv.conf:/etc/resolv.conf
|
|
||||||
- /var/lib/docker:/var/lib/docker
|
|
||||||
- /lib/modules:/lib/modules
|
|
||||||
- /var/vpnkit:/port # vpnkit control 9p mount
|
|
||||||
- /var/run:/var/run
|
|
||||||
- /run/config/docker:/var/config/docker
|
|
||||||
- /usr/bin/vpnkit-expose-port:/usr/bin/vpnkit-expose-port # userland proxy
|
|
||||||
- /usr/bin/vpnkit-iptables-wrapper:/usr/bin/iptables # iptables wrapper
|
|
||||||
command: [ "/usr/local/bin/docker-init", "/usr/local/bin/dockerd", "--",
|
|
||||||
"--config-file", "/var/config/docker/daemon.json",
|
|
||||||
"--swarm-default-advertise-addr=eth0",
|
|
||||||
"--userland-proxy-path", "/usr/bin/vpnkit-expose-port",
|
|
||||||
"--storage-driver", "overlay2" ]
|
|
||||||
runtime:
|
|
||||||
mkdir: ["/var/lib/docker"]
|
|
||||||
trust:
|
|
||||||
org:
|
|
||||||
- library
|
|
@ -1,10 +0,0 @@
|
|||||||
{
|
|
||||||
"docker": {
|
|
||||||
"entries": {
|
|
||||||
"daemon.json": {
|
|
||||||
"perm": "0644",
|
|
||||||
"content": "{ \"debug\": true }"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -35,7 +35,7 @@ supported and the disks are in raw format.
|
|||||||
HyperKit sends an ACPI power event when it receives SIGTERM to allow the VM to
|
HyperKit sends an ACPI power event when it receives SIGTERM to allow the VM to
|
||||||
shut down properly. The VM has to be able to receive ACPI events to initiate the
|
shut down properly. The VM has to be able to receive ACPI events to initiate the
|
||||||
shutdown. This is provided by the [`acpid` package](../pkg/acpid). An example
|
shutdown. This is provided by the [`acpid` package](../pkg/acpid). An example
|
||||||
is available in the [Docker for Mac blueprint](../blueprints/docker-for-mac/base.yml).
|
is available in the [Docker for Mac example](../examples/docker-for-mac.yml).
|
||||||
|
|
||||||
## Networking
|
## Networking
|
||||||
|
|
||||||
|
29
examples/docker-for-mac.md
Normal file
29
examples/docker-for-mac.md
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
# Docker for Mac
|
||||||
|
|
||||||
|
[`docker-for-mac.yml`](./docker-for-mac.yml) contains an example use
|
||||||
|
of the open source components of Docker for Mac. The example has
|
||||||
|
support for controlling `dockerd` from the host via `vsudd` and port
|
||||||
|
forwarding with VPNKit. It requires HyperKit, VPNKit and a Docker
|
||||||
|
client on the host to run. The easiest way to install these at the
|
||||||
|
moment is to install a recent version of Docker for Mac.
|
||||||
|
|
||||||
|
To build it with the latest Docker CE:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ linuxkit build docker-for-mac.yml
|
||||||
|
```
|
||||||
|
|
||||||
|
To run the VM with a 4G disk:
|
||||||
|
|
||||||
|
```
|
||||||
|
linuxkit run hyperkit -networking=vpnkit -vsock-ports=2376 -disk size=4096M -data-file ./metadata.json docker-for-mac
|
||||||
|
```
|
||||||
|
|
||||||
|
In another terminal you should now be able to access docker via the
|
||||||
|
socket `guest.00000947` in the state directory
|
||||||
|
(`docker-for-mac-state/` by default):
|
||||||
|
|
||||||
|
```
|
||||||
|
$ docker -H unix://docker-for-mac-state/guest.00000948 ps
|
||||||
|
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
|
||||||
|
```
|
@ -1,4 +1,4 @@
|
|||||||
# This is a blueprint for building the open source components of Docker for Mac
|
# This is an example for building the open source components of Docker for Mac
|
||||||
kernel:
|
kernel:
|
||||||
image: linuxkit/kernel:4.9.77
|
image: linuxkit/kernel:4.9.77
|
||||||
cmdline: "console=ttyS0 page_poison=1"
|
cmdline: "console=ttyS0 page_poison=1"
|
||||||
@ -79,7 +79,35 @@ services:
|
|||||||
# When the host resumes from sleep, force a clock resync
|
# When the host resumes from sleep, force a clock resync
|
||||||
- name: host-timesync-daemon
|
- name: host-timesync-daemon
|
||||||
image: linuxkit/host-timesync-daemon:085e1910de6f311f96a823eaa10ffd6d92ec9679
|
image: linuxkit/host-timesync-daemon:085e1910de6f311f96a823eaa10ffd6d92ec9679
|
||||||
|
# Run dockerd with the vpnkit userland proxy from the vpnkit-forwarder container.
|
||||||
|
# Bind mounts /var/run to allow vsudd to connect to docker.sock, /var/vpnkit
|
||||||
|
# for vpnkit coordination and /run/config/docker for the configuration file.
|
||||||
|
- name: docker-dfm
|
||||||
|
image: docker:17.07.0-ce-dind
|
||||||
|
capabilities:
|
||||||
|
- all
|
||||||
|
net: host
|
||||||
|
mounts:
|
||||||
|
- type: cgroup
|
||||||
|
options: ["rw","nosuid","noexec","nodev","relatime"]
|
||||||
|
binds:
|
||||||
|
- /etc/resolv.conf:/etc/resolv.conf
|
||||||
|
- /var/lib/docker:/var/lib/docker
|
||||||
|
- /lib/modules:/lib/modules
|
||||||
|
- /var/vpnkit:/port # vpnkit control 9p mount
|
||||||
|
- /var/run:/var/run
|
||||||
|
- /run/config/docker:/var/config/docker
|
||||||
|
- /usr/bin/vpnkit-expose-port:/usr/bin/vpnkit-expose-port # userland proxy
|
||||||
|
- /usr/bin/vpnkit-iptables-wrapper:/usr/bin/iptables # iptables wrapper
|
||||||
|
command: [ "/usr/local/bin/docker-init", "/usr/local/bin/dockerd", "--",
|
||||||
|
"--config-file", "/var/config/docker/daemon.json",
|
||||||
|
"--swarm-default-advertise-addr=eth0",
|
||||||
|
"--userland-proxy-path", "/usr/bin/vpnkit-expose-port",
|
||||||
|
"--storage-driver", "overlay2" ]
|
||||||
|
runtime:
|
||||||
|
mkdir: ["/var/lib/docker"]
|
||||||
|
|
||||||
trust:
|
trust:
|
||||||
org:
|
org:
|
||||||
- linuxkit
|
- linuxkit
|
||||||
|
- library
|
Loading…
Reference in New Issue
Block a user