Commit Graph

582 Commits

Author SHA1 Message Date
Nathan LeClaire
54c89599ce Cache kernel source download
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2016-04-27 22:45:17 +00:00
Justin Cormack
ff1a34c002 resize data partition if possible, allows disk to grow
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-04-27 12:13:11 +01:00
Justin Cormack
998e808da1 add resize2fs to build
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-04-27 12:10:23 +01:00
Justin Cormack
564998505f add oom killer config, so containers die before system daemons, fix #110
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-04-26 16:00:36 +01:00
Justin Cormack
084761b9db remove mdnstool now we are only using hostnet
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-04-26 14:45:50 +01:00
Justin Cormack
7d7ff562a7 Remove special case for insecure registry
This is now in the daemon.json config file see
https://github.com/docker/pinata/issues/2771

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-04-26 14:17:16 +01:00
Justin Cormack
100fd737ad Add a local prefix '-moby' to the kernel name
We are now using a custom kernel not unmodified upstream, so
best to identify it.

Also fix https://github.com/docker/pinata/issues/2153

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-04-26 12:25:56 +01:00
Justin Cormack
5c61ee27f3 Switch from busybox mdev to kernel devtmpfs
This is simpler, and as a by-product should resolve
https://github.com/docker/pinata/issues/1968
as it uses the now-more-correct loop device names
that newer util-linux expects.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-04-25 12:03:32 +01:00
Justin Cormack
4d912f68c1 tidy up default device creation
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-04-25 12:00:48 +01:00
Justin Cormack
53af8a1b14 clean up apk cache after install to make image a little smaller
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-04-25 10:59:36 +01:00
Dave Scott
21bc5b91ea Merge pull request #109 from djs55/fix-udp-proxy
proxy: add support for UDP
2016-04-22 18:03:40 +01:00
David Scott
8ad2ba163b proxy: fix gofmt violations
Signed-off-by: David Scott <dave.scott@docker.com>
2016-04-22 16:10:36 +01:00
David Scott
f841ba39a2 proxy: fix the marshalling of the UDP frames
- the initial length field should be the total length of the whole
  frame including the variable length field and including the length
  field
- when unmarshalling, return the number of bytes of payload actually
  unmarshalled and not the size of the unmarshal buffer

Signed-off-by: David Scott <dave.scott@docker.com>
2016-04-22 15:35:21 +01:00
David Scott
927a4d7b69 proxy: listen on vsock before requesting a connection
The 9P operations tell the host to connect to the vsock port in the
UDP case, so always listen before sending the 9P request.

Signed-off-by: David Scott <dave.scott@docker.com>
2016-04-22 15:32:22 +01:00
David Scott
2fa7efbbb7 proxy: add an initial length to the marshalled frames
Since the header is variable length it's useful to write a length
field first, so the peer can read the rest of the packet as a block.

Signed-off-by: David Scott <dave.scott@docker.com>
2016-04-22 11:42:24 +01:00
David Scott
1aabf0ee49 proxy: implement the UDP marshalling/unmarshalling
Signed-off-by: David Scott <dave.scott@docker.com>
2016-04-21 16:52:31 +01:00
David Scott
9d04d3b339 proxy: prepare to encapsulate UDP datagrams over a vsock connection
A net.UDPListener is the datagram equivalent of a net.Conn. This patch
accepts at most one connection from vsock and attempts to read and write
UDP datagrams along it.

Signed-off-by: David Scott <dave.scott@docker.com>
2016-04-21 16:26:28 +01:00
David Scott
3e687cd348 proxy: create a udpListener interface
This represents what is needed from the frontend side of the proxy:

- the ability to receive a UDP datagram and know who it is from
- the ability to send a UDP datagram to a particular destination
- the ability to close

Signed-off-by: David Scott <dave.scott@docker.com>
2016-04-21 15:06:09 +01:00
David Scott
969760395d proxy: map TCP ports at 0x10000-0x20000, and UDP at 0x20000-
The proxy process command-line arguments assume we're exposing TCP
or UDP ports on Moby's public IPs. Instead we're forwarding over vsock
where we must map the Moby ports onto vsock ports. Normally TCP and
UDP ports are different, but with vsock there is only one space of
port numbers so we have to map them into different ranges.

This patch maps Moby ports as follows:

- TCP port x onto vsock port 0x10000 + x
- UDP port x onto vsock port 0x20000 + x

