Victor Vieux
941e3e2ef0
wip
2013-07-11 17:18:28 +00:00
Victor Vieux
d918c7d9de
export portmapping in network.go
2013-07-10 14:09:35 +00:00
Louis Opter
fac0d87d00
Add support for UDP ( closes #33 )
...
API Changes
-----------
The port notation is extended to support "/udp" or "/tcp" at the *end*
of the specifier string (and defaults to tcp if "/tcp" or "/udp" are
missing)
`docker ps` now shows UDP ports as "frontend->backend/udp". Nothing
changes for TCP ports.
`docker inspect` now displays two sub-dictionaries: "Tcp" and "Udp",
under "PortMapping" in "NetworkSettings".
Theses changes stand true for the values returned by the HTTP API too.
This changeset will definitely break tools built upon the API (or upon
`docker inspect`). A less intrusive way to add UDP ports in `docker
inspect` would be to simply add "/udp" for UDP ports but it will still
break existing applications which tries to convert the whole field to an
integer. I believe that having two TCP/UDP sub-dictionaries is better
because it makes the whole thing more clear and more easy to parse right
away (i.e: you don't have to check the format of the string, split it
and convert the right part to an integer)
Code Changes
------------
Significant changes in network.go:
- A second PortAllocator is instantiated for the UDP range;
- PortMapper maintains separate mapping for TCP and UDP;
- The extPorts array in NetworkInterface is now an array of Nat objects
(so we can know on which protocol a given port was mapped when
NetworkInterface.Release() is called);
- TCP proxying on localhost has been moved away in network_proxy.go.
localhost proxy code rewrite in network_proxy.go:
We have to proxy the traffic between localhost:frontend-port and
container:backend-port because Netfilter doesn't work properly on the
loopback interface and DNAT iptable rules aren't applied there.
- Goroutines in the TCP proxying code are now explicitly stopped when
the proxy is stopped;
- UDP connection tracking using a map (more infos in [1]);
- Support for IPv6 (to be more accurate, the code is transparent to the
Go net package, so you can use, tcp/tcp4/tcp6/udp/udp4/udp6);
- Single Proxy interface for both UDP and TCP proxying;
- Full test suite.
[1] https://github.com/dotcloud/docker/issues/33#issuecomment-20010400
2013-07-09 17:42:35 -07:00
Victor Vieux
bf7d6cbb4a
rebase master
2013-07-08 13:26:29 +00:00
Caleb Spare
19121c16d9
Implement several golint suggestions, including:
...
* Removing type declarations where they're inferred
* Changing Url -> URL, Id -> ID in names
* Fixing snake-case names
2013-07-03 14:36:04 -07:00
Caleb Spare
1cf9c80e97
Mutex style change.
...
For structs protected by a single mutex, embed the mutex for more
concise usage.
Also use a sync.Mutex directly, rather than a pointer, to avoid the
need for initialization (because a Mutex's zero-value is valid and
ready to be used).
2013-07-02 15:53:08 -07:00
Victor Vieux
3042f11666
never remove the file and try to load it in start
2013-07-02 18:02:16 +00:00
Victor Vieux
27a137ccab
change file location
2013-07-02 17:02:42 +00:00
Victor Vieux
06b53e3fc7
store hostConfig to /tmp while container is running
2013-07-02 12:19:25 +00:00
Michael Crosby
b16ff9f859
Add Entrypoint to builder and container config
...
By setting an entrypoint in the Dockerfile this
allows one to run an image and only pass arguments.
2013-07-01 05:34:27 -09:00
Gabriel Monroy
67239957c9
- Fix a few bugs in external mount-bind integration
2013-06-26 15:10:38 -07:00
Solomon Hykes
d4e62101ab
* Runtime: better integration of external bind-mounts (run -b) into the volume subsystem (run -v)
2013-06-26 15:08:07 -07:00
Gabriel Monroy
4fdf11b2e6
+ Runtime: mount volumes from a host directory with 'docker run -b'
2013-06-26 15:07:31 -07:00
Victor Vieux
63e8a4ac74
Merge pull request #970 from titanous/go1.1-unreachable
...
Remove code unreachable using Go 1.1
2013-06-21 10:44:40 -07:00
unclejack
66910a7602
mark command as optional for docker run
2013-06-21 11:06:41 +03:00
Jonathan Rudenberg
50b70eeb68
Remove code unreachable using Go 1.1
2013-06-20 23:19:44 -04:00
Victor Vieux
ddf5a1940f
Merge branch 'master' into 22-add_sizes_images_and_containers-feature
2013-06-14 10:05:06 +00:00
Victor Vieux
697282d6ad
Merge pull request #804 from dotcloud/no_stdout_stale-fix
...
*Runtime: Fix stale command when stdout is not allocated
2013-06-13 04:22:29 -07:00
Guillaume J. Charmes
7169212683
Fix typo
2013-06-10 11:08:40 -07:00
Victor Vieux
bf63cb9045
bump to master again
2013-06-05 16:01:36 +00:00
Guillaume J. Charmes
63e80384ea
Fix nil pointer on some situatuion
2013-06-04 14:35:32 -07:00
Guillaume J. Charmes
7ef9833dbb
Put back panic for go1.0.3 compatibility
2013-06-04 14:26:40 -07:00
Victor Vieux
fd224ee590
linted names
2013-06-04 18:00:22 +00:00
Victor Vieux
86ada2fa5d
drop/omit
2013-06-04 13:51:12 +00:00
Victor Vieux
b515a5a9ec
go vet
2013-06-04 13:24:58 +00:00
Guillaume J. Charmes
0ca8844398
Fix stale command with stdout is not allocated
2013-06-03 17:39:29 -07:00
Victor Vieux
3afdd82e42
bump to master
2013-05-30 23:38:40 +00:00
Guillaume J. Charmes
88ef309a94
Finish resize implementation client and server
2013-05-24 14:44:16 -07:00
Guillaume J. Charmes
70d2123efd
Add resize endpoint to api
2013-05-23 19:33:28 -07:00
Victor Vieux
6fce89e60b
bump to master
2013-05-22 13:41:29 +00:00
Guillaume J. Charmes
2e69e1727b
Create a subpackage for utils
2013-05-14 22:37:35 +00:00
Victor Vieux
a91b710961
add sizes in images and containers
2013-05-13 15:14:20 +02:00
Jérôme Petazzoni
6f3e868a7b
Merge branch 'master' of github.com:dotcloud/docker into 471-cpu-limit
2013-05-10 14:44:50 -07:00
Jérôme Petazzoni
e36752e033
if -c is not specified, do not set cpu.shares (instead of using the default value of 1024)
2013-05-07 11:43:45 -07:00
Jérôme Petazzoni
efd9becb78
implement "-c" option to allocate a number of CPU shares to a container
2013-05-07 11:16:30 -07:00
Victor Vieux
10c0e99037
update to master
2013-05-07 19:23:50 +02:00
Guillaume J. Charmes
9db4972a70
Make sure the destination directory exists when using docker insert
2013-05-06 16:00:30 -07:00
Guillaume J. Charmes
9751483112
Add insert command in order to insert external files within an image
2013-05-06 16:00:30 -07:00
Victor Vieux
6f9b574f25
bump to 0.2.2
2013-05-06 11:53:00 +02:00
Guillaume J. Charmes
da01dd3d56
Merge remote-tracking branch 'origin/registry-update'
...
+ Registry: Add the new registry support
2013-05-05 07:13:25 -07:00
shin-
be75608906
Fixed checksum computing. Ensure checksum is computed when image metadata is loaded from disk. Fixed docker push workflow. Moved hash computing to utils
2013-05-06 10:56:10 -07:00
shin-
ea3374bcb0
Prepend hash method to the image checksum
2013-05-06 10:54:55 -07:00
shin-
630d358384
Fixed checksum representation
2013-05-06 10:54:50 -07:00
shin-
048fd671ef
Implemented checksum computation on image creation (necessary for new push primitive)
2013-05-06 10:52:42 -07:00
Victor Vieux
4f0bda2dd5
up to date with master
2013-05-02 18:36:23 +02:00
Guillaume J. Charmes
897cc573f0
Fix the graph.Create prototype
2013-05-02 09:23:29 -07:00
Guillaume J. Charmes
b0459adc27
Comply to the new graph.Create() prototype
2013-05-02 09:14:23 -07:00
Guillaume J. Charmes
3edd14b8c2
Implement the data volume removal
2013-05-02 09:14:23 -07:00
Guillaume J. Charmes
4099a31304
Implement the -volumes-from in order to mount volumes from an other container
2013-05-02 09:14:22 -07:00
Guillaume J. Charmes
6fb495bf6f
Move the id of volumes to Container (instead of Container.Config)
2013-05-02 09:14:22 -07:00
Guillaume J. Charmes
faf8daa7c6
Switch back config to map[string]struct{}
2013-05-02 09:14:22 -07:00
Guillaume J. Charmes
8d9aaee60b
Handle data volumes mount points
2013-05-02 09:14:22 -07:00
Guillaume J. Charmes
35d704c8a0
Change the volumes type to map[string]string to store both source and destination
2013-05-02 09:14:22 -07:00
Solomon Hykes
1df5f4094b
docker run -v PATH: bind a new data volume to a container
2013-05-02 09:14:22 -07:00
Victor Vieux
cf19be44a8
added run (wip), fixed ps and images, added port and tag
2013-04-23 18:20:53 +02:00
Guillaume J. Charmes
f926ed182f
Allow to kill/stop ghosts
2013-04-22 17:53:32 -07:00
Guillaume J. Charmes
d440782e17
Allow to kill container after docker server restarts
2013-04-22 17:52:38 -07:00
Guillaume J. Charmes
82848d4158
Allow to wait on container even after docker server restarts using lxc-info
2013-04-22 17:52:38 -07:00
Evan Wies
ffe16e3224
Fix typo (ghot -> ghost)
2013-04-22 18:37:06 -04:00
Solomon Hykes
76b40ad6c9
Merge remote-tracking branch 'origin/check_kernel_capabilities'
2013-04-20 17:40:25 -07:00
Solomon Hykes
931ca464a7
'docker ps' shows port mappings
2013-04-19 19:29:13 -07:00
Guillaume J. Charmes
e92c4b1f39
Merge pull request #415 from dotcloud/261-choose_grace_period-feature
...
added -t in docker stop and restart to choose grace period
2013-04-19 12:42:34 -07:00
Victor Vieux
b295239de2
added: info, history, logs, ps, start, stop, restart, rm, rmi
2013-04-19 15:24:37 +02:00
Guillaume J. Charmes
f68d107a13
Remove the NO_MEMORY_LIMIT constant
2013-04-18 21:08:20 -07:00
Guillaume J. Charmes
640efc2ed2
Add capabilities check to allow docker to run on kernel that does not have all options
2013-04-18 20:55:41 -07:00
Victor Vieux
1615bb08c7
added -t in docker stop and restart to choose grace period
2013-04-17 11:56:30 +02:00
Guillaume J. Charmes
7b0e96f1f4
Manually pass the env to docker-init instead of relying on lxc to pass it
2013-04-16 14:32:50 -07:00
Solomon Hykes
fdf3308260
Merge remote-tracking branch 'origin/396-disabling_memory_limit-feature'
2013-04-13 21:25:53 -07:00
Solomon Hykes
cdf90bb04b
Merge remote-tracking branch 'origin/96-dns_issue-fix'
2013-04-12 17:50:59 -07:00
Guillaume J. Charmes
1967c8342a
Allow to disable memory limit at compilation time
2013-04-12 10:48:20 -07:00
Guillaume J. Charmes
7673afc843
Allow use to set his own dns via -dns
2013-04-12 10:43:13 -07:00
Solomon Hykes
b1fbebb4a3
Fixed wording of ghost-related messages
2013-04-12 10:39:08 -07:00
Solomon Hykes
3527291b47
Merge remote-tracking branch 'origin/ghost_handling-fix'
2013-04-12 10:33:36 -07:00
Guillaume J. Charmes
bb22cd492e
Add unit test for hanging kill + fix other tests behaviour
2013-04-11 16:21:19 -07:00
Guillaume J. Charmes
313d13ea01
Detect and mark ghost container.
2013-04-11 09:26:17 -07:00
Guillaume J. Charmes
e68c04b722
force kill now use lxc-kill. Fixes #383
2013-04-11 09:04:04 -07:00
Guillaume J. Charmes
1f9f5eed5d
Put the resolv.conf path in a variable instead of being hardcoded within lxc
2013-04-10 18:23:34 -07:00
Solomon Hykes
1b7115a337
Merge remote-tracking branch 'origin/disable_signals-create_escape_sequence'
2013-04-09 12:56:32 -07:00
Guillaume J. Charmes
faa8843650
Look for the escape sequence only in tty mode
2013-04-09 12:55:17 -07:00
Guillaume J. Charmes
0d9e54367f
Fix deadlock on stop failure
2013-04-09 12:06:01 -07:00
Guillaume J. Charmes
1f70b1e15d
Implement an escape sequence in order to be able to detach from a container
2013-04-09 11:06:17 -07:00
Solomon Hykes
1716fccbcc
Merge remote-tracking branch 'origin/change_run_detach_behavious_tty_mode'
2013-04-09 10:39:13 -07:00
Guillaume J. Charmes
7c2b085d1a
Add inconditionnal lock in Start/Stop/Kill to avoid races
2013-04-09 09:09:54 -07:00
Guillaume J. Charmes
64c1b6d9cd
Change the behaviour of CmdRun in tty mode: dont kill the process uppon detach
2013-04-09 08:18:16 -07:00
Guillaume J. Charmes
329f4449dc
Remove the mutexes and use chan instead in order to handle the wait lock
2013-04-09 07:57:59 -07:00
Guillaume J. Charmes
99b5bec069
Fix run disconnect behavious in tty mode + add unit test to enforce it
2013-04-05 19:02:35 -07:00
Guillaume J. Charmes
7d8895545e
Cleanup pty variable names
2013-04-05 17:40:55 -07:00
Guillaume J. Charmes
33a5fe3bd4
Make sure the process start in his own session and grabs the terminal
2013-04-05 17:40:55 -07:00
Guillaume J. Charmes
847a8f45a4
Merge the 3 ptys in 1
2013-04-05 17:40:55 -07:00
Solomon Hykes
793c1ad990
Merge remote-tracking branch 'origin/219-default-bridge-2'
2013-04-05 14:02:16 -07:00
Solomon Hykes
2aad4a3478
Choose which TCP frontend port to allocate with '-p :PORT'
2013-04-04 22:58:01 -07:00
Solomon Hykes
3de51b7bfe
Merge branch 'master' of ssh://github.com/dotcloud/docker
2013-04-04 17:00:59 -07:00
Solomon Hykes
a58cd8c616
Merge pull request #322 from sa2ajj/port-map-nitpick
...
change option description to reflect the semantics
2013-04-04 16:39:54 -07:00
Solomon Hykes
586a79cca0
Merge remote-tracking branch 'dominikh/minor-code-touchups'
2013-04-04 16:20:37 -07:00
Solomon Hykes
26088a72b3
Merge remote-tracking branch 'dominikh/improve-attachopts'
2013-04-04 15:18:41 -07:00
Guillaume J. Charmes
d9a9bfc9c7
Make LXC aware of custom bridge
2013-04-03 16:15:44 -07:00
Dominik Honnef
4f36039e7b
clean up AttachOpts type
...
Primarily, there is no reason to have a pointer to a map. Furthermore,
make() can be used on AttachOpts directly.
2013-04-03 16:06:35 +02:00
Mikhail Sobolev
b74d1c9247
change option description to reflect the semantics
...
At least, for me, 'map' means that there are two values and one is "mapped" to
another.
In this case, just one value is provided (container's port), the other value is
automatically obtained (host's port) and the actual mapping can be seen using
``docker port`` command.
2013-04-03 16:37:56 +03:00
Dominik Honnef
22f1cc955d
replace unreachable returns with panics
...
Not only is this a more common idiom, it'll make finding bugs easier,
and it'll make porting to Go 1.1 easier.
Go 1.1 will not require the final return or panic because it has a
notion of terminating statements.
2013-04-03 11:18:23 +02:00
Solomon Hykes
15c3096e89
Merged attachStdin
2013-04-02 20:46:32 -07:00
Solomon Hykes
22d1622926
Merge remote-tracking branch 'robryk/writebroadcaster-stuff'
2013-04-02 20:35:13 -07:00
Solomon Hykes
c04af2a330
docker run [-a [stdin|stdout|stderr] [...]]: choose which streams to attach to when running a command. Fixes #234 .
2013-04-02 18:07:16 -07:00
Guillaume J. Charmes
ad2bbe23be
Close the broadcaster once they are not needed anymore
2013-04-02 12:19:01 -07:00
Guillaume J. Charmes
6882c78ce4
Add a stdincloser to container.Attach in order to close the client connection when needed
2013-04-02 12:18:20 -07:00
Solomon Hykes
aea2675f7b
Activate Config.StdinOnce at argument parsing
2013-04-02 11:02:19 -07:00
Robert Obryk
a83d87abd4
Renamed writeBroadcaster.Close() to CloseWriters().
2013-04-02 10:45:17 +02:00
Solomon Hykes
c808940c04
Refactored CmdRun and CmdAttach to use Container.Attach
2013-04-01 23:52:20 -07:00
Mikhail Sobolev
f65fc1e766
add host name parameter to "run" command
...
fixes #243
2013-04-02 01:26:17 +03:00
Mikhail Sobolev
dcc9dfb27d
make complex options to stand out
2013-04-02 01:26:17 +03:00
Caleb Spare
c298a91f95
Use a *println or *print function instead of *printf where appropriate.
2013-04-01 12:17:00 -07:00
Solomon Hykes
1632566ecb
Show shorthand image IDs for convenience. Shorthand IDs (or any non-conflicting prefix) can be used to lookup images
2013-03-31 22:11:55 -07:00
Solomon Hykes
a52a28b609
Temporarily disable a broken test (waiting for @creack to fix it), and silence a warning which pollutes unit tests but is complicated to fix
2013-03-31 22:05:14 -07:00
Solomon Hykes
54443c092c
gofmt
2013-03-31 22:04:59 -07:00
Dominik Honnef
6f9a67a7c7
Make IP allocator lazy
...
Instead of allocating all possible IPs in advance, generate them as
needed.
A loop will cycle through all possible IPs in sequential order,
allocating them as needed and marking them as in use. Once the loop
exhausts all IPs, it will wrap back to the beginning. IPs that are
already in use will be skipped. When an IP is released, it will be
cleared and be available for allocation again.
Two decisions went into this design:
1) Minimize memory footprint by only allocating IPs that are actually
in use
2) Minimize reuse of released IP addresses to avoid sending traffic to
the wrong containers
As a side effect, the functions for IP/Mask<->int conversion have been
rewritten to never be able to fail in order to reduce the amount of
error returns.
Fixes gh-231
2013-04-01 06:02:44 +02:00
Guillaume J. Charmes
d949e2804a
Add a check to avoid double start (resulting in dockerd to panic) and unit test for it
2013-03-31 14:15:10 -07:00
Solomon Hykes
0b9a3c86a2
Show shorthand container IDs for convenience. Shorthand IDs (or any non-conflicting prefix) can be used to lookup containers
2013-03-31 02:02:01 -07:00
Guillaume J. Charmes
4760749402
Close the containers stdin when the process dies
2013-03-30 09:08:53 -07:00
Guillaume J. Charmes
7efde5eb83
Fix a scope issue preventing the close of slave stdin pty ( #228 )
2013-03-30 09:07:54 -07:00
Guillaume J. Charmes
5252ab697c
Store the master ptys in order to close them when the process dies ( #228 )
2013-03-30 09:05:53 -07:00
Solomon Hykes
d0d5d5ff09
Merge pull request #265 from dotcloud/formating_debug_harmonize
...
Formating debug harmonize
2013-03-29 21:30:43 -07:00
Guillaume J. Charmes
0f7a4534c1
Do not log non-running containers
2013-03-29 08:46:06 -07:00
Guillaume J. Charmes
7a565a0479
Remove unused variable from container struct
2013-03-29 08:41:48 -07:00
Guillaume J. Charmes
69c2250ec2
Add some error checking in container monitor
2013-03-29 08:29:59 -07:00
Guillaume J. Charmes
d17f78c373
Harmonize the error management. Use fmt.Errorf instead of errors.New
2013-03-29 08:19:42 -07:00
Guillaume J. Charmes
ccac5b1382
Add debug infos
2013-03-29 08:18:43 -07:00
Maxim Treskin
6d72758f12
Remove unnecessary part of paths to lxc executables
2013-03-29 12:07:25 +07:00
Jonathan Rudenberg
a6da7f138c
Camelize some snake_case variable names
2013-03-28 20:12:23 -04:00
Guillaume J. Charmes
cca59081de
#189 Fix the env in TTY mode
2013-03-26 07:01:59 -07:00
shin-
2333be46aa
Re-enabled help for run command and added client-side error messages when arguments are missing
2013-03-26 08:31:26 -07:00
Guillaume J. Charmes
c85db1003b
Force xterm as TERM in tty mode
2013-03-25 19:20:18 -07:00
Guillaume J. Charmes
50bee2f811
Fix termcaps on the linux client
2013-03-25 18:44:05 -07:00
Solomon Hykes
bd63ae72e6
Merge branch 'master' of ssh://github.com/dotcloud/docker
2013-03-25 14:25:17 -07:00
shin-
c8ca50b483
Fixed issue #158 (docker crashes when docker run is called with not enough arguments)
2013-03-25 07:17:11 -07:00
Solomon Hykes
b32436cd2e
Prevent container.Kill() from crashing if container.cmd is nil
2013-03-23 19:51:35 -07:00
Solomon Hykes
6ce64e8458
Moved image name into config. runtime.Create() now receives a single Config parameter
2013-03-23 12:39:09 -07:00
Solomon Hykes
031f91df1a
runtime.Create receives an image name + Config. The Config includes all required runtime information: command, environment, ports etc.
2013-03-23 12:16:58 -07:00
Solomon Hykes
34fbaa5f6d
'docker run -e': set environment variables in a container
2013-03-22 20:36:34 -07:00
Solomon Hykes
ef711962d5
Folded graph/ back into main package
2013-03-21 17:47:23 -07:00
Solomon Hykes
d65983f386
No need for a Container.networkManager field: it can be accessed via Container.runtime
2013-03-21 01:43:03 -07:00
Solomon Hykes
0208b6accd
moved GenerateId() to the graph package
2013-03-21 01:07:07 -07:00
Solomon Hykes
b8547f31e4
Renamed Docker{} to Runtime{} for clarity
2013-03-21 00:41:15 -07:00
Solomon Hykes
7c57a4cfc0
Simplified the core container API, ported it to the new graph. Some features are missing eg. image 'paths' and tags
2013-03-21 00:25:00 -07:00
creack
453d49573c
Put back the github.com path for the import
2013-03-12 11:59:27 -07:00
creack
150a4fe7e5
Merge master within fs
2013-03-12 08:33:21 -07:00
Guillaume J. Charmes
45a8bba15e
gofmt
2013-03-12 05:36:37 -07:00
Guillaume J. Charmes
e0b09d4933
Add "nuke" function to docker tests to avoid disk space waste
2013-03-12 00:08:41 -07:00
Sam Alba
948961831a
Renamed Container property Ram to Memory before it is too late
2013-03-11 19:25:02 -07:00
Sam Alba
75d04a5a75
Added support for RamSwap in the generated LXC config (to limit the swap and have the right default settings)
2013-03-11 17:40:54 -07:00
Solomon Hykes
2548722dae
Fix a bug which caused dockerd to crash at startup if a container didn't have a registered mountpoint
2013-03-11 17:05:01 -07:00
Guillaume J. Charmes
687d6f25ee
Change relative paths to absolute
2013-03-11 02:59:52 -07:00