Commit Graph

652 Commits

Author SHA1 Message Date
David Scott
bf005cdd1e 9pmount-vsock: make a connection then execv /bin/mount
The magic options are
  -o trans=fd,rfdno=<FD>,wfdno=<FD>

Signed-off-by: David Scott <dave.scott@docker.com>
2016-05-21 13:56:36 +01:00
David Scott
9e353247cd 9pmount-vsock: add initial skeleton
Signed-off-by: David Scott <dave.scott@docker.com>
2016-05-21 13:56:36 +01:00
Dave Scott
3ae0db1280 Merge pull request #137 from rneugeba/vsock-up
Add (optional) Hyper-V socket support to vsudd and diagnosis
2016-05-19 06:09:51 -07:00
Rolf Neugebauer
ebb5604d71 vsudd: use vendor'ed hvsock/vsock modules
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2016-05-19 13:54:48 +01:00
Rolf Neugebauer
6c2056055c proxy: use share vendored go packages
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2016-05-19 13:54:48 +01:00
Rolf Neugebauer
245fa32d28 diagnostics: add support for hyper-V sockets
Use the new shared vendor'ed packages

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2016-05-19 13:54:48 +01:00
Rolf Neugebauer
cdfc424823 go: add the logrus package used by the proxy
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2016-05-19 11:49:49 +01:00
Rolf Neugebauer
2e14f1c2a9 go: vendor shared hvsock/vsock packages
These packages will be shared by a number of utilities
so vendoring them in a shared place.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2016-05-19 11:49:49 +01:00
Justin Cormack
92f6148566 Merge pull request #136 from dave-tucker/proxy_2
Only watch proxy if keys are in the db
2016-05-18 07:47:44 -05:00
Dave Tucker
50412a6769 Only watch proxy if keys are in the db
My last change fails if the proxy keys aren't in the db...

Signed-off-by: Dave Tucker <dt@docker.com>
2016-05-18 11:23:02 +01:00
Justin Cormack
a66704fdc6 use build-base not alpine-sdk as smaller
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-05-17 10:00:58 -05:00
Dave Tucker
354c62a6df Make hupper watch for proxy changes too
Signed-off-by: Dave Tucker <dt@docker.com>
2016-05-17 09:04:56 +01:00
Dave Tucker
3a02f608d5 Set proxy setting in Docker init script
Signed-off-by: Dave Tucker <dt@docker.com>
2016-05-16 12:07:01 +01:00
Justin Cormack
fc370b0c21 Revert "replace chronyd with sntpc, sync every 15s not 15m"
We should not use ntp.org this frequently, need to work out something
that uses host time mainly.

This reverts commit 382f99529d.
2016-05-10 11:29:16 +01:00
Justin Cormack
382f99529d replace chronyd with sntpc, sync every 15s not 15m
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-05-10 11:00:51 +01:00
Justin Cormack
eb64bfabbd 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
f86f4bfae4 clean docker.git
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-05-04 18:52:22 +01:00
Ian Campbell
726b9dfc80 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
d6d409ad80 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
43fde211f6 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
a326a8b5ab 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
ae67e725df 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
ae3aec0522 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
d5bd7d690a 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
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
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
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
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
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
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
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
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
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