Commit Graph

337 Commits

Author SHA1 Message Date
Justin Cormack
39e53686c8 more liberal check for block devices
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-05-06 23:04:13 +01:00
Justin Cormack
25b6f73f37 clean docker.git
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-05-04 18:52:22 +01:00
Ian Campbell
b4722c2533 vsudd: Reduce logging
Previously the logs for a single connection would be something like:

2016/05/04 12:44:41 171 Accepted connection on fd 5 from 00000002.00010006
2016/05/04 12:44:41 171 Connected to docker &{{0xc82008a5b0}}
2016/05/04 12:44:44 171 copying from vsock to docker:  4465 bytes done
2016/05/04 12:44:44 171 copying from docker to vsock:  1324 bytes done
2016/05/04 12:44:44 171 Done. read: 4465 written: 1324
2016/05/04 12:44:44 171 Closing docker &{{0xc82008a5b0}}
2016/05/04 12:44:44 171 Closing vsock &{0xc820086840}

The "Connected" and "Closing" lines are not useful now that it is debugged and
working well. The "copying..." lines are redundant with the "Done" line. Reduce
to just:

2016/05/04 14:00:41 4 Accepted connection on fd 10 from 00000002.00010003
2016/05/04 14:00:41 4 Done. read: 90 written: 145

Signed-off-by: Ian Campbell <ian.campbell@docker.com>
2016-05-04 15:01:47 +01:00
Justin Cormack
921aaa895e reread partition table and be more careful if no partitions
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-05-04 14:56:17 +01:00
Justin Cormack
f7fa90b181 remove ability to set hostname as no longer needed. Hard code llmnrd name as 'docker'
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-05-04 13:02:26 +01:00
David Scott
34b0d7dc1a docker: argument is now "--userland-proxy-path"
This was changed from "--userland-proxy-bin" in response to review
feedback.

Signed-off-by: David Scott <dave.scott@docker.com>
2016-04-29 14:56:36 +01:00
Justin Cormack
59e8fd98b1 Merge pull request #114 from djs55/docker.1.11.1
Update docker to 1.11.1
2016-04-29 14:15:34 +01:00
David Scott
fd3c26feae Update docker to 1.11.1
Signed-off-by: David Scott <dave.scott@docker.com>
2016-04-29 14:00:45 +01:00
David Scott
198dc8ba73 proxy: bind the IP port as well as the vsock port
Previously the proxy would listen only on the vsock port, which is
fine for accessing the port on the host, but if a container also wants
to access the port (e.g. via `--net=host` and using the Moby IP) then
we need to listen on the IP too.

Related to [docker/pinata#2854]

Signed-off-by: David Scott <dave.scott@docker.com>
2016-04-29 13:53:02 +01:00
Justin Cormack
80c3b91b86 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
281d6a21de 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
c470c2f0fa 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
501301a849 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
Dave Scott
da23023a92 Merge pull request #109 from djs55/fix-udp-proxy
proxy: add support for UDP
2016-04-22 18:03:40 +01:00
David Scott
5dee7f7bfd proxy: fix gofmt violations
Signed-off-by: David Scott <dave.scott@docker.com>
2016-04-22 16:10:36 +01:00
David Scott
610dac2fb7 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
e940e12abc 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
caeb0d53cc 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
03ea441933 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
3870705eaf 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
abbafd82f1 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
58ad1b7161 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
Rolf Neugebauer
d93ef30ce7 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
f279329456 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
89e8ac2612 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
0ef55d5da1 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
59814bc752 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
59310aec70 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
Dave Scott
85d42d5c03 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
3ee0d40dd2 Revert "mdnstool: add support for a "hybrid" network mode"
This reverts commit 67205f62d9.
2016-04-18 18:47:49 +01:00
Justin Cormack
79e0a65f87 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
034fc7a5be 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
35b8324179 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
Dave Scott
51576d7564 Merge pull request #100 from djs55/multiple-nics
Support 1 or 2 NICs
2016-04-17 20:53:48 +01:00
Justin Cormack
0091f8fc92 Merge pull request #97 from docker/win-dev
Merge EFI ISO build
2016-04-16 19:53:06 +01:00
David Scott
1477dee600 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 Sheets
1113c21644 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
fc163942a5 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
Dave Scott
3e734a4edc 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
b2abc289ef 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
3ddc98d1b6 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
b3f82f045a proxy: vendor github.com/djs55/vsock
Signed-off-by: David Scott <dave.scott@docker.com>
2016-04-15 17:43:10 +01:00
David Scott
9100625204 proxy: move vendor/libproxy to ./libproxy
vendor should be used for things with fully-qualified names,

Signed-off-by: David Scott <dave.scott@docker.com>
2016-04-15 17:29:23 +01:00
David Scott
a48307b5e7 proxy: calling Close() on the Accept()ing fd won't cause it to return
This seems to be a difference between the AF_VSOCK and AF_INET
implementations. We work around it by exiting the proxy process
immediately, which will clean up resources anyway.

Signed-off-by: David Scott <dave.scott@docker.com>
2016-04-15 17:24:56 +01:00
David Scott
586d9c0598 proxy: fix up the vsock interface
- don't try to create a `FileConn` because the Go library sees through
  the scam and rejects it
- explicitly keep a reference to the `ctl` file just in case the GC
  decides its dead and should be closed.

Signed-off-by: David Scott <dave.scott@docker.com>
2016-04-15 17:24:56 +01:00
David Scott
1d3b8b566e proxy: tell the /port server the real external IP address
Before this we accidentally told it the vsock address, which obviously
isn't much good.

Signed-off-by: David Scott <dave.scott@docker.com>
2016-04-15 17:24:56 +01:00
David Scott
b0c4fdae37 proxy: we don't need to explicitly unexposePort any more
The port will be automatically removed when the fd/fid is closed by
a process exit/crash, or by a hypervisor crash.

Signed-off-by: David Scott <dave.scott@docker.com>
2016-04-15 17:24:56 +01:00
David Scott
e4f405be26 proxy: request a vsock connection rather than a TCP/IP one
Note this means we don't need to figure out our local IP address.

Signed-off-by: David Scott <dave.scott@docker.com>
2016-04-15 17:24:56 +01:00
David Scott
403ce4e696 proxy: libproxy: add a case for VsockAddr types
The `NewProxy` function already knows how to deal with `net.UDPAddr`
and `net.TCPAddr`, this patch adds similar support for `vsock.VsockAddr`.

Signed-off-by: David Scott <dave.scott@docker.com>
2016-04-15 17:24:56 +01:00
David Scott
2f80e98e7f proxy: vsock connections support CloseRead and CloseWrite
This patch adds a wrapper around the `net.Conn` to include the
`CloseRead` and `CloseWrite` implementations. This patch also
exposes the `VsockAddr` type, which is similar to `TCPAddr` and
`UDPAddr`.

Signed-off-by: David Scott <dave.scott@docker.com>
2016-04-15 17:24:56 +01:00