Signed-off-by: David Scott <dave.scott@docker.com>
2016-04-21 14:45:55 +01:00
Justin Cormack
3b5fe4c972 Merge pull request #107 from rneugeba/hypervsocks
Initial Hyper-V sockets support
2016-04-21 14:14:25 +01:00
Rolf Neugebauer
145d4d71d3 9pudc: remove binary, which probably was accidentally checked in
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2016-04-21 14:02:13 +01:00
Rolf Neugebauer
de93864289 vsudd: start vsudd on Windows against a GUID
Using 23a432c2-537a-4291-bcb5-d62504644739 as the GUID (randomly generated).
The Windows host side will uses this as service ID, once written.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2016-04-21 14:02:13 +01:00
Rolf Neugebauer
347684d51e vsudd: Add support for Hyper-V sockets
- If a GUID is passed in use AF_HYPERV else AFVSOCK

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2016-04-21 14:02:13 +01:00
Rolf Neugebauer
e7cabf47bf vsudd: restructure to make it easier to add support for HyperV sockets
- Move VSOCK listen code into separate functions
- Remove VSOCK soecific code from handleOne()
- Turn 'port' argument into a string

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2016-04-21 14:02:13 +01:00
Rolf Neugebauer
0b15664c5d nc-vsock: Add support for Hyper-V sockets
Also tidy up some of the coding style to be more Linux kernel style
which most of the code already was.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2016-04-21 14:02:13 +01:00
David Sheets
5e99e645ec Merge pull request #106 from dsheets/transfused-ping
transfused: add a PING event for vsock RTT measurement
2016-04-21 11:32:32 +01:00
David Sheets
afd7458c01 transfused: add a PING event for vsock RTT measurement
Signed-off-by: David Sheets <dsheets@docker.com>
2016-04-21 10:22:57 +01:00
Justin Cormack
2a33259708 Merge pull request #105 from ijc25/drop-nc-vsock
Stop including nc-vsock in the initrd
2016-04-21 10:21:45 +01:00
Ian Campbell
2f38aae743 Stop including nc-vsock in the initrd
Signed-off-by: Ian Campbell <ian.campbell@docker.com>
2016-04-21 10:09:34 +01:00
Dave Scott
dfd2f63139 Merge pull request #102 from djs55/flip-nics
In a dual NIC config, ensure we use the same NIC for both routing and DNS
2016-04-18 19:08:50 +01:00
David Scott
012c212b1b Revert "mdnstool: add support for a "hybrid" network mode"
This reverts commit 67205f62d9.
2016-04-18 18:47:49 +01:00
David Scott
a3f10d9841 In a dual NIC configuration, use eth1 for routing
The NIC with the lowest metric is used for routing, while the NIC with
the highest index is used for DNS. Set the metric of eth1 to 199, so it
is higher-priority than eth0, so we use eth1 for everything in a dual
NIC configuration.

Signed-off-by: David Scott <dave.scott@docker.com>
2016-04-18 18:45:32 +01:00
Justin Cormack
2206cd8a30 remove extra copy of docker that build adds
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-04-18 16:48:37 +01:00
Justin Cormack
d7b363d348 fix arm build see #101 #96
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-04-18 11:34:14 +01:00
Justin Cormack
b152e5f20f use (old) binary build of docker arm for now as no cross build yet
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-04-18 11:17:32 +01:00
Justin Cormack
25b84af864 vsock support not building on arm see #96 #101
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-04-18 11:09:28 +01:00
Justin Cormack
d91be1ceab fix arm FROM
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-04-18 11:01:03 +01:00
Justin Cormack
4989d24c6b fix arm kernel build see #96
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-04-18 10:46:57 +01:00
Dave Scott
39ee82f7af Merge pull request #100 from djs55/multiple-nics
Support 1 or 2 NICs
2016-04-17 20:53:48 +01:00
Justin Cormack
633a4c91a5 Merge pull request #97 from docker/win-dev
Merge EFI ISO build
2016-04-16 19:53:06 +01:00
David Scott
67205f62d9 mdnstool: add support for a "hybrid" network mode
Normally we advertise $(hostname).local. by MDNS on eth0. If the new
"hybrid" networking mode is configured, we will use 2 NICs and eth1
will be connected via vmnet, and so we should run MDNS on it.

Signed-off-by: David Scott <dave.scott@docker.com>
2016-04-16 19:35:18 +01:00
David Scott
7478cc7c80 Configure a second possible NIC (eth1)
This makes it possible to have one NIC controlled by vmnet and another
controlled by slirp.

If eth1 doesn't exist then a harmless message is generated during
bootup: (with no appreciable delay)

 * Starting networking ... *   lo ... [ ok ]
 *   eth0 ... [ ok ]
 *   eth1 ...ip: ioctl 0x8913 failed: No such device
 [ !! ]

Signed-off-by: David Scott <dave.scott@docker.com>
2016-04-16 19:31:32 +01:00
David Sheets
799c4f242e Merge pull request #99 from dsheets/transfused-logging
transfused: make sure to flush the logging socket when we die
2016-04-16 18:59:22 +01:00
David Sheets
a2ffa99c25 transfused: make sure to flush the logging socket when we die
Signed-off-by: David Sheets <dsheets@docker.com>
2016-04-16 18:54:48 +01:00
David Sheets
e261a27917 Merge pull request #98 from dsheets/transfused-logging
transfused: push log messages over control channel if available
2016-04-16 18:12:22 +01:00
Rolf Neugebauer
514bcf27a2 moby: add support for building EFI bootable Moby images
Wrap a EFI stub loader with vmlinuz, initrd, and a short commandline
inside a single EFI binary.

Two files are generated:
- mobylinux.efi is a raw EFI file which some hypervisors can boot directly
- mobylinux-efi.iso: ISO image with just MobyLinux in the EFI partition

also:
- rename legacy BIOS mobylinux.iso to mobylinux-bios.iso
- Build mobylinux-efi.iso as part of the standard mobylinux build

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2016-04-16 16:38:45 +01:00
Dave Scott
bfeffb3d47 Merge pull request #94 from djs55/diagnostics-vsock
diagnostics: bind also on a vsock port
2016-04-16 13:44:39 +01:00
Dave Scott
864ce3b06c Merge pull request #89 from djs55/proxy-vsock
Switch the port forwarding docker-proxy replacement to vsock
2016-04-16 13:44:28 +01:00
Rolf Neugebauer
97a338b127 moby: add a cut-down version of gummiboot
The gummiboot EFI stub is used for creting a EFI bootable ISO

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2016-04-16 12:50:37 +01:00
David Scott
04c75c6c38 proxy: vendor github.com/djs55/vsock
Signed-off-by: David Scott <dave.scott@docker.com>
2016-04-15 17:43:10 +01:00