Compare commits

...

1615 Commits

Author SHA1 Message Date
Victor Vieux
53f1bf0f99 Bump version to v0.6.7 2013-11-21 18:03:41 -08:00
Victor Vieux
9dc59797e0 Merge branch 'master' into bump_v0.6.7 2013-11-21 17:40:29 -08:00
Michael Crosby
25e443a3c7 Merge pull request #2798 from dotcloud/fix_state_race
Refactor State to be 100% thread safe
2013-11-21 16:39:50 -08:00
Guillaume J. Charmes
33e70864a2 Refactor State to be 100% thread safe 2013-11-21 16:34:58 -08:00
Michael Crosby
d6e6214d37 Merge pull request #2678 from cxmcc/minor
Minor code simplification for Containers api
2013-11-21 16:27:15 -08:00
Michael Crosby
70f1bd3104 Merge pull request #2488 from viirya/fix_container_volumes_delete
Skip the volumes mounted when deleting the volumes of container.
2013-11-21 16:20:22 -08:00
Michael Crosby
f7c2a00557 Merge pull request #2304 from unclejack/fix_layer_size_computation
Fix layer size computation: handle hard links correctly
2013-11-21 16:10:24 -08:00
Victor Vieux
8498b44eac Merge pull request #2731 from SvenDowideit/docker-commit-doc
make the docker commit help more copy&pasteable
2013-11-21 15:33:05 -08:00
Andy Rothfusz
e2dcfc2cf7 Merge pull request #2772 from bitoiu/patch-3
Change to documentation for AWS AMI request
2013-11-21 15:15:04 -08:00
Andy Rothfusz
9b4c151142 Merge pull request #2717 from metalivedev/2342-uploadingcontext
Fix #2342. Harmonize information about ADD. Cross-link build info.
2013-11-21 15:09:47 -08:00
Andy Rothfusz
50239e0573 Merge pull request #2799 from rosenhouse/patch-1
Fix title on doc page for remote_api_client_libraries.rst
2013-11-21 14:40:33 -08:00
Guillaume J. Charmes
42c23b0f04 Merge pull request #2763 from dotcloud/use_full_id_delete
Do ont truncate ID on docker rmi
2013-11-21 14:39:38 -08:00
Guillaume J. Charmes
eec91e7941 Merge pull request #2805 from pmorie/typo
Fix typo in pullImage
2013-11-21 14:35:07 -08:00
Paul Morie
3f17844b6e Fix typo in pullImage 2013-11-21 17:29:03 -05:00
Guillaume J. Charmes
bcdeb37bb6 Merge pull request #2794 from dotcloud/fix_status_code_and_usage
fix status code and usage
2013-11-21 13:48:38 -08:00
Gabe Rosenhouse
362e9d6b3c Fix title on doc page for remote_api_client_libraries.rst 2013-11-21 12:45:01 -08:00
Guillaume J. Charmes
c4ab498920 Merge pull request #2797 from crosbymichael/revert-exit-lock
Revert "Lock state before we modify."
2013-11-21 12:19:23 -08:00
Michael Crosby
cb70eedfda Revert "Lock state before we modify."
This reverts commit d7e2fc8982.
2013-11-21 12:11:25 -08:00
Victor Vieux
75a7f4d90c Return status exit status 2 on usage, move parserun into commands.go, display usage on stderr 2013-11-21 11:43:07 -08:00
Victor Vieux
eaeb969138 Merge pull request #2795 from pnasrat/docker-testmultipleattachrestart-race
Lock state before we modify.
2013-11-21 11:28:02 -08:00
Paul Nasrat
d7e2fc8982 Lock state before we modify.
When we start a container we lock state, we should do the same in stop.

Detected via -race.
2013-11-21 08:06:02 -05:00
Victor Vieux
f20c738963 Merge pull request #2793 from crosbymichael/offline-ids
Allow images to be saved and loaded by id and repository
2013-11-21 02:44:00 -08:00
Michael Crosby
fd7ab143bf Allow images to be saved and loaded by id and repository 2013-11-20 17:28:19 -08:00
Andy Rothfusz
82cdd21a34 Merge pull request #2727 from SvenDowideit/docker-images-doc
add some common examples for docker images, and tell the user what -a filters out
2013-11-20 16:30:48 -08:00
Michael Crosby
2bc35287a0 Merge pull request #2723 from SvenDowideit/doc-build-image
Use the work Path for docker cp CONTAINER:PATH
2013-11-20 11:10:13 -08:00
Guillaume J. Charmes
b4f7078a02 Merge pull request #2773 from dotcloud/speed_up_docker_ps
speedup docker ps
2013-11-20 10:40:03 -08:00
Guillaume J. Charmes
9e68913397 Merge pull request #2760 from dotcloud/improve_engine_test
improve tests on the engine
2013-11-20 10:38:46 -08:00
Victor Vieux
304a80fcd5 Merge pull request #2747 from jpoimboe/test-fixes
Test fixes
2013-11-20 10:07:40 -08:00
Guillaume J. Charmes
04f1d4dcdb Merge pull request #2788 from jpoimboe/resize-after-start
resize pty after starting
2013-11-20 10:01:59 -08:00
Josh Poimboeuf
171d681724 resize pty after starting
Since ptyMaster is created during container start (startPty), it should
resized after starting, not before.
2013-11-20 11:40:30 -06:00
Michael Crosby
cd4c1ac356 Merge pull request #2779 from crosbymichael/pin-python-deps
Pip python deps to a specific version
2013-11-19 21:29:09 -08:00
Michael Crosby
b8af68a92b Merge pull request #1974 from dotcloud/1155-offline-image-transfer
Implement offline image transfers
2013-11-19 20:00:58 -08:00
Michael Crosby
9de4590498 Add typo in remove all. Ensure tmpDir is removed 2013-11-20 03:52:33 +00:00
Michael Crosby
0ef6fed5c7 Fix error checks for offline transfer and remove unneeded debug output 2013-11-20 03:52:33 +00:00
Frederick F. Kautz IV
383f95bba1 Adding 1.7 documentation 2013-11-20 03:52:33 +00:00
Frederick F. Kautz IV
1211065c8d Adding content type to images/(name)/get 2013-11-20 03:52:33 +00:00
Frederick F. Kautz IV
844c13bce6 Fixing build 2013-11-20 03:52:33 +00:00
Frederick F. Kautz IV
6014db4a7e Setting offline package version to 1.0 2013-11-20 03:52:33 +00:00
Frederick F. Kautz IV
bf504f2afa Adding spaces to fix docs build 2013-11-20 03:52:33 +00:00
Frederick F. Kautz IV
61a8020e51 Adding version info, switching to defer for cleanup 2013-11-20 03:52:33 +00:00
Frederick F. Kautz IV
7eaa59f626 Offline Image Transfers #1155 2013-11-20 03:52:33 +00:00
Michael Crosby
2cccbbdadd Pip python deps to a specific version 2013-11-19 19:25:54 -08:00
Victor Vieux
b700ee006a Merge pull request #2777 from dotcloud/fix_port_stop_start
don't import emport empty hostconfig
2013-11-19 18:36:22 -08:00
Victor Vieux
0169cf15dd don't import emport empty hostconfig 2013-11-19 18:28:50 -08:00
Michael Crosby
234f5ac39f Merge pull request #2750 from jpoimboe/simplify-register-reconnect
Simplify the runtime Register reconnect logic
2013-11-19 17:30:59 -08:00
Victor Vieux
d575918038 Merge pull request #2748 from jpoimboe/fix-restart-race-condition
fix container restart race condition
2013-11-19 16:26:13 -08:00
Tianon Gravi
66beafa9f3 rename file to remove testing flags from docker binary 2013-11-19 12:41:29 -08:00
Josh Poimboeuf
3cbec95177 simplify the runtime Register reconnect logic
Refactor the Register code a little bit to make it easier to comprehend.
2013-11-19 14:09:30 -06:00
Victor Vieux
8e5ab5bfca improve tests on the engine 2013-11-19 11:47:47 -08:00
Michael Crosby
9d867a389b Merge pull request #2759 from dotcloud/lintify-1
Lintify code with confidence=1
2013-11-19 11:26:15 -08:00
Andy Rothfusz
4f9f83d6c6 Fix #2342. Harmonize information about ADD. Cross-link build info. 2013-11-19 11:16:28 -08:00
Victor Vieux
145c2008ae speedup docker ps 2013-11-19 11:02:10 -08:00
Andy Rothfusz
4eaba8de91 Merge pull request #2757 from Painted-Fox/patch-2
Simplify the upstart example in host_integration.rst
2013-11-19 10:29:54 -08:00
Andy Rothfusz
434c1613a4 Merge pull request #2770 from tianon/better-man-page
Switch sphinx man_pages generation to use commandline/cli
2013-11-19 10:28:50 -08:00
Andy Rothfusz
18da26c62a Merge pull request #2766 from sbellem/doc-improvements
fixed typos, and made small improvements to the wording
2013-11-19 10:27:25 -08:00
Vitor Monteiro
aeb304b37c Change to documentation for AWS AMI request
Hi guys, it just might be me, but clicking the AMI from http://cloud-images.ubuntu.com/locator/ec2/ is broken to me. So I just did it via the normal Create Instance Wizard.

I just though some people might have the same issue.

Sorry if my markdown for links is screwed up, I went by the examples, since I'm used to the `[]()` traditional one.

Cheers.
2013-11-19 17:50:38 +00:00
Ryan Seto
1da8c50ded Fix quote mistake. 2013-11-19 12:14:39 -05:00
Tianon Gravi
1cd9529ad3 Switch sphinx man_pages generation to use commandline/cli instead of toctree for a more relevant/useful man page 2013-11-19 10:10:42 -07:00
Daniel Mizyrycki
f78d45863c Merge pull request #2734 from zitrusmedia/master
Vagrantfile modified to support VBoxGuestAdditions_4.3.2
2013-11-19 09:04:28 -08:00
Sylvain Bellemare
3656db66d2 fixed typos, and made small improvements to the wording 2013-11-19 14:44:50 +01:00
unclejack
78c843c8ef fix container size computation: handle hard links
This change makes docker compute container size correctly.

The old code isn't taking hard links into account. Containers could
seem like they're up to 1-1.5x larger than they really were.
2013-11-19 13:53:34 +02:00
unclejack
ac821f2446 fix layer size computation: handle hard links
This change makes docker compute layer size correctly.

The old code isn't taking hard links into account. Layers could
seem like they're up to 1-1.5x larger than they really were.
2013-11-19 13:37:54 +02:00
Victor Vieux
2fe4467d73 Do ont truncate ID on docker rmi 2013-11-18 18:39:02 -08:00
Ryan Seto
194d4b9376 Correct the quotations in the command to add the -r=false flag. Thanks to @tianon for pointing this out. 2013-11-18 21:23:00 -05:00
Andy Rothfusz
1de02a70de Merge pull request #2719 from metalivedev/2702-knownissue-lxc-start-failed-to-mount
Fixes #2702. Also cleans up formatting and long lines in volumes doc.
2013-11-18 17:27:49 -08:00
Guillaume J. Charmes
5e941f1ca0 Lintify code with confidence=1 2013-11-18 16:24:11 -08:00
Andy Rothfusz
511a62a099 Merge pull request #2755 from metalivedev/test-2592
Replace PR#2592
2013-11-18 15:29:48 -08:00
Andy Rothfusz
256d46fe68 Merge pull request #2721 from metalivedev/2701-addmedia
Add security section and embed private registry video.
2013-11-18 15:29:35 -08:00
Ryan Seto
76ee860ece Simplify the upstart example in host_integration.rst
Taking some pointers from @tianon on my pull request #2685.
2013-11-18 16:21:03 -05:00
Andy Rothfusz
2ae1f29dfe Fixes #2702. Also cleans up formatting and long lines in volumes doc. 2013-11-18 13:09:13 -08:00
Josh Poimboeuf
4b80ec9aae test: remove extra args in TestExitCode
The extra blank argument isn't needed and confuses libvirt.
2013-11-18 15:07:11 -06:00
Josh Poimboeuf
fef41ef7bf test: fix TestRmi race condition 2013-11-18 15:07:06 -06:00
Victor Vieux
f946a486ea Merge pull request #2718 from dotcloud/fix_tmp_dir_never_cleanup
Fix tmp dir never cleanup
2013-11-18 12:20:23 -08:00
Guillaume J. Charmes
e008c7c068 Merge pull request #2743 from tianon/go1.2rc5
Update to go1.2rc5
2013-11-18 12:11:56 -08:00
Andy Rothfusz
669e4bac30 Merge pull request #2729 from SvenDowideit/docker-info-doc
add example for docker info
2013-11-18 11:44:54 -08:00
Andy Rothfusz
f6362fbb0e Merge pull request #2726 from SvenDowideit/docker-history-doc
add example for docker history
2013-11-18 11:43:44 -08:00
Andy Rothfusz
c1cd824570 Merge pull request #2742 from rick/patch-1
Tiny typo cleanup
2013-11-18 11:37:37 -08:00
Michael Crosby
4546832507 Merge pull request #2752 from dotcloud/gofmt_test
Go fmt tests
2013-11-18 11:34:59 -08:00
Andy Rothfusz
b5934711d0 Merge pull request #2724 from SvenDowideit/docker-diff-example
add an example of what to expect from docker diff, and what the 3 codes mean
2013-11-18 11:34:05 -08:00
Victor Vieux
ed8f75d25c gofmt_test 2013-11-18 11:25:13 -08:00
Michael Crosby
cfbd9ea16d Merge pull request #2749 from jpoimboe/dont-forward-SIGCHLD
Do not forward SIGCHLD to container
2013-11-18 11:24:08 -08:00
Michael Crosby
75dd1663e0 Merge pull request #2638 from FreakyDazio/2506-name-conflict-error
More informative error message on name collisions
2013-11-18 11:13:43 -08:00
Darren Coxall
3c67a28493 More informative error message on name collisions
This is the proposed fix for #2506. It provides a more complete message
with regards to name collisions including informing of the opposing
containers ID.

I have included a test to ensure that the correct short id is displayed
to make the message easier to understand.
2013-11-18 17:51:47 +00:00
Josh Poimboeuf
440422a963 don't forward SIGCHLD to container
It makes no sense to forward SIGCHLD to the container.
2013-11-18 11:45:29 -06:00
Josh Poimboeuf
fc2f5758cf fix container restart race condition
Finish container cleanup before setting the state to stopped.
Otherwise, for an application that exits quickly, a call to Restart
can allow Start to be called again before cleanup is done, resulting in
overritten data in the Container struct.
2013-11-18 11:42:30 -06:00
Josh Poimboeuf
fe302fbfd2 test: 2 second timeout (not 2000) 2013-11-18 10:23:30 -06:00
Josh Poimboeuf
72d02ecdde test: skip TestCreate on Fedora due to lxc utils bug
In the dind environment running on a Fedora host, the lxc utils get
confused by the /sys/fs/cgroup/cpuacct,cpu cgroup mount and lxc-start
fails trying to access the wrong cgroup directory.
2013-11-18 10:23:30 -06:00
Josh Poimboeuf
baa687bed2 test: fix TestCreateStartRestartStopStartKillRm
cat needs stdin opened, otherwise it dies immediately.
2013-11-18 10:23:30 -06:00
Josh Poimboeuf
30ea0bebce test: put each arg in a separate string
Each arg to docker run should be placed in a separate string.
Otherwise, when starting the command via exec.Cmd, the command is
interpreted as "echo test", which can't be found.
2013-11-18 10:23:06 -06:00
Tianon Gravi
9e1da3ec9c Update to go1.2rc5 2013-11-17 22:36:26 -07:00
Rick Bradley
b76574f855 Tiny typo cleanup 2013-11-17 21:10:06 -08:00
Tianon Gravi
457375ea37 Merge pull request #2732 from jplock/patch-2
Fix images not being properly tagged in mkimage-debootstrap.sh
2013-11-17 08:06:58 -08:00
Frederik Loeffert
7e580aacec Vagrantfile modified to support VBoxGuestAdditions_4.3.2 2013-11-17 01:20:21 +01:00
Justin Plock
0e64b987e8 Fix images not being properly tagged 2013-11-16 11:05:38 -05:00
Sven Dowideit
bc74f65068 make the docker commit help more copy&pasteable 2013-11-16 21:11:34 +10:00
Sven Dowideit
5c741ef11d add example 2013-11-16 20:53:45 +10:00
Sven Dowideit
152459b727 add some common examples for docker images, and tell the user what -a filters out 2013-11-16 20:45:30 +10:00
Sven Dowideit
f04142c1f7 add example for docker history 2013-11-16 20:36:33 +10:00
Sven Dowideit
af05ab399e add an example of what to expect from docker diff, and what the 3 codes mean 2013-11-16 20:26:47 +10:00
Sven Dowideit
27159ce6ba expunge the word 'Resource' in reference to a file/dir in a CONTAINER - that way users don't wonder how its different from a Path 2013-11-16 20:15:04 +10:00
Michael Crosby
51576069ad Merge pull request #2694 from shykes/separate-integration-tests
Separate integration tests
2013-11-15 18:21:34 -08:00
Andy Rothfusz
d33ffe44a9 Fixes #2701. Adds security section. 2013-11-15 18:12:35 -08:00
Solomon Hykes
afe230718e Re-enable api integration tests using only public remote API. 2013-11-16 02:12:14 +00:00
Victor Vieux
9261690593 Fix tmp dir never cleanup 2013-11-15 16:23:55 -08:00
Andy Rothfusz
e12bba66ea Merge pull request #2709 from eugenkrizo/patch-1
path needs to be specified to 'docker build' command
2013-11-15 13:34:08 -08:00
Andy Rothfusz
92c3a319fb Merge pull request #2713 from eugenkrizo/patch-2
port published explicitly (for docker 0.6.6)
2013-11-15 13:32:18 -08:00
Andy Rothfusz
323e86032d Merge pull request #2685 from Painted-Fox/patch-1
Add more depth to the upstart example in host_integration.rst
2013-11-15 12:28:07 -08:00
Victor Vieux
c06d903edd bring back tests about LXCConfig 2013-11-15 11:48:18 -08:00
Andy Rothfusz
9a9d3239e1 Fix typos, add links, streamline content of #2592 2013-11-15 11:38:03 -08:00
Andy Rothfusz
33110ddc3f Merge branch 'fix_examples_use_docs' of git://github.com/rogaha/docker into test-2592 2013-11-15 11:15:14 -08:00
Andy Rothfusz
6341768393 Merge pull request #2689 from metalivedev/fix-syntax
Clean up sphinx syntax
2013-11-15 11:09:51 -08:00
Victor Vieux
ad96d5ff04 Merge pull request #2712 from makinacorpus/master
Do not drop sys_boot
2013-11-15 10:33:41 -08:00
eugenkrizo
492ce4c665 port published explicitly (for docker 0.6.6)
port 5984 to couchdb needs to be published explicitly in docker version 0.6.6
2013-11-15 17:12:48 +01:00
Mathieu Le Marec - Pasquet
76ab8fa00f Merge pull request #1 from jpetazzo/2392-add-kernel-docs
Add warning about SYS_BOOT capability with pre-3.4 kernels and pre-0.8 LXC.
2013-11-15 07:58:54 -08:00
eugenkrizo
007964793d path needs to be specified to 'docker build' command
current folder '.' appended as a path
2013-11-15 16:16:59 +01:00
Andy Rothfusz
bed87ea103 Merge pull request #2690 from codevin/master
Improvise documentation for builder.rst / VOLUME command
2013-11-14 19:23:18 -08:00
Solomon Hykes
823674816e Move iptables test to integration tests 2013-11-15 01:15:39 +00:00
Solomon Hykes
8d3e35cd8d Split auth tests between unit tests and integration tests 2013-11-15 01:13:20 +00:00
Guillaume J. Charmes
84ed18827a Merge pull request #2704 from shykes/fix-auto-pull
Fix the brittle errorstring-to-httperror recognition code
2013-11-14 16:15:46 -08:00
Solomon Hykes
693ff4d2ae Fix the brittle errorstring-to-httperror recognition code which in turn is required by autopull (the client issues a pull if container creation returns 404) 2013-11-14 23:54:28 +00:00
Victor Vieux
596810d8db move TestMount to integration 2013-11-14 15:17:31 -08:00
Victor Vieux
661a8a0e0c fix Integration tests 2013-11-14 14:46:13 -08:00
Michael Crosby
629c6e3649 Merge pull request #2445 from alexlarsson/fix-shared-root-from-dm
Fix lxc start for shared root filesystems
2013-11-14 11:20:53 -08:00
Andy Rothfusz
c7aaf831d7 Merge pull request #2691 from SvenDowideit/add-instruction-path-limitations
except URL-based ADDs
2013-11-14 11:12:08 -08:00
Solomon Hykes
e9624bf715 Remove deprecated tags_test.go 2013-11-14 10:50:43 -08:00
Solomon Hykes
2a209afe5f gofmt 2013-11-14 10:50:43 -08:00
Victor Vieux
c001a5af67 Integration tests: remove dependency on private APIs 2013-11-14 10:50:43 -08:00
Solomon Hykes
359a6f49b9 Move integration tests to integration/, expose missing public methods in the core 2013-11-14 10:50:00 -08:00
¨Sven
e42144674f thankyou @tomdz - I forgot about URL based ADDs 2013-11-14 14:53:55 +10:00
Vinod Kulkarni
37abc07852 Improvise documentation for builder.rst / VOLUME command 2013-11-14 09:54:31 +05:30
Andy Rothfusz
61abc3f8ac Merge pull request #2688 from dhrp/doc-layout-dotcloud-to-docker-inc
Updated documentation footer to say "Docker Inc." instead of dotCloud. And added Read the Docs.
2013-11-13 18:31:21 -08:00
Andy Rothfusz
5fc56b6b47 Merge pull request #2661 from rogaha/links_docs
- Added a doc about Links and Container Naming
2013-11-13 18:15:25 -08:00
Andy Rothfusz
059950b095 Clean up sphinx syntax, upgrade http markup package, minor link changes, update intro. 2013-11-13 17:45:22 -08:00
Thatcher Peskens
9ab85f4d12 Updated documentation footer to say "Docker Inc." instead of dotCloud. And added link to Read the Docs for giving them credit to hosting us. (Thanks Read The Docs!) 2013-11-13 16:09:23 -08:00
Andy Rothfusz
3cf23b93ea Merge pull request #2679 from FreekKalter/master
fix error in python webapp example
2013-11-13 13:35:01 -08:00
Guillaume J. Charmes
3ba6835ead Merge pull request #2676 from tianon/go1.2rc4
Update to go1.2rc4
2013-11-13 11:45:56 -08:00
Guillaume J. Charmes
dc13b9473f Merge pull request #2686 from shykes/gofmt
gofmt
2013-11-13 11:35:37 -08:00
Solomon Hykes
b00d5f0185 gofmt 2013-11-13 19:25:55 +00:00
Andy Rothfusz
8e71391572 Merge pull request #2660 from SvenDowideit/2601-remote-api-json-case
update the API docs to reflect the change in the case of the /index/search reposnse
2013-11-13 11:17:54 -08:00
Andy Rothfusz
077c2496ed Merge pull request #2681 from SvenDowideit/add-instruction-path-limitations
add a little more info about the limitations of ADD wrt ../ and docker build
2013-11-13 10:56:35 -08:00
Tianon Gravi
b94e9ed0de Merge pull request #2652 from tianon/upstart-defaults-too
Add /etc/default/docker support to upstart, too (mirroring sysvinit)
2013-11-13 10:42:41 -08:00
Ryan Seto
02884ee429 Add more depth to the upstart example in host_integration.rst
I found that the original example wasn't starting the docker container when docker is started.  So, I modified it using information I found from https://groups.google.com/forum/#!msg/docker-user/OWz8EOpiXuo/L_uxGFQuYlkJ

Also, upstart wasn't starting docker if it wasn't running ahead of time.  So, I added a change to the docker upstart script to solve this.
2013-11-13 13:34:34 -05:00
Jérôme Petazzoni
8145e57cee Add warning about SYS_BOOT capability with pre-3.4 kernels and pre-0.8 LXC. 2013-11-13 10:29:29 -08:00
Solomon Hykes
c964494d31 Merge pull request #2673 from shykes/engine-patch-2
* Engine: expand the engine API with 'create' and 'start' jobs Edit
2013-11-13 10:14:56 -08:00
Solomon Hykes
c6e83b8779 Merge pull request #2656 from shykes/export-restrictions-debian
Change crypto export notice to meet Debian requirements
2013-11-13 09:37:23 -08:00
Guillaume J. Charmes
369e39aea1 Merge pull request #2680 from inglesp/patch-1
Typo in ROADMAP.md
2013-11-13 09:19:37 -08:00
¨Sven
af0b2e38c3 add a little more info about the limitations of ADD wrt ../ and docker build - 2013-11-13 22:55:55 +10:00
inglesp
87b4bb9fcc Typo in ROADMAP.md 2013-11-13 12:32:49 +00:00
Freek Kalter
f5e6c2d060 fix error in python webapp example
When getting the private port used by a container using
`docker port` returns 0.0.0.0:49353, stript just the portnumber of the address with awk to used it in the rest of the example code.
2013-11-13 13:20:38 +01:00
¨Sven
f0f8462d18 update the v1.7 API to reflect the case change in the /index/search response, and note that its to align better with the registry server response that its proxying 2013-11-13 22:11:20 +10:00
Xiuming Chen
0013aa7d9f Minor code simplification for Containers api 2013-11-13 01:29:00 -08:00
Liang-Chi Hsieh
1d7f22c0d4 use Binds key in hostConfig to detect volumes mounted from external. 2013-11-13 15:08:46 +08:00
Liang-Chi Hsieh
6a693176d6 skip the volumes mounted when deleting the volumes of container. 2013-11-13 14:58:24 +08:00
Tianon Gravi
8523d5518c Update to go1.2rc4 2013-11-12 21:51:12 -07:00
Solomon Hykes
6c4393ccbb Merge branch 'job-create-start-clean' into engine-patch-2
Conflicts:
	engine/engine.go
	engine/job.go
	server.go
	utils_test.go
2013-11-13 00:36:20 +00:00
Solomon Hykes
3885ef585b Merge pull request #2612 from tianon/release-script-tweaks
* Hack: release script tweaks
2013-11-12 15:04:26 -08:00
Victor Vieux
388057f11a Merge pull request #2648 from dotcloud/docker_kill_exit_code
Make sure docker kill exit with failure in case of error
2013-11-12 14:40:17 -08:00
Guillaume J. Charmes
c69e6a90e4 Merge pull request #2663 from viirya/fix_nameserver_regex
Fix nameserver regex
2013-11-12 12:29:40 -08:00
Victor Vieux
71c05bb87c Merge pull request #2662 from dotcloud/do_not_cleanup_start_if_running
on docker start, do not cleanup if already running
2013-11-12 11:02:10 -08:00
Victor Vieux
637850063c Merge pull request #2614 from dotcloud/prevent_delete_image_running_container
Runtime: prevent deletion if image is used by a running container
2013-11-12 11:01:51 -08:00
Victor Vieux
dcc9980550 Merge pull request #2657 from dotcloud/fix_docker_images_output
use utils.ParseRepositoryTag instead of strings.split in docker images
2013-11-12 11:01:29 -08:00
Victor Vieux
e405337926 Merge pull request #2669 from tianon/clarify-test-calls
Add clarification of multiple "go test" calls in hack/make/*test
2013-11-12 10:42:24 -08:00
Tianon Gravi
5cdb3aec50 Add clarification of multiple "go test" calls in hack/make/*test 2013-11-12 11:23:06 -07:00
Victor Vieux
b314f19db8 Merge branch 'tests/insert' of https://github.com/mrallen1/docker into mrallen1-tests/insert
Conflicts:
	server.go
2013-11-12 10:19:29 -08:00
Roberto Gandolfo Hashioka
353243a725 - Improved documentation and typos fixing (Thanks to @jamtur01) 2013-11-12 10:11:52 -08:00
Liang-Chi Hsieh
879aa29cb0 modify test of GetNameserversAsCIDR for its regex change. 2013-11-12 18:18:30 +08:00
Liang-Chi Hsieh
1e5ba57de3 fix nameserver regex. 2013-11-12 10:53:34 +08:00
Victor Vieux
bc6d872841 on docker start, do not cleanup if already running 2013-11-11 18:15:38 -08:00
Roberto Gandolfo Hashioka
981560c436 - Added a doc about Links and Container Naming 2013-11-11 17:38:54 -08:00
Victor Vieux
d589cc3622 Merge pull request #2527 from jpoimboe/fedora-iptables-fix
Fix container networking on Fedora
2013-11-11 15:12:40 -08:00
Andy Rothfusz
69a9614cb4 Merge pull request #2621 from rogaha/rm_del_all_example
- Added delete all the containers example (docker rm `docker ps -a -q`)
2013-11-11 14:55:50 -08:00
Victor Vieux
e2ac0e6b80 add wait, stop, start, restart, rm, rmi 2013-11-11 14:47:23 -08:00
Solomon Hykes
01dd7e7459 Change crypto export notice to meet Debian requirements 2013-11-11 22:08:37 +00:00
Victor Vieux
84a3600ea8 use utils.ParseRepositoryTag instead of strings.split in docker images 2013-11-11 13:54:17 -08:00
Andy Rothfusz
cb9e0aee48 Merge pull request #2646 from fgrehm/contrib-vagrant
Update contrib/vagrant-docker with projects available
2013-11-11 13:49:15 -08:00
Andy Rothfusz
52d3137713 Merge pull request #2641 from artagnon/master
CONTRIBUTING: wrap a couple of long lines
2013-11-11 13:43:30 -08:00
Victor Vieux
4c7d24bc8b Merge branch 'master' of https://github.com/zilin/docker into zilin-master
Conflicts:
	container.go
2013-11-11 12:59:18 -08:00
Victor Vieux
87c8437a90 Merge pull request #2140 from SvenDowideit/2098-run-cidfile-should-return-longid
Server: always return long id's
2013-11-11 13:06:19 -08:00
Daniel Mizyrycki
6fab249b21 Merge pull request #2313 from wazboy/master
Vagrant AWS update
2013-11-11 13:01:20 -08:00
Victor Vieux
da24945070 Merge branch 'master' of https://github.com/aanand/docker into aanand-master 2013-11-11 12:34:16 -08:00
Tianon Gravi
ca113bb1b2 Merge pull request #2613 from tianon/ubuntu-fpm-tweaks
Update ubuntu packaging script, especially to stop docker group deletion
2013-11-11 12:01:40 -08:00
Andy Rothfusz
9ff36cb00c Merge pull request #2630 from jamtur01/api_status
Added status column to API client table
2013-11-11 11:56:04 -08:00
Mark Allen
62f873aa1f Just return the id; nothing else. 2013-11-11 13:26:24 -06:00
Tianon Gravi
2091b59721 Merge pull request #2653 from tianon/sysvinit-upstart-check
Update upstart check in sysvinit to be exactly the same as the init_is_upstart function
2013-11-11 11:00:07 -08:00
Tianon Gravi
88edba7e86 Update upstart check in sysvinit to be exactly the same as the init_is_upstart function from /lib/lsb/init-functions (which isn't available in 12.04 or we'd use it directly) 2013-11-11 11:57:25 -07:00
Tianon Gravi
5fe4c9a39a Merge pull request #2651 from tianon/fix-sysvinit-upstart-logic
Fix sysvinit upstart detection and give it a pretty message
2013-11-11 10:39:51 -08:00
Michael Crosby
2fc0084f6b Merge pull request #2633 from danderson/2598-fix-iptables-anydest
Correctly express "any address" to iptables.
2013-11-11 10:22:02 -08:00
Tianon Gravi
7cf7dda87d Add /etc/default/docker support to upstart, too (mirroring sysvinit) 2013-11-11 11:13:16 -07:00
Tianon Gravi
bb76157d24 Fix sysvinit upstart detection and give it a pretty message 2013-11-11 11:10:19 -07:00
Andy Rothfusz
1d9139bb89 Merge pull request #2574 from crosbymichael/api-port-changes
Update documentation to reflect changes in Config and HostConfig
2013-11-11 09:59:48 -08:00
Guillaume J. Charmes
8149439d95 Make sure docker kill exit with failure in case of error 2013-11-11 09:15:51 -08:00
Guillaume J. Charmes
402a58a75a Fix formatting in tests 2013-11-11 09:05:38 -08:00
Fabio Rehm
9c7a8edddd Update contrib/vagrant-docker with projects available 2013-11-11 13:36:44 -02:00
Ramkumar Ramachandra
cf30b85eb1 CONTRIBUTING: wrap a couple of long lines
Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
2013-11-11 16:21:34 +05:30
Galen Sampson
ccbb5d3492 Vagrantfile updates.
- Remove the overrides config.vm.box and config.vm.box_url and use
  the same values for all providers.
- Use the same private key path for all providers.  It is still possible
  to set a different private key path through the environment variable
  SSH_PRIVKEY_PATH if desired (your AWS key may be different from your
  Virtualbox key).
- Allow the environment variable AWS_INSTANCE_TYPE to specify the
  instance type of instead of hard coding the AWS instance type as
  't1.micro'.  't1.micro' is still the default if unspecified.
- Use the same environment variables for keys as the Amazon provided EC2
  API tools.  This allows people who already have the EC2 tools set up
  correctly to use 'vagrant up' with less environment configuration
  than before.
- Rewrite the provisioning code.  The goal is to be idempotent and to
  correctly install docker for all providers instead of just virtualbox.
  It will conditionally install the virtualbox guest additions if
  virtualbox is the provider.
- Update the AWS install documentation to reflect the changes.
2013-11-10 23:39:26 -08:00
James Turnbull
5a1bfd9aa9 Added status column to API client table 2013-11-10 12:14:45 -05:00
Mark Allen
8cc19765b4 Edits after code review
Return long image ID
Return streamformatted error or "raw" error
2013-11-10 00:06:55 -06:00
David Anderson
8ba8783bcc Correctly express "any address" to iptables.
Iptables interprets "-d 0.0.0.0" as "-d 0.0.0.0/32", not /0. This
results in the DNAT rule never matching any traffic if not bound
to a specific host IP.

Fixes #2598
2013-11-09 19:40:56 -08:00
Roberto Gandolfo Hashioka
4ec0b51578 - Updated description 2013-11-09 11:08:43 -08:00
Tianon Gravi
7f1b179c67 Fix the display of get.docker.io in Firefox by making our index files text/plain 2013-11-09 02:28:04 -07:00
Sven Dowideit
b3974abe4f make all image ID and container ID API responses use the Long ID (Closes #2098) 2013-11-09 12:16:49 +10:00
Roberto Gandolfo Hashioka
403f9fc357 - Added delete all the containers example 2013-11-08 16:47:42 -08:00
Tianon Gravi
498b6031b1 Update ubuntu packaging script, especially to stop docker group deletion 2013-11-08 17:23:37 -07:00
Andy Rothfusz
f26da9638f Merge pull request #2590 from metalivedev/2585-addphplib
Fix 2585 and clean up warning in contributing.rst
2013-11-08 15:35:24 -08:00
Guillaume J. Charmes
126b17a0ff Merge pull request #2615 from jpoimboe/ghost-networking-fix
setup network when reconnecting to ghost container
2013-11-08 15:31:55 -08:00
Andy Rothfusz
34d294c461 Fix 2585, rebase to master 2013-11-08 15:15:45 -08:00
Victor Vieux
45c2b5dc1a prevent deletion if image is used by a running container 2013-11-08 15:01:01 -08:00
Tianon Gravi
f56945d71b Update release script to move https://get.docker.io/ubuntu/info to https://get.docker.io/ubuntu/ and provide a backwards-compatibility redirect (same for /builds/info) 2013-11-08 15:45:18 -07:00
Tianon Gravi
b8e7ec1b74 Update release script with proper support for non-*.docker.io bucket URLs 2013-11-08 15:44:52 -07:00
Guillaume J. Charmes
3bbe8ee055 Merge pull request #2611 from seancron/changelog-edit
Removes duplicate changelog entry
2013-11-08 14:39:02 -08:00
Josh Poimboeuf
2448058ee2 setup network when reconnecting to ghost container
Re-adding the line to setup the network when reconnecting to a ghost
container.  It was inadvertently removed by commit
31638ab2ad.
2013-11-08 16:28:41 -06:00
Sean Cronin
ca174ae84d Removes duplicate changelog entry 2013-11-08 17:17:39 -05:00
Victor Vieux
f9dd0da182 Merge pull request #2610 from stapelberg/patch-1
Return “err” instead of “nil” when MkdirAll() fails when binding a volume
2013-11-08 14:00:06 -08:00
Michael Stapelberg
e7fdcc15c5 Return “err” instead of “nil” when MkdirAll() fails when binding a volume 2013-11-08 22:52:10 +01:00
Andy Rothfusz
67b0b97a8f Merge pull request #2526 from metalivedev/2074-AddKnownIssues
Add Known Issue
2013-11-08 12:14:04 -08:00
Guillaume J. Charmes
310fbe7bb7 Merge pull request #2565 from danielnorberg/master
lock around read operations in graph
2013-11-08 09:34:18 -08:00
Michael Crosby
3f2a5912ee Merge pull request #2593 from dotcloud/2578
Fix mergeConfig with new ports
2013-11-08 09:23:06 -08:00
Michael Crosby
65102d6b36 Merge pull request #2597 from dotcloud/deprecate_separate_tag
Deprecate old tagging format
2013-11-08 09:15:47 -08:00
Michael Crosby
997a32706f Merge pull request #2599 from dotcloud/prevent_panic_wrong_api_use
Prevent panic if you use API in a wrong way
2013-11-08 09:09:03 -08:00
Guillaume J. Charmes
5cf6ad4565 Merge pull request #2584 from dotcloud/docker-ci
docker-ci production sync
2013-11-08 08:24:09 -08:00
Mark Allen
bf8e0277bb Add ImageInsert tests 2013-11-08 00:16:45 -06:00
David Sissitka
5957dd9091 Make "docker insert" errors obvious
Closes #1130
See also #1942
2013-11-08 00:15:19 -06:00
Victor Vieux
49d7b87cfc prevent panic if you use API in a wrong way 2013-11-07 18:54:00 -08:00
Victor Vieux
f417c4b099 Merge branch '1887-allow_ro_volumes-from' of https://github.com/daniel-garcia/docker into daniel-garcia-1887-allow_ro_volumes-from 2013-11-07 17:59:55 -08:00
Guillaume J. Charmes
ef57752bce Deprecate old tagging format 2013-11-07 17:30:51 -08:00
Guillaume J. Charmes
4f8b6c3283 Merge pull request #2348 from SvenDowideit/2328-docker-events-since-date-string
Use string timestamp for docker events -since
2013-11-07 15:47:41 -08:00
Sven Dowideit
01fea3cf11 Closes #2328 - allow the user to specify a string timestamp (not just a unix epoch) in the string format that the docker cli shows to the user 2013-11-08 09:32:13 +10:00
Roberto Gandolfo Hashioka
eba3c36b38 - Included the sudo alternative as an example_header 2013-11-07 14:44:07 -08:00
Victor Vieux
49c4231f07 fix mergeConfig with new ports 2013-11-07 14:31:25 -08:00
Josh Poimboeuf
ec4657b28a network: add iptables rules to explicitly allow forwarding
Explicitly enable container networking for Fedora and other distros that
have a REJECT all rule at the end of their FORWARD table.
2013-11-07 16:23:39 -06:00
Roberto Gandolfo Hashioka
304d39cc50 - Fix the attach examples according to the new attach behavior
- Add the option of adding the user to docker's group and avoid the usage of "sudo" before each command
2013-11-07 14:06:49 -08:00
Michael Crosby
cd4f7321c9 Merge pull request #2589 from dotcloud/gofmt
Go fmt
2013-11-07 12:32:58 -08:00
Michael Crosby
132db329d4 Merge pull request #2591 from dotcloud/fix_Assign_id_as_name_when_all_else_fails
Fix Assign id as name when all else fails
2013-11-07 12:29:02 -08:00
Guillaume J. Charmes
6998c3c387 go fmt 2013-11-07 12:27:33 -08:00
Victor Vieux
26f846bf77 fix Assign id as name when all else fails 2013-11-07 12:23:29 -08:00
Andy Rothfusz
97c3de7e6b Fix 2585 and clean up warning in contributing.rst 2013-11-07 12:20:23 -08:00
Michael Crosby
b5c984f9b4 Merge pull request #2561 from dotcloud/add_iptabled_errors
Make iptable return an error in case of output
2013-11-07 09:15:09 -08:00
Daniel Mizyrycki
249f76bebd docker-ci 0.4.5: Sync tests with progress in docker and docker-registry. Use revamped shiny DinD. 2013-11-06 20:05:26 -08:00
Daniel Mizyrycki
e7df38dbd0 docker-ci 0.40. Migrate docker-ci to Digital Ocean. 2013-11-06 19:13:58 -08:00
Daniel Mizyrycki
efb4c800a7 docker-ci 0.37. Patch hack/dind with latest code for docker-test. 2013-11-06 19:13:58 -08:00
Daniel Mizyrycki
0cbeda7391 docker-ci 0.36. Patch hack/dind with latest code for nightly release to work. 2013-11-06 19:13:58 -08:00
Daniel Mizyrycki
1717227636 docker-ci 0.35. Push docker coverage and testing into docker-ci production. Update docker nightlyrelease 2013-11-06 19:13:58 -08:00
Daniel Mizyrycki
50dd9791f7 testing infrastructure, issue #1800: Refactor docker testing using Docker in Docker 2013-11-06 19:13:58 -08:00
Andy Rothfusz
9990db2f5a Fix bold 2013-11-06 18:07:55 -08:00
andy diller
2d1155407a updated create, showing how to set expose port and bind to public port for ssh 2013-11-06 18:07:55 -08:00
Andy Rothfusz
37dcff0c13 Merge pull request #2557 from jamtur01/new_redis
Updated Redis service example to use links. Removed "Linking Redis" example as redundant.
2013-11-06 17:54:34 -08:00
Andy Rothfusz
38f1838e82 Merge pull request #2567 from mck-/patch-1
Add -p when running the container (node example)
2013-11-06 17:34:11 -08:00
Andy Rothfusz
807a305f36 Merge pull request #1794 from justone/add-images-tree
add -tree option to images
2013-11-06 16:12:36 -08:00
Victor Vieux
cb1c90975b Merge pull request #2577 from dotcloud/bump_v0.6.6
Bump v0.6.6
2013-11-06 13:41:52 -08:00
Nate Jones
363738b8f2 updating cli help doc for images 2013-11-06 12:03:45 -08:00
Victor Vieux
6d420407ca Merge pull request #2577 from dotcloud/bump_v0.6.6
Bump v0.6.6
2013-11-06 12:03:03 -08:00
Alexander Larsson
157d99a727 lxc: Work around lxc-start need for private mounts
lxc-start requires / to be mounted private, otherwise the changes
it does inside the container (both mounts and unmounts) will propagate
out to the host.

We work around this by starting up lxc-start in its own namespace where
we set / to rshared.

Unfortunately go can't really execute any code between clone and exec,
so we can't do this in a nice way. Instead we have a horrible hack that
use the unshare command, the shell and the mount command...
2013-11-06 20:43:06 +01:00
Victor Vieux
360a694c52 Bump version to v0.6.6 2013-11-06 11:43:02 -08:00
Alexander Larsson
c5bc7d5158 Utils: Add ShellQuoteArguments 2013-11-06 20:39:09 +01:00
Nate Jones
16eba6bbb5 fix /images/json doc for 1.7 2013-11-06 11:30:04 -08:00
Victor Vieux
0dd6c6645b Merge pull request #2568 from mrallen1/fix/1965
See if a path exists before injecting Reader there
2013-11-06 10:57:06 -08:00
Michael Crosby
70f44d5531 Update documentation to reflect changes in Config and HostConfig 2013-11-06 10:01:58 -08:00
Guillaume J. Charmes
45aba3dc95 Merge pull request #2334 from SvenDowideit/2149-small-cli-usability-change
change ID to CONTAINER ID/IMAGE ID
2013-11-06 09:45:23 -08:00
Guillaume J. Charmes
c22ff0296e Merge pull request #1577 from mrallen1/fix/1502
Prevent DNS server conflicts in CreateBridgeIface
2013-11-06 07:52:50 -08:00
Guillaume J. Charmes
00f1398f7a Add debug to iptables 2013-11-06 07:37:43 -08:00
Mark Allen
74f853a2ae See if a path exists before injecting Reader there
Closes #1965
2013-11-05 23:44:52 -06:00
Daniel Norberg
20881f1f78 gograph: allow Walk() reentrance
Hold the read lock while reading the child graph,
then walk over the children without any lock, in
order to avoid deadlock.
2013-11-06 00:18:45 -05:00
Marc Kuo
3108f0526e Add -p when running the container
Without it, docker was not mapping/exposing the private port

Docker version 0.6.5, build 3ff8459
2013-11-05 20:48:16 -08:00
Nate Jones
22ef38ee79 fixup for rebase 2013-11-06 04:23:07 +00:00
Nate Jones
6d5b73c2a6 update "images" documentation 2013-11-06 04:23:07 +00:00
Nate Jones
b7d1d35c27 add image size to -tree 2013-11-06 04:23:07 +00:00
Nate Jones
f1aeac361a adding test for "images -tree" 2013-11-06 04:23:02 +00:00
Nate Jones
d9fe0647cb adding test for "images -viz" 2013-11-06 04:04:24 +00:00
Nate Jones
059bb7a262 make existing tests pass 2013-11-06 03:58:16 +00:00
Nate Jones
ec9a9a08b8 implement "images -tree" 2013-11-06 03:58:16 +00:00
Nate Jones
8f64759881 bring back /images/viz, but 404 for latest 2013-11-06 03:58:15 +00:00
Nate Jones
2a5998baf1 move "images -viz" to client 2013-11-06 03:58:15 +00:00
Nate Jones
dcf0279a50 fix "images -a" 2013-11-06 03:58:15 +00:00
Nate Jones
d7928b9a67 bump api version and ensure backward compat 2013-11-06 03:58:15 +00:00
Nate Jones
15867ff430 rework images JSON 2013-11-06 03:58:15 +00:00
Mark Allen
3560c922b1 Prevent DNS server conflicts in CreateBridgeIface
Retrieve /etc/resolv.conf data (if available)

Add checkNameserverOverlaps and call it to
make sure there are no conflicts

Add utils.GetNameserversAsCIDR and tests

Read /etc/resolv.conf and pull out nameservers,
formatting them as a CIDR block ("1.2.3.4/32")
2013-11-05 21:24:37 -06:00
Daniel Norberg
04aca7c9e3 gograph: Use RWMutex to allow concurrent readers 2013-11-05 22:07:14 -05:00
Guillaume J. Charmes
6113e1d62d Merge pull request #2566 from unclejack/fix_commands_test
fix build for commands_test
2013-11-05 15:45:22 -08:00
unclejack
cdf0cf495d fix build for commands_test 2013-11-06 01:41:54 +02:00
Daniel Norberg
1dc34e2b96 lock around read operations in graph
Writes and reads will fail with ErrBusy if there's
concurrent reads or writes, respectively. It is
not sufficient to only lock around writes.
2013-11-05 18:26:07 -05:00
Solomon Hykes
8d6df3a7e2 Remove debug messages 2013-11-05 23:00:20 +00:00
Solomon Hykes
e5f8ab6160 Engine: 'create' creates a container and prints its ID on stdout 2013-11-05 23:00:20 +00:00
Solomon Hykes
5c42b2b512 Fix main() 2013-11-05 23:00:20 +00:00
Solomon Hykes
d3f074494a Better error reporting in engine logs and unit tests 2013-11-05 23:00:20 +00:00
Solomon Hykes
434f06d03d Engine: fix a bug when encoding a job environment to json 2013-11-05 23:00:20 +00:00
Solomon Hykes
5a85456d48 Hack: simplify the creation of test directories 2013-11-05 23:00:16 +00:00
Andy Rothfusz
980eda4c25 Merge pull request #2562 from tchaudhri/patch-1
(doc) Update ubuntulinux.rst
2013-11-05 14:52:07 -08:00
Andy Rothfusz
bf05eb8ac0 Merge pull request #2423 from rogaha/volumes_doc
Added volumes documentation
2013-11-05 14:38:28 -08:00
Tianon Gravi
f3f9f652e1 Merge pull request #2563 from mzdaniel/desktop-integration
contrib: Desktop integration. Firefox usecase.
2013-11-05 14:02:13 -08:00
Victor Vieux
2205bb43ea Merge pull request #2298 from unclejack/2070-validate_src_for_bind_mounts
validate source for bind mounts
2013-11-05 13:31:10 -08:00
Daniel Mizyrycki
5af87d1475 contrib: Desktop integration. Firefox usecase. 2013-11-05 13:21:52 -08:00
unclejack
35430e8920 test: error out when bind mount source doesn't exist
This adds a test to verify that the server is checking whether the path
to be bind mounted actually exists on the server.
2013-11-05 22:54:24 +02:00
unclejack
4d2ba779e1 validate bind mounts on the server side
This changes the server side code to make sure that:
1) the source of a bind mount isn't /
   The bind mount "/:/foo" isn't allowed.
2) Check that the source exists
   The source to be bind mounted must exist.

This fixes issue #2070.
2013-11-05 22:54:24 +02:00
unclejack
f1f39616eb add test to ensure / can't be bind mounted
This adds a test which checks that we're erroring out when we attempt
to bind mount root in a container.
2013-11-05 22:54:24 +02:00
unclejack
4b8c41c4a2 disallow / as source for bind mount in the cli
This makes the docker cli reject docker run commands which include bind
mounts like "/:/some/path/in/the/container".
Bind mounting the root directory is a bad idea and the cli should throw
an error right away.

The same check will also be made by the remote API via another commit.
2013-11-05 22:52:54 +02:00
James Turnbull
e88368b34c Removed redundant linking example 2013-11-05 14:28:57 -06:00
Tehmasp Chaudhri
4d5ecdbeb4 (doc) Update ubuntulinux.rst
small grammar changes - hopefully not worse than original :)
2013-11-05 12:08:56 -07:00
Victor Vieux
114e01cdc1 Merge pull request #2554 from dotcloud/copy-config-on-build
Use parent image config in buildfile
2013-11-05 10:54:49 -08:00
Victor Vieux
7f7926525a Merge pull request #2517 from gurjeet/patch-2
Add gurjeet  as an author
2013-11-05 10:52:54 -08:00
Solomon Hykes
02ddaad5d9 Engine: optional environment variable 'Logging' in 'serveapi' 2013-11-05 18:39:59 +00:00
Solomon Hykes
4e7cb37dcc Engine: improved logging and identification of jobs 2013-11-05 18:39:59 +00:00
Solomon Hykes
ca6f0aa107 Engine: don't export private testing utilities 2013-11-05 18:39:59 +00:00
Solomon Hykes
847411a1ee Engine: fix a bug which caused handlers to be shared between multiple engine instances 2013-11-05 18:39:59 +00:00
Solomon Hykes
7b17d55599 httpapi: don't create a pidfile if it isn't set in the configuration 2013-11-05 18:39:59 +00:00
Solomon Hykes
958b4a8757 Engine: 'start' starts the specified container 2013-11-05 18:39:59 +00:00
Andy Rothfusz
714acf5ade Merge pull request #2559 from pattichen/master
Fix typo
2013-11-05 10:30:15 -08:00
Andy Rothfusz
962a66cd36 Merge pull request #2460 from SvenDowideit/2294-use-repo-colon-tag-everywhere
covert docker (commit|import|tag) to use REPOSITORY[:TAG]
2013-11-05 10:29:54 -08:00
Daniel Garcia
f9cb6ae46a Add ability to mount volumes in readonly mode using -volumes-from 2013-11-05 11:58:51 -06:00
Solomon Hykes
433c8e9c7d Separate a) initialization of the http api and b) actually serving the api into 2 distinct jobs 2013-11-05 17:41:37 +00:00
Guillaume J. Charmes
ff8a4ba0aa Check the output of iptables command. 2013-11-05 08:33:13 -08:00
Victor Vieux
dcaaecc815 Merge pull request #2558 from tianon/go-bump
Bump Dockerfile to go1.2rc3
2013-11-04 23:39:10 -08:00
pattichen
2cac813937 Fix typo 2013-11-04 22:36:57 -08:00
Tianon Gravi
fcc0ac6109 Bump Dockerfile to go1.2rc3 2013-11-04 21:12:18 -07:00
Victor Vieux
c5d4459a02 Merge pull request #2502 from hamo/unlink_err_v4
rewrite protocol check with switch-case in Server.Daemon
2013-11-04 17:46:46 -08:00
James Turnbull
1182797c6d Updated Redis service example to use links 2013-11-04 19:18:37 -06:00
Victor Vieux
a482bfd715 Merge pull request #2382 from dotcloud/reflect_future_changes_search_api
Update docker search to reflect future changes of the api
2013-11-04 16:14:14 -08:00
Tianon Gravi
8ad46ef401 Merge pull request #2365 from tianon/sysvinit-consistency
Update sysvinit script to fix a few inconsistencies and be more useful/correct downstream
2013-11-04 15:34:51 -08:00
Victor Vieux
854cc5f559 remove column size hack 2013-11-04 15:34:51 -08:00
Michael Crosby
57cd17f656 Merge pull request #2499 from dotcloud/2414-logs_tty-fix
Fix logs with tty
2013-11-04 14:22:08 -08:00
Michael Crosby
99141ea3ca Use parent image config in buildfile 2013-11-04 13:20:14 -08:00
Roberto Gandolfo Hashioka
3061e9f374 - Removed some unconfirmed info
- Added reference to the index.rst
2013-11-04 13:16:51 -08:00
Andy Rothfusz
19ad299600 Merge pull request #2534 from jamtur01/examples_fixes
A variety of syntax and style fixes for the Docker examples
2013-11-04 12:35:57 -08:00
Victor Vieux
177a2f5946 add CmdLogs test 2013-11-04 12:23:35 -08:00
Victor Vieux
1f44fd8624 Fix logs with tty 2013-11-04 12:19:20 -08:00
Guillaume J. Charmes
c065e564fb Merge pull request #2549 from dotcloud/ensure-container-name
Ensure container name on register
2013-11-04 12:12:42 -08:00
Guillaume J. Charmes
342bd43b76 Merge pull request #2525 from dotcloud/fix_hostnames
Fix regression in /etc/hosts
2013-11-04 11:26:27 -08:00
Guillaume J. Charmes
b380866f44 Merge pull request #2551 from dotcloud/concurrent-db-access
Add lock around write operations in graph
2013-11-04 11:24:59 -08:00
Andy Rothfusz
dc333878d2 Merge pull request #2533 from jamtur01/add_sudo
Some format and syntax changes.
2013-11-04 11:24:51 -08:00
Guillaume J. Charmes
261c2e23d3 Merge pull request #2501 from dotcloud/2480-check_port-fix
check port is valid
2013-11-04 11:23:55 -08:00
Michael Crosby
957db15ef4 Add lock around write operations in graph
The graph uses a persistent database connection so
a lock is required because our current sqlite3 driver
does not implement retry logic when the ErrBusy is received.
2013-11-04 10:28:38 -08:00
Michael Crosby
a9ed238bb7 Ensure container name on register 2013-11-04 09:28:40 -08:00
Michael Crosby
35690e76b4 Merge pull request #2409 from pnasrat/2089-fix-restart-runtime-error
Fix restart runtime error with ghost container networking
2013-11-04 08:55:11 -08:00
Michael Crosby
2a0efb2324 Merge pull request #2427 from thequux/send-headers-immediately
Make /events API send headers immediately
2013-11-04 08:49:27 -08:00
Michael Crosby
a4ccbc6e95 Merge pull request #2542 from oguzbilgic/changelog-0.6.5
Remove duplicate titles in changelog entries of v0.6.5
2013-11-04 08:25:22 -08:00
Michael Crosby
2824b05235 Merge pull request #2537 from jamtur01/more_names
Added some more colors and animals to increase the pool
2013-11-04 08:23:23 -08:00
Oguz Bilgic
fbfb7595b1 Remove duplicate titles in changelog entries of v0.6.5 2013-11-04 08:20:05 -05:00
Sven Dowideit
b840b73b08 tiny table heading tweak for #2149 - change ID to CONTAINER ID/IMAGE ID or IMAGE (the later if it could be an ID or a repo:tag 2013-11-04 22:10:51 +10:00
Sven Dowideit
1f3cdc11ee conert docker (commit|import|tag) to use REPOSITORY[:TAG] (and repove support for REPOSITORY TAG) 2013-11-04 22:07:55 +10:00
Paul Nasrat
95708dd35c Create new network on dead ghosts on restart.
Fixes #2089
2013-11-03 14:13:18 -05:00
James Turnbull
a51fb4dd35 Added some more colors and animals to increase the pool 2013-11-03 11:49:29 -06:00
Paul Nasrat
4cbb6ce13b Introduce failing test case for #2089 2013-11-03 11:14:59 -05:00
James Turnbull
1cb4557cc8 A variety of syntax and style fixes for the Docker examples
* Made Docker a proper noun when needed.
* Fixed code syntax
* Fixed some whitespace issues
* Fixed some typos and grammar
* Tidied up some examples
2013-11-02 18:26:52 -07:00
James Turnbull
c33d26a8da Some format and syntax changes.
* Added sudo as per convention to docker commands
* Break the Dockerfile block up
* Redis is a proper noun
* Minor whitespace fixes
2013-11-02 17:53:44 -07:00
Andy Rothfusz
5a9adfe9fb Add known issues. Fix build warnings. 2013-11-01 16:06:46 -07:00
Victor Vieux
f3685333c0 fix regression in /etc/hosts 2013-11-01 15:46:26 -07:00
Victor Vieux
fc45535197 Merge pull request #2503 from dotcloud/2500-inspect-fix
Client: Inspect fix
2013-11-01 15:24:05 -07:00
Victor Vieux
8f27e23b4b Merge pull request #2457 from dotcloud/2454_do_not_split_last_column
RemoteAPI: Do not split last column docker top
2013-11-01 15:21:47 -07:00
Andy Rothfusz
4194617bfe Add known issues to sections via new "issues" extension. 2013-11-01 15:15:06 -07:00
Victor Vieux
d8bcd1c231 Merge pull request #2497 from dotcloud/jpetazzo-escape-apparmor-confinement
Runtime: escape apparmor confinement
2013-11-01 15:07:54 -07:00
Andy Rothfusz
f6b4a1ec95 Merge pull request #2521 from jamtur01/porttypo
Fixed 127.0.0.0 typo in cli.rst
2013-11-01 14:08:27 -07:00
Victor Vieux
7ddd4fe66a rebase 2013-11-01 14:01:32 -07:00
James Turnbull
dcf4633e95 Fixed 127.0.0.0 typo in cli.rst 2013-11-01 14:00:02 -07:00
Andy Rothfusz
b30dc8c3ea Merge pull request #2510 from GrilloPress/patch-1
Update windows.rst
2013-11-01 13:56:23 -07:00
Andy Rothfusz
feef16bd88 Merge pull request #2512 from dudebout/correct-basics-doc
Corrects the TCP section of the basics use
2013-11-01 13:55:28 -07:00
Victor Vieux
f9901ead06 use a symlink instead of a copy 2013-11-01 13:55:19 -07:00
Jérôme Petazzoni
31638ab2ad Refactor HostConfig and escape apparmor confinement 2013-11-01 13:55:19 -07:00
Andy Rothfusz
33d8c736fc Merge pull request #2479 from dudebout/port-redirection-doc
Port redirection doc
2013-11-01 13:43:53 -07:00
Gurjeet Singh
9ebac49be0 Add myself as an author 7e09c633
One of my patches was incorporated into Docker, and at that time I didn't know that I was supposed to add myself into this list of contributors.

Commit ID: 7e09c6332d

And a few other patches are already in the pipeline.
2013-11-01 12:31:50 -05:00
Michael Crosby
65ba2868d7 Merge pull request #2492 from dotcloud/publish-all-flag
Add -P flag to publish all exposed ports
2013-11-01 10:21:02 -07:00
Dan Hirsch
a963ff5d8d Added explicit Flush method to utils.WriteFlusher 2013-11-01 13:11:21 -04:00
Nicolas Dudebout
c0e51a8f27 Rework the port direction documentation
+ remove PUBLIC and PRIVATE keywords
+ add the <host_interface>
+ add the -expose flag through a simple link example
+ update the meaning of the EXPOSE command
2013-11-01 12:18:04 -04:00
Nicolas Dudebout
f2ebccb5aa Corrects the TCP section of the basics use 2013-11-01 12:14:43 -04:00
Andrew Duckworth
db2e2e831b Update windows.rst
Added further information regarding how to access BIOS menus on Windows machines (laptops). My laptop required restarting to find the options and this information will undoubtedly help other users.
2013-11-01 13:59:25 +00:00
Aanand Prasad
9ee9d2f995 Container memory limit can be specified in kilobytes, megabytes or gigabytes
-m 10  # 10 bytes
    -m 10b # 10 bytes
    -m 10k # 10240 bytes (10 * 1024)
    -m 10m # 10485760 bytes (10 * 1024 * 1024)
    -m 10g # 10737418240 bytes (10 * 1024 * 1024 * 1024)

Units are case-insensitive, and 'kb', 'mb' and 'gb' are equivalent to 'k', 'm' and 'g'.
2013-11-01 12:00:17 +00:00
Solomon Hykes
4dc156252b Merge pull request #2498 from dotcloud/move-archive
Move archive.go to sub package
2013-10-31 20:33:53 -07:00
Victor Vieux
747967b4a4 rebase and add some filters 2013-10-31 19:25:55 -07:00
Victor Vieux
02b5202432 update docker search to reflect future changes of the api 2013-10-31 19:14:11 -07:00
Victor Vieux
7f07ae9e42 check port is valid 2013-10-31 19:00:14 -07:00
Victor Vieux
a89a98e594 fix inspect error message 2013-10-31 18:50:58 -07:00
Yang Bai
7848007c3a rewrite protocol check with switch-case in Server.Daemon 2013-11-01 09:42:44 +08:00
Victor Vieux
40ed10cc32 fix inspect when it returns nothing valid 2013-10-31 18:39:44 -07:00
Michael Crosby
96d1e9bb5a Move archive.go to sub package 2013-10-31 16:57:45 -07:00
Victor Vieux
e3c49843d7 Merge pull request #2494 from shykes/engine-links
Engine: Minimal, unintrusive implementation of a cleaner Job API.
2013-10-31 16:32:49 -07:00
Tianon Gravi
3e7b9763aa Merge pull request #2496 from philips/patch-1
Update systemd service file with a better description
2013-10-31 14:55:30 -07:00
Brandon Philips
393562340c fix(systemd): provide a better description
Fix-up the docker service file description to declare what the service is not what it does.

When a systemd machine starts up the Description of each unit scrolls by instead of the service's filename. Because the current description doesn't say what it is it isn't very friendly:

```
Oct 31 20:40:49 localhost systemd[1]: Started Update Engine.
Oct 31 20:40:49 localhost systemd[1]: Starting Multi-User System.
Oct 31 20:40:49 localhost systemd[1]: Reached target Multi-User System.
Oct 31 20:40:49 localhost systemd[1]: Starting Easily create lightweight, portable, self-sufficient containers from any application!...
Oct 31 20:40:49 localhost systemd[1]: Started Easily create lightweight, portable, self-sufficient containers from any application!.
```
2013-10-31 14:41:49 -07:00
Andy Rothfusz
d5891f9fb0 Merge pull request #2482 from elee/patch-1
correct assignment of $PORT from docker port output
2013-10-31 12:18:24 -07:00
Andy Rothfusz
09607bb8f6 Merge pull request #2475 from dudebout/patch-2
Fixes the password value in the redis/links example
2013-10-31 12:17:43 -07:00
Andy Rothfusz
35044efce5 Merge pull request #2477 from dudebout/patch-3
Fixes typo in the CLI documentation
2013-10-31 12:17:06 -07:00
Michael Crosby
652f07bb59 Add -P flag to publish all exposed ports 2013-10-31 11:28:30 -07:00
Andy Rothfusz
54024ddd8a Merge pull request #2462 from tlunter/fix_remote_api_doc
Fix formatting on build-an-image-from-dockerfile-via-stdin
2013-10-31 10:56:38 -07:00
Zilin Du
b543516556 Merge remote-tracking branch 'upstream/master'
Conflicts:
	container.go
2013-10-31 10:53:40 -07:00
Michael Crosby
e37a7d4981 Merge pull request #2305 from mzdaniel/1800-testing-dind
Testing infrastructure, issue #1800: Refactor docker testing using Docker in Docker
2013-10-31 09:42:19 -07:00
Nicolas Dudebout
7e7c931d2b Fixes another instant of the password 2013-10-31 08:55:14 -04:00
Todd Lunter
3a14d4c923 Fixed the quoted text 2013-10-31 08:46:16 -04:00
Victor Vieux
15457febbb Merge pull request #2481 from tmc/patch-1
Fix typo in redis doc
2013-10-31 01:24:04 -07:00
Eric Lee
df1621914b correct assignment of $PORT from docker port output
in the example, PORT is assigned to "0.0.0.0:<port>" vs "<port>" as in previous versions of docker (I encountered this documentation discrepancy tonight after installing docker v0.6.5)
2013-10-31 01:08:16 -04:00
Travis Cline
f77bbfca56 Fix typo 2013-10-31 00:07:58 -05:00
Nicolas Dudebout
87a250b711 Fixes typo in the CLI documentation 2013-10-30 23:09:02 -04:00
Nicolas Dudebout
ccc1a5dcfb Fixes the password value in the redis/links example 2013-10-30 22:52:47 -04:00
Victor Vieux
ca2bbe716c add 0.6.5 2013-10-30 19:30:32 -07:00
Oguz Bilgic
13ab83a8a5 Reformat CHANGELOG.md
* Add line after headers
* Remove space before bullet points
* Fix ' character
* Create sub-headers
* Group add fix etc. Upper-case
* Use head to trac current progress
2013-10-30 19:30:32 -07:00
Victor Vieux
429c3108da Merge pull request #2473 from dotcloud/remove-panic-from-name
Assign id as name when all else fails
2013-10-30 19:22:57 -07:00
Victor Vieux
bdbb0371a7 Merge pull request #1536 from griff/envfile
Runtime: Keep env variables out of the command line
2013-10-30 19:20:29 -07:00
Victor Vieux
c1c65f972a Merge pull request #2470 from metalivedev/2369-docuncompress
Documenting decompression behavior.
2013-10-30 19:14:51 -07:00
Victor Vieux
4b8a176ee0 Merge pull request #2432 from SvenDowideit/doc-stop-kill-details
IRC: add SIGTERM and SIGKILL details to docker stop and kill docco
2013-10-30 18:57:07 -07:00
Victor Vieux
4dfa28fb95 Merge pull request #2299 from tmc/master
Client: Add -notrunc and -q flags to docker history
RemoteAPI: Add size to history
2013-10-30 18:52:18 -07:00
Michael Crosby
8227ea35cf Assign id as name when all else fails 2013-10-30 18:31:18 -07:00
Travis Cline
1099d172a2 Add flags to history, add size flag 2013-10-30 19:41:20 -05:00
Brian Olsen
1c3a674444 Fixed problem with variables containing \n.
The /.dockerenv file is now a marshalled json array so that environment
variables with \n and other weird values are supported.
2013-10-31 01:19:32 +01:00
Brian Olsen
25c4c87c86 Support copying value from env with -e option. 2013-10-31 01:19:09 +01:00
Andy Rothfusz
26f4d6bf59 Fix #2369 by documenting decompression behavior. 2013-10-30 16:50:58 -07:00
Brian Olsen
be7eb4bfcb Set environment variables using a file. 2013-10-31 00:48:12 +01:00
Michael Crosby
5eb472025a Merge pull request #2456 from dotcloud/update_release_checklist.md
Update RELEASE-CHECKLIST.md to reflect new changes
2013-10-30 16:38:09 -07:00
Andy Rothfusz
bdd12bb703 Merge pull request #2274 from peterbraden/2137-docs
Re #2137 Note about vagrant dns in the test documentation
2013-10-30 16:32:35 -07:00
Michael Crosby
ef00317a70 Merge branch 'release' back to master 2013-10-30 16:09:02 -07:00
Victor Vieux
3ff845904d set containers comm to true by default 2013-10-30 15:06:28 -07:00
Victor Vieux
ec488fa123 fix warning in build 2013-10-30 15:06:01 -07:00
Michael Crosby
d7fac67e0a Merge pull request #2469 from dotcloud/hotfix_release2
Hotfix changes for default values in 0.6.5
2013-10-30 15:04:38 -07:00
Victor Vieux
f7c40a87f3 set containers comm to true by default 2013-10-30 14:48:19 -07:00
Victor Vieux
ee81405567 fix warning in build 2013-10-30 14:36:38 -07:00
Michael Crosby
23b3747945 Merge pull request #2467 from dotcloud/release_hotfix
0.6.5 hotfixes
2013-10-30 13:21:20 -07:00
Victor Vieux
1c7ca51f32 fix typos 2013-10-30 13:18:48 -07:00
Michael Crosby
1edde0e8a3 Update links and host integration documentation 2013-10-30 13:11:02 -07:00
Victor Vieux
596facd124 fix typos 2013-10-30 13:06:47 -07:00
Victor Vieux
4fd389eee5 fix remove root name and fix error messages 2013-10-30 13:06:43 -07:00
Victor Vieux
6a9fb81c57 improve error message 2013-10-30 13:06:39 -07:00
Victor Vieux
5fb6d6e47c continue build on expose with :, but displays a warning 2013-10-30 13:06:34 -07:00
Michael Crosby
a4d97a4e80 Update links and host integration documentation 2013-10-30 11:59:05 -07:00
Victor Vieux
3362aaa4df fix remove root name and fix error messages 2013-10-30 11:45:11 -07:00
Victor Vieux
8fa6e2b103 improve error message 2013-10-30 11:24:50 -07:00
Victor Vieux
b2503a72f1 continue build on expose with :, but displays a warning 2013-10-30 11:13:10 -07:00
Michael Crosby
bb662bc12c Merge pull request #2466 from dotcloud/hot-fix-restart-public-mappings
Hotfix: Migrate public mappings after upgrade
2013-10-30 09:35:56 -07:00
Michael Crosby
79bf2c2b0e Hotfix: Migrate public mappings after upgrade 2013-10-30 09:02:23 -07:00
Michael Crosby
746ba127bf Hotfix: Migrate public mappings after upgrade 2013-10-30 08:15:12 -07:00
Todd Lunter
e7402ed9cc Fix formatted on build 2013-10-30 08:50:21 -04:00
Victor Vieux
fb4672c52c do not split last column docker top 2013-10-29 19:03:41 -07:00
Victor Vieux
9420e8def7 update RELEASE-CHECKLIST.md to reflect new changes 2013-10-29 15:34:33 -07:00
Michael Crosby
4f6ce1ba9e Merge pull request #2428 from dotcloud/bump_0.6.5
Bump to version 0.6.5
2013-10-29 14:56:54 -07:00
Victor Vieux
2a9c18af52 Merge pull request #2453 from dotcloud/remove_logs_from_tests
Testing: remove some logs from tests
2013-10-29 14:43:37 -07:00
Victor Vieux
86970d00bb remove some logs from tests 2013-10-29 14:42:34 -07:00
Michael Crosby
da054148dc Bump to version 0.6.5 2013-10-29 14:42:20 -07:00
Michael Crosby
0174951195 Merge branch 'master' into bump_0.6.5 2013-10-29 14:41:47 -07:00
Michael Crosby
caa7cf14c0 Merge pull request #2426 from dotcloud/enable_sigproxy_default
Enable sig-proxy by default in run and attach
2013-10-29 14:39:17 -07:00
Victor Vieux
700a71e6b6 stop proxy at one point 2013-10-29 14:29:01 -07:00
Andy Rothfusz
02e0fdee57 Merge pull request #2429 from SvenDowideit/add-more-doc-pointers
tell potential doc updaters and contributors more details
2013-10-29 14:07:12 -07:00
Andy Rothfusz
baf23d3c3e Merge pull request #2443 from tlunter/fix_remote_api_doc
Container commit doesn't use a query parameter, uses POST body
2013-10-29 14:04:22 -07:00
Michael Crosby
5b75aea704 Merge pull request #2449 from tianon/remove-stackbrew-remnants
Remove old remnants of stackbrew now that it's a separate project
2013-10-29 14:00:33 -07:00
Michael Crosby
d91e145332 Merge pull request #2448 from keeb/fix-dsfg-readme
Fix export clause in readme
2013-10-29 13:44:03 -07:00
Michael Crosby
1384db5e7f Merge pull request #2451 from tianon/clarify-go-requirement
Clarify Go 1.2rc2 / Go 1.1.2 requirements in hack/PACKAGERS.md
2013-10-29 13:41:01 -07:00
Tianon Gravi
ff147707b2 Clarify Go 1.2rc2 / Go 1.1.2 requirements in hack/PACKAGERS.md 2013-10-29 13:41:26 -06:00
Tianon Gravi
05430c7170 Merge pull request #2433 from tianon/sqlite-dep
Add SQLite dep to hack/PACKAGERS.md
2013-10-29 12:27:26 -07:00
Tianon Gravi
eb79e8c5dd Remove old remnants of stackbrew now that it's a separate project 2013-10-29 13:14:15 -06:00
Nick Stinemates
b48fc96579 Fix export clause
This makes our clause DSFG acceptable.
2013-10-29 12:06:48 -07:00
Victor Vieux
e0b59ab52b Enable sig-proxy by default in run and attach 2013-10-29 11:18:34 -07:00
Michael Crosby
a6a274f312 Merge pull request #2431 from relateiq/2430-links-ip-env
Expose addr, port, proto env variables when linking, Closes #2430
2013-10-29 11:02:46 -07:00
Todd Lunter
4f5790d104 Update all older docs too 2013-10-29 13:57:42 -04:00
Todd Lunter
70c976de03 Doesn't use a query parameter, uses POST body 2013-10-29 10:17:12 -04:00
Julien Barbier
4947f61c20 Updated dotCloud,Inc. to Docker, Inc. 2013-10-29 06:11:36 -07:00
Scott Bessler
1de23f1b81 Expose IP, port, proto as sep. env vars when linking, Closes #2430 2013-10-28 23:02:28 -07:00
Tianon Gravi
b283900764 Add SQLite dep to hack/PACKAGERS.md and clean up a few other tiny inconsistencies 2013-10-28 21:57:20 -06:00
Sven Dowideit
82f1514895 docker stop sends SIGTERM and SIGKILL, docker kill sends SIGKILL 2013-10-29 13:37:43 +10:00
Sven Dowideit
e47f9984f8 add links to the Dockerfiles as canonical external requirements, add example of building and exposing the docs and simplify the Dockerfile for cacheability 2013-10-29 12:58:58 +10:00
Michael Crosby
b038b0cd44 Merge pull request #2162 from dotcloud/links
Links and Container Naming
2013-10-28 19:24:10 -07:00
Michael Crosby
7e8b2c3836 Make sure only links are removed and not names 2013-10-28 19:19:31 -07:00
Dan Hirsch
dd9f4524d1 Make /events API send headers immediately
Go's net/http API does not send headers until the first call to
ResponseWriter.Write().  Ordinarily, this is fine, because in most
cases, responses are returned immediately.  However, for the events
API, nothing is written until some event is sent, which causes
timeouts and/or hangs in some HTTP client APIs, which wait for headers
before returning from the "make request" call.
2013-10-28 21:39:21 -04:00
Michael Crosby
a52e23c5e4 Merge pull request #2425 from dotcloud/links-allow-name
Add -name for docker run
2013-10-28 18:16:06 -07:00
Michael Crosby
0d2924408b Add -name for docker run
Remove docker link
Do not add container id as default name
Create an auto generated container name if not
specified at runtime.
2013-10-28 18:09:08 -07:00
rogaha
91d721aaf4 - Added volumes documentation 2013-10-28 17:24:03 -07:00
Andy Rothfusz
76afb6e73d Merge pull request #2421 from dudebout/patch-1
Fixes the flags for nc in example
2013-10-28 17:01:53 -07:00
Victor Vieux
c0662488c7 Merge pull request #2422 from dotcloud/links_names_generator
Add name generator for container without -name
2013-10-28 15:34:16 -07:00
Victor Vieux
971cf56d89 add name generator 2013-10-28 15:19:52 -07:00
Tianon Gravi
865649d7ac Update sysvinit script to fix a few inconsistencies and be more useful/correct downstream 2013-10-28 14:08:21 -06:00
Nicolas Dudebout
50bb4a1636 Fixes the flags for nc
The `-p` flag for `nc` should not be used with `-l`.
2013-10-28 15:48:18 -04:00
Andy Rothfusz
3c0c75bbf9 Merge pull request #2413 from rutsky/patch-1
Fix typo
2013-10-28 12:08:04 -07:00
Andy Rothfusz
7f95c7aeec Merge pull request #2417 from rutsky/patch-2
fix typo
2013-10-28 12:07:46 -07:00
Vladimir Rutsky
395a24ffd5 fix typo 2013-10-28 09:35:09 +03:00
Vladimir Rutsky
45d94944f3 Fix typo 2013-10-28 02:45:12 +03:00
Solomon Hykes
a13241d370 Engine: Engine.Job() never fails, to mimic the os/exec API (and make usage less verbose) 2013-10-26 17:49:16 -07:00
Solomon Hykes
e8491ae54c Engine: cleanly log the start and end of each engine job 2013-10-26 17:17:45 -07:00
Solomon Hykes
464ded79fc Close sqlite persistent connection on SIGINT, SITERM or SIGKILL 2013-10-26 14:28:53 -07:00
Solomon Hykes
c1ae1a0e1c Setup daemon pidfile/cleanup in Server.Daemon() instead of main() 2013-10-26 14:26:07 -07:00
Solomon Hykes
c542b2f873 Rename ConfigGetenv to ConfigFromJob 2013-10-26 14:24:25 -07:00
Solomon Hykes
7e691e11b0 Rename 'GraphPath' to the more logical 'Root'. This does not affect users except for a slight text change in the usage messge 2013-10-26 14:24:13 -07:00
Solomon Hykes
1b8eef4efb Engine: centralize checks for supported architectures and kernel versions 2013-10-26 14:21:04 -07:00
Solomon Hykes
2a29bf6245 Engine: basic testing harness 2013-10-26 14:18:28 -07:00
Solomon Hykes
0d1a825137 Minimal, unintrusive implementation of a cleaner Job API.
* Implement a new package: engine. It exposes a useful but minimalist job API.
* Refactor main() to instanciate an Engine instead of a Server directly.
* Refactor server.go to register an engine job.

This is the smallest possible refactor which can include the new Engine design
into master. More gradual refactoring will follow.
2013-10-26 14:18:13 -07:00
Solomon Hykes
60b97576cf Fix build on darwin 2013-10-26 14:14:50 -07:00
Victor Vieux
54d3b4dd28 Merge pull request #2400 from dotcloud/remove_newline_debugf
Removes \n from debugf calls
2013-10-25 18:01:19 -07:00
Victor Vieux
8f39f0b57d Removes \\n from debugf calls 2013-10-25 17:50:40 -07:00
Victor Vieux
d5c7e92a9a fix docker ps display 2013-10-25 17:36:23 -07:00
Michael Crosby
110b944f45 Merge pull request #2399 from dotcloud/fix_race_stdin_cli
Only pass stdin to hijack when needed
2013-10-25 17:32:36 -07:00
Victor Vieux
13c521526d only pass stdin to hijack when needed 2013-10-25 17:17:33 -07:00
Victor Vieux
516cf54843 prevent default name to be deleted and return an error on invalid link 2013-10-25 16:49:49 -07:00
Michael Crosby
356af1540f Ensure child containers are started before parents 2013-10-25 15:13:26 -07:00
Michael Crosby
2e6b241dc7 Add default entity and edge to graph on runtime load 2013-10-25 15:13:26 -07:00
Michael Crosby
94e5081bac Move iptable rules outside of create bridge
This allows the user to toggle enabling and
disabling intercontainer communication when
they run the daemon.
2013-10-25 15:13:26 -07:00
Michael Crosby
e179a24ad5 Update TestLinkEnv for default port 2013-10-25 15:13:25 -07:00
Victor Vieux
da864a845b Remove proto frpm default port 2013-10-25 15:13:25 -07:00
Tianon Gravi
640682d56c Fix "go test -i" to include the proper LDFLAGS and BUILDFLAGS 2013-10-25 15:13:25 -07:00
Victor Vieux
66a159342b update docker port command 2013-10-25 15:13:25 -07:00
Michael Crosby
7c882a8003 Move name parsing logic to GetByName method 2013-10-25 15:13:25 -07:00
Michael Crosby
7d440f70fd Add missing else when checking for linkgraph.db 2013-10-25 15:13:25 -07:00
Solomon Hykes
0c9b319dd0 Hack: fix test and dyntest to correctly use $TESTFLAGS 2013-10-25 15:13:25 -07:00
Michael Crosby
7c08aeeba4 Use persistent connection for links database
Add close method to Runtime and Server to make sure
that any underlying connections are cleaned up
2013-10-25 15:13:25 -07:00
Michael Crosby
7072d2aaca Close connection in Get method 2013-10-25 15:13:25 -07:00
Tianon Gravi
21161dbd51 Add dynbinary and dyntest scripts for building/testing a separate static dockerinit binary
After a nice long brainstorming session with @shykes on IRC, we decided on using a SHA1 hash of dockerinit compiled into the dynamic docker binary to ensure that we always use the two in a perfect pair, and never mix and match.
2013-10-25 15:13:25 -07:00
Tianon Gravi
cf86e2bb22 Rename all cases of "docker-init" to "dockerinit" for consistency 2013-10-25 15:13:25 -07:00
Tianon Gravi
d789750851 Refactor the handling of static-related build flags
This is as discussed with @shykes on IRC
2013-10-25 15:13:25 -07:00
Tianon Gravi
fb8d488896 Add a few small consistency tweaks in hack 2013-10-25 15:13:25 -07:00
Victor Vieux
dbe7d67c18 fix tests 2013-10-25 15:13:25 -07:00
Victor Vieux
6c863b49ef remove docker ls and add docker link in usage and switch to go1.2rc2 2013-10-25 15:13:25 -07:00
Victor Vieux
89fb51f606 fix merge issue and gofmt 2013-10-25 15:13:25 -07:00
Victor Vieux
256b7537e3 no more name encoding 2013-10-25 15:13:25 -07:00
Victor Vieux
c4923757f1 replace == by HasPrefix for names and improve error message 2013-10-25 15:13:25 -07:00
Victor Vieux
387aeb78fb refactor notrunc in commands.go to add names support 2013-10-25 15:13:24 -07:00
Victor Vieux
99a9783abc fix typo in docs 2013-10-25 15:13:24 -07:00
Michael Crosby
0e24db3a68 Updated fixes post rebase from master
Removed test cases that are no longer
applicable with links and the port changes.
Remove test case where a test was hitting an
external ip.
2013-10-25 15:13:24 -07:00
Alexander Larsson
db99966724 Move SysInit to a submodule
This allows docker-init to not import the main docker
module, which means it won't e.g. pick up any sqlite
dependencies.
2013-10-25 15:13:24 -07:00
Alexander Larsson
d063c8d941 Move ListOps to utils submodule
This will be needed for later use in docker-init without a docker
dependency
2013-10-25 15:13:24 -07:00
Alexander Larsson
249f5a65a5 Add a network test
This just tries pinging first 127.0.0.1 and then 8.8.8.8.

We can't ping via a dns name, because libresolv.so is missing
from the test image, so dns resolving doesn't work.
2013-10-25 15:13:24 -07:00
Alexander Larsson
494cd07f72 network: Stop shelling out to /sbin/ip
We have our own netlink version of all the required calls now, so
we can just skip the /sbin/ip dependency.
2013-10-25 15:13:24 -07:00
Alexander Larsson
607c1a520e Use netlink directly instead of /bin/ip in Sysinit
The sysinit code only uses /bin/ip to set a default gateway. This
is pretty easy to do via netlink directly, so we can avoid
the ip dependency.
2013-10-25 15:13:24 -07:00
Alexander Larsson
bf61d41d6c Add netlink submodule
This contains various operations that can replace the use of
shelling out to "ip".
2013-10-25 15:13:24 -07:00
Michael Crosby
ce965b8c43 Add flag for inter-container communication 2013-10-25 15:13:24 -07:00
Solomon Hykes
f7a2f0b937 Typos and FIXMEs 2013-10-25 15:13:24 -07:00
Solomon Hykes
4576d0f802 gograph: fix a bug which caused the unicity of (parent, name) to not be enforced 2013-10-25 15:13:24 -07:00
Michael Crosby
515070d513 Remove docker ls from docs and cli usage 2013-10-25 15:13:24 -07:00
Michael Crosby
1cbdaebaa1 Add links for container relationships and introspection 2013-10-25 15:13:24 -07:00
Michael Crosby
ff567f8729 Merge pull request #2385 from dotcloud/suppress_even_more_warnings_test
Improve tests again, remove warnings and prevent some mount issues
2013-10-25 15:04:56 -07:00
Jérôme Petazzoni
279791bc74 Merge pull request #2378 from tianon/linkify-github-ids
Linkify @github references in the infrastructure README.md
2013-10-25 11:30:25 -07:00
Mathieu Le Marec - Pasquet
b64ce8e33c Do not drop sys_boot
This fixes #2391
2013-10-25 18:41:03 +02:00
Andy Rothfusz
1e704a4ddc Merge pull request #2355 from xdissent/patch-1
Typo in host integration docs
2013-10-24 19:05:22 -07:00
Victor Vieux
31111f61e0 Merge pull request #1963 from rogpeppe/master
Client: Use less reflection in command-line method invocation
2013-10-24 18:03:20 -07:00
Michael Crosby
217b6070f0 Merge pull request #2383 from jpetazzo/cleanup-errclosedpipe-for-stdin
Ignore ErrClosedPipe for stdin in Container.Attach.
2013-10-24 17:18:28 -07:00
Michael Crosby
36c26a0f0f Merge pull request #2384 from dotcloud/suppress_warning_tty_tests
Change logic for tty resize to avoid warning in tests
2013-10-24 16:59:13 -07:00
Victor Vieux
a675e249b1 fix workdir, hostname tests and a bunch on mount issue 2013-10-24 16:57:35 -07:00
Victor Vieux
acc2aec988 remove log 2013-10-24 15:13:47 -07:00
Victor Vieux
0e021ed470 swap cat by top to prevent 2 warnings 2013-10-24 15:06:10 -07:00
Jérôme Petazzoni
b9eb5e04ae Ignore ErrClosedPipe for stdin in Container.Attach.
But pass `err` in the error channel anyway; don't ignore it anymore.
2013-10-24 15:04:58 -07:00
Victor Vieux
0e44864b66 change logic for tty resize to avoid warning in tests 2013-10-24 14:54:04 -07:00
Michael Crosby
e661473bcd Merge pull request #2379 from dotcloud/2377-remove_resize_race-fix
Monitor the tty after starting the container
2013-10-24 12:31:31 -07:00
Tianon Gravi
98c94dd4db Merge pull request #2364 from tianon/sudo-modprobe
Fix install.sh with $sh_c to get sudo/su for modprobe
2013-10-24 11:24:23 -07:00
Victor Vieux
656b66e51b monitor the tty after starting the container 2013-10-24 11:19:06 -07:00
Tianon Gravi
c9375d14fc Linkify @github references in the infrastructure README.md 2013-10-24 11:54:06 -06:00
Michael Crosby
489c370fcc Merge pull request #2367 from dotcloud/remove_useless_exit
Remove useless os.Exit() after log.Fatalf
2013-10-24 09:18:45 -07:00
Tianon Gravi
aa6c99aff6 Merge pull request #2363 from tianon/mkimage-numeric-owner
Update all the mkimage scripts to use --numeric-owner as a tar argument
2013-10-24 06:42:52 -07:00
Victor Vieux
92384649cf remove useless os.Exit() after log.Fatalf 2013-10-24 00:25:55 -07:00
Victor Vieux
c2413889bb Merge pull request #2354 from hamo/refac_parsehost
refactor utils.ParseHost with switch-case, so we can add other proto support easily
2013-10-24 00:22:50 -07:00
Yang Bai
e81da876df let utils.ParseHost return err when errors happen 2013-10-24 13:23:02 +08:00
Tianon Gravi
f0dbdba5c0 Merge pull request #2263 from tianon/hack-release
Update hack/release.sh process to automatically invoke hack/make.sh and bail on building/testing issues
2013-10-23 15:31:16 -07:00
Tianon Gravi
0324e567ad Fix install.sh with $sh_c to get sudo/su for modprobe 2013-10-23 15:48:30 -06:00
Tianon Gravi
ef5cf6c1ec Merge pull request #2226 from tianon/init
Add initial init scripts library and better/safer Ubuntu packaging that works for Debian, too
2013-10-23 14:29:41 -07:00
Tianon Gravi
afaddd04f7 Merge pull request #2306 from tianon/fix-ubuntu-install-aufs
Update hack/install.sh with some more Ubuntu-specific installation stuff...
2013-10-23 14:22:55 -07:00
Tianon Gravi
8e43db95f2 Update all the mkimage scripts to use --numeric-owner as a tar argument to properly preserve ownership 2013-10-23 14:08:16 -06:00
Victor Vieux
7a116220e7 Merge pull request #2327 from dotcloud/2325_fix_untag_rmi
fix wrong untag while docker rmi
2013-10-23 10:24:20 -07:00
Victor Vieux
894a68d2ee Merge pull request #2349 from shykes/runtime-cleanup
Runtime: remove unused field kernelVersion
2013-10-23 09:54:00 -07:00
Tianon Gravi
dc57d4ca26 Merge pull request #2353 from wrouesnel/mkimage-debootstrap-improvements
mkimage-debootstrap.sh: Add -p option to invoke debootstrap with http_proxy
2013-10-23 09:26:45 -07:00
Will Rouesnel
bc8a1081b0 mkimage-debootstrap.sh: Add -p option to invoke debootstrap with http_proxy.
This patch allows debootstrap to be run with the http_proxy environment
variable. This is principally useful when you're using apt-cacher and
apt-cacher-ng locally.
2013-10-24 03:21:10 +11:00
Greg Thornton
33ccd29ae7 Typo in host integration docs 2013-10-23 10:19:12 -05:00
Tianon Gravi
2aaaf90320 Update hack/make/ubuntu to make less ubuntu-centric packages, to fix the issue of deleting the docker group on every upgrade, to use the new init library scripts for upstart and sysvinit, and to include the dependency on iptables 2013-10-23 07:38:12 -06:00
Yang Bai
99f1675566 refactor utils.ParseHost with switch-case, so we can add other proto support easily 2013-10-23 18:29:35 +08:00
Solomon Hykes
7e4d008403 Runtime: remove unused field kernelVersion 2013-10-23 00:44:57 -06:00
Victor Vieux
b0515a7016 Merge pull request #2279 from dotcloud/fix_docker_inspect
Client: improve docker inspect
2013-10-22 17:17:35 -07:00
Victor Vieux
8ff7b70c91 Merge pull request #2341 from dotcloud/1327-race_build_verbose-fix
fix race condition in docker build with verbose + cleanup hostIntegration debug
2013-10-22 16:46:36 -07:00
Victor Vieux
01284cbf73 fix status code 2013-10-22 15:39:51 -07:00
Victor Vieux
10e10c9573 fix race condition in docker build with verbose + cleanup hostIntegration debug 2013-10-22 15:01:06 -07:00
Michael Crosby
b73065ab33 Merge pull request #2338 from proppy/patch-1
Registry: Fix content-type for PushImageJSONIndex
2013-10-22 14:48:12 -07:00
Johan Euphrosine
d93023daa9 registry: fix content-type for PushImageJSONIndex 2013-10-22 11:56:48 -07:00
Andy Rothfusz
81866087fe Merge pull request #2261 from edmund-wagner/master
make copy paste user friendly
2013-10-22 11:31:49 -07:00
Michael Crosby
e70030a0c3 Merge pull request #2150 from pnasrat/fix-mnt-subdir-volumes
Fixes issues with mounting subdirectories of /mnt in container.
2013-10-22 11:26:50 -07:00
Andy Rothfusz
3bd45824da Merge pull request #2318 from Tranquility/master
Fix github link in docs
2013-10-22 09:55:33 -07:00
Victor Vieux
13c913d883 Merge pull request #2198 from hamo/hamo/chdir_error
check return value of syscall.Chdir when changing working directory
2013-10-22 09:54:25 -07:00
Tianon Gravi
92beaed066 Merge pull request #2326 from justinforce/commentstring
Set commentstring in Vim syntax plugin
2013-10-22 00:41:34 -07:00
Victor Vieux
6b04913e73 Merge pull request #2307 from gurjeet/sorted_commands_in_help
Place 'top' subcommand's help in proper order.
2013-10-21 18:07:39 -07:00
Victor Vieux
93810b289c fix wrong untag while docker rmi 2013-10-21 17:03:32 -07:00
Justin Force
ea59ce60c5 Set commentstring in Vim syntax plugin
By setting the commentstring, you support commenting with plugins like tComment.
Now Vim won't default to incorrect `/* */` comments.
2013-10-21 16:15:10 -07:00
Andy Rothfusz
a1fc8e17a7 Clean up level 3 headers. 2013-10-21 14:03:09 -07:00
Ole Reifschneider
f903feee03 Fix github link in docs 2013-10-21 22:58:56 +02:00
Andy Rothfusz
26adda6c31 Merge pull request #2303 from metalivedev/2302-fixintro
Fix #2302
2013-10-21 09:39:34 -07:00
Gurjeet Singh
7e09c6332d Place 'top' subcommand's help in proper order. 2013-10-20 02:15:36 -04:00
Tianon Gravi
3b0cbc59ea Update hack/install.sh with some more Ubuntu-specific installation stuff while we're still on AUFS (installing linux-image-extra-$(uname -r) when we can't find AUFS to try to find AUFS) 2013-10-19 23:56:14 -06:00
Daniel Mizyrycki
95f3f77fc4 testing infrastructure, issue #1800: Refactor docker testing using Docker in Docker 2013-10-18 22:33:16 -07:00
Andy Rothfusz
bba5fd4555 Fix #2302 2013-10-18 18:00:44 -07:00
Guillaume J. Charmes
9bceae2440 Add a chan to hijack() to block until the hijack is completed 2013-10-18 16:26:29 -07:00
Guillaume J. Charmes
e7269b9841 Fix issue with autoremove 2013-10-18 16:26:29 -07:00
Andy Rothfusz
8cf0f2dbe5 Update documentation 2013-10-18 16:26:29 -07:00
Guillaume J. Charmes
3e014aa662 Fix attach race condition, improve unit tests, make sure the container is started before unblocking Start 2013-10-18 16:26:16 -07:00
Guillaume J. Charmes
333bc23f21 Fix issue killing container while sending signal
Fix rebase issue
Update docs
2013-10-18 16:19:27 -07:00
Tianon Gravi
7cf1877098 Add POSIX shell version of host_integration/manager.go in the style of hack/make.sh
Rename host_integration to host-integration for consistency
2013-10-18 16:16:29 -07:00
Guillaume J. Charmes
4918769b1a Add -nostdin and -proxy to docker attach, allow arbirary signal to be sent via docker kill api endpoint
Allow attach from `docker start`
Add host integration script generation
Update doc with host integration
2013-10-18 16:16:29 -07:00
Tianon Gravi
4b7c071e9c Merge pull request #2222 from tianon/debootstrap
Renamed and refactored mkimage-debian to mkimage-debootstrap to more clearly reflect its true function
2013-10-18 14:46:14 -07:00
Andy Rothfusz
ad7c6bc950 Merge pull request #2281 from metalivedev/cleanupformat
Clean up build warnings. Remove redundant files.
2013-10-18 11:39:46 -07:00
Victor Vieux
2e4ee72201 Merge pull request #2282 from shykes/fix-tests
Tests: Cleanup the test suite
2013-10-18 11:31:13 -07:00
Tianon Gravi
4870265a9f Add "vendor/pkg/" to .gitignore now that we "go test -i" 2013-10-18 12:18:13 -06:00
Roger Peppe
43fd85eb8f Merge remote-tracking branch 'upstream/master'
Conflicts:
	commands.go
2013-10-18 09:22:20 +01:00
Solomon Hykes
b629810fe0 hack: encode the name of the current test in temporary directories, for easier tracking
Conflicts:
	utils_test.go
2013-10-18 07:29:07 +00:00
Solomon Hykes
07d9e4353b Increase readbility of unit tests by using mkRuntime everywhere 2013-10-18 07:20:39 +00:00
Tianon Gravi
ac5bc86771 Merge pull request #1 from jpetazzo/cherry-on-top-of-hack-release
Cherry on top of hack release
2013-10-17 23:21:41 -07:00
Jérôme Petazzoni
85956c70b5 Change bundle order, and fix shell array expansion.
I believe that it is helpful to build the binary first. That way,
if you interrupt the tests, you still get a binary to play with.
If you run the tests first and interrupt them, no binary for you!

Also, the second part of this commit is an undeniable proof that
Bash array syntax is nothing else than an elaborate troll by Bash
authors.
2013-10-17 23:20:18 -07:00
Jérôme Petazzoni
8c38c30985 Remove spurious messages, and use proper args expansion.
Also, display some (hopefully helpful) message when no command was given.
2013-10-17 23:19:36 -07:00
Tianon Gravi
89a2c8e2cd Merge pull request #2283 from tmc/master
Make mkimage-arch.sh a little more clear
2013-10-17 23:05:01 -07:00
Travis Cline
f34a62ea19 Use heredoc to make expect script more clear 2013-10-18 00:35:12 -05:00
Jérôme Petazzoni
255b6aadfa Work around an exotic bug affecting Docker-in-Docker + systemd. 2013-10-17 20:42:11 -07:00
Solomon Hykes
5c175357aa Hack: fix tests which didn't cleanup properly 2013-10-18 02:13:36 +00:00
Solomon Hykes
240d5b3fa1 Hack: don't run integration tests in /var/lib/docker/unit-tests; add missing cleanups in a few tests 2013-10-18 02:13:36 +00:00
Andy Rothfusz
689bcd1dc3 Clean up build warnings. Remove redundant files. 2013-10-17 17:57:01 -07:00
Victor Vieux
8bce284496 clean split between errors and output. JSON output always valid 2013-10-17 23:40:43 +00:00
Jérôme Petazzoni
95ccb78aa7 Merge pull request #2253 from jpetazzo/infrastructure-docs
Try a different presentation of infrastructure documentation.
2013-10-17 16:17:32 -07:00
Tianon Gravi
83a2e92d47 Update hack/release.sh process to automatically invoke hack/make.sh and bail on building/testing issues 2013-10-17 16:49:35 -06:00
Jérôme Petazzoni
d401e9d3ac Add Stackbrew. 2013-10-17 14:11:10 -07:00
Peter Braden
3db381bf08 Re #2137 Note about vagrant dns in the test documentation 2013-10-17 13:38:39 -07:00
Victor Vieux
f248a8e13c Update CHANGELOG.md 2013-10-17 11:27:44 -07:00
Victor Vieux
47cc6c8081 Update CHANGELOG.md 2013-10-17 11:26:17 -07:00
Tianon Gravi
c405d53b6e Add initial init scripts library, including systemd, sysvinit, upstart, and openrc 2013-10-17 12:03:49 -06:00
Edmund Wagner
bc39ac71e6 c&p improvement for 13.04
first line killed sources list
2013-10-17 10:07:12 +02:00
Edmund Wagner
2110b3cca8 make copy paste user friendly
copying only the first line killed my sources.list file
2013-10-17 09:31:35 +02:00
Michael Crosby
414795856a Merge branch 'release' 2013-10-16 18:20:04 -07:00
Michael Crosby
2f74b1c84b Merge pull request #2255 from dotcloud/bump_0.6.4
Bump to 0.6.4
2013-10-16 17:59:45 -07:00
Michael Crosby
e8da76605f Bump version to 0.6.4 2013-10-16 17:50:08 -07:00
Michael Crosby
f16e60665b Merge branch 'master' into bump_0.6.4 2013-10-16 17:48:17 -07:00
Michael Crosby
3ba9893786 Merge pull request #2242 from jpetazzo/remove-spurious-errors-and-errclosedpipe
Fix error/debug messages in Container.Attach and recover from ErrClosedPipe
2013-10-16 17:27:23 -07:00
Jérôme Petazzoni
7b1c6ccabd Try a different presentation of infrastructure documentation. 2013-10-16 17:11:21 -07:00
Guillaume J. Charmes
6ee2964a4f Merge pull request #2256 from dotcloud/discard_errno_0_errors
- Runtime: discard errno = 0 errors
2013-10-16 16:22:03 -07:00
Victor Vieux
49c62879b8 discard errno = 0 errors 2013-10-16 23:05:50 +00:00
Michael Crosby
34745ee0f4 Merge pull request #2246 from dotcloud/clean_when_start_fail
Add cleanup when container.Start fails
2013-10-16 15:06:08 -07:00
Victor Vieux
d21bd5b964 Merge pull request #2251 from dotcloud/skip_autoremove_test
skip auto-remove test for now
2013-10-16 14:59:08 -07:00
Michael Crosby
82220ea2ad Merge pull request #2249 from jpetazzo/cleanup-errclosing-in-proxy
Catch errClosing error when TCP and UDP proxies are terminated.
2013-10-16 14:51:43 -07:00
Victor Vieux
655b16c712 skip auto-remove test for now 2013-10-16 21:47:20 +00:00
Michael Crosby
eb2d0d4bf5 Merge pull request #2250 from dotcloud/revert-07-doc-changes
Revert "Fix #2115 Clean AUFS references. Also fixes some links to client...
2013-10-16 14:44:53 -07:00
Jérôme Petazzoni
cc851dbb3f Catch errClosing error when TCP and UDP proxies are terminated. 2013-10-16 14:43:20 -07:00
Victor Vieux
e40fd1e3e1 fix panic 2013-10-16 21:39:03 +00:00
Michael Crosby
dab84f7e8b Revert "Fix #2115 Clean AUFS references. Also fixes some links to client libraries and mongo example."
This reverts commit f4c17a202b.
2013-10-16 14:38:24 -07:00
Daniel Mizyrycki
7df8ec2093 Merge pull request #2195 from mzdaniel/report
Add aggregated docker-ci email report
2013-10-16 14:29:24 -07:00
Daniel Mizyrycki
a2ffa637ce testing infrastructure, PR #2195: Add aggregated docker-ci email report 2013-10-16 13:30:15 -07:00
Guillaume J. Charmes
ed6ca109bf Refactor container.Start() 2013-10-16 13:12:56 -07:00
Victor Vieux
6e48b73955 Merge pull request #2247 from dotcloud/improve_tests_error_messages
Tests: Remove a few errors
2013-10-16 12:50:15 -07:00
Victor Vieux
664acd2971 Add clean if start fail 2013-10-16 19:48:24 +00:00
Victor Vieux
3acfc60028 change an errorf to a debugf 2013-10-16 19:45:10 +00:00
Victor Vieux
0e64a4d7e7 remove false alarm error 2013-10-16 19:38:12 +00:00
Victor Vieux
104a86936a api.go:108 Error parsing media type: error: mime: no media type
fix
2013-10-16 19:32:03 +00:00
Victor Vieux
df697b4318 use httpError in a separate test 2013-10-16 19:23:47 +00:00
Tianon Gravi
27fc01271e Merge pull request #2219 from tianon/completion
Reorganize contributed completion scripts to add zsh completion
2013-10-16 11:40:56 -07:00
Tianon Gravi
97ab118fbb Merge pull request #2220 from tianon/vim
Add vim syntax highlighting for Dockerfiles from @honza
2013-10-16 11:40:42 -07:00
Jérôme Petazzoni
fc659b68e4 Fix error/debug messages in Container.Attach and recover from ErrClosedPipe conditions. 2013-10-16 11:35:45 -07:00
Guillaume J. Charmes
99f6b43f4f Merge pull request #2243 from jpetazzo/comments-stdcopy
Add better comments to utils/stdcopy.go.
2013-10-16 11:17:15 -07:00
Victor Vieux
2b92aa71f9 Merge pull request #2244 from dotcloud/add_cleanup_leftover_container_tests
Tests: add cleanup to remove leftover containers
2013-10-16 11:09:48 -07:00
Victor Vieux
f854529ae8 add cleanupin tests to remove leftover containers 2013-10-16 18:06:37 +00:00
Jérôme Petazzoni
e32debcf5f Add better comments to utils/stdcopy.go. 2013-10-16 10:58:53 -07:00
Andy Rothfusz
0e08e1d695 Merge pull request #2236 from SvenDowideit/2209-comments-doc
#2209 - add the example @tianon gave to elaborate on the Comment docume...
2013-10-16 10:51:15 -07:00
Andy Rothfusz
65b62307c3 Merge pull request #2231 from metalivedev/1919-docreleaseinfo
Fix #1919 document how to edit and release docs.
2013-10-16 10:45:01 -07:00
Andy Rothfusz
03e5d94b12 Merge pull request #2090 from kencochrane/master
added initial draft of the Docker infrastructure doc
2013-10-16 10:44:22 -07:00
Tianon Gravi
0ca533ca35 Merge pull request #2233 from tmc/master
Add mkimage-arch.sh
2013-10-15 19:27:45 -07:00
Travis Cline
d94a027da6 Add mkimage-arch.sh 2013-10-16 02:26:15 +00:00
Sven Dowideit
7250f94874 #2209 - add the example @tianon gave to elaborate on the Comment documentation 2013-10-16 11:12:47 +10:00
Michael Crosby
4196c704f0 Merge pull request #1943 from dotcloud/1940-prevent_crash_parseNat_build-fix
Abort build if mergeConfig returns an error and fix duplicate error message
2013-10-15 17:40:48 -07:00
Victor Vieux
adb48ef319 Merge pull request #2235 from dotcloud/update_dockerfile
Update Dockerfile test comment
2013-10-15 17:32:48 -07:00
Victor Vieux
ee7d9b0bde Update Dockerfile test comment 2013-10-16 00:31:34 +00:00
Victor Vieux
2f4526d5c4 Merge pull request #2221 from flavio/fix_broken_tests
Fixed broken tests
2013-10-15 17:26:19 -07:00
Victor Vieux
261285c2c2 Merge pull request #2232 from shykes/error-should-be-debug
Remove error messages which are not actually errors
2013-10-15 17:12:51 -07:00
Solomon Hykes
cbc49d7d76 Remove error messages which are not actually errors 2013-10-15 23:12:27 +00:00
Solomon Hykes
4dc90405e3 Merge pull request #2230 from shykes/hack-select-test
hack: only run certain tests with TESTFLAGS='-run TestName' make.sh
2013-10-15 15:58:54 -07:00
Solomon Hykes
b7abe9dab5 hack: only run certain tests with TESTFLAGS='-run TestName' make.sh 2013-10-15 22:57:40 +00:00
Andy Rothfusz
cd455ca6fa Fix #1919 document how to edit and release docs. 2013-10-15 15:52:21 -07:00
Flavio Castelli
ca56b35e53 Fixed broken tests
Some tests failed because the `auplink` binary was not found inside of the
"docker" container.
2013-10-15 11:44:56 +02:00
Tianon Gravi
095aab9d97 Refactor mkimage-debootstrap.sh to be much more full-featured
This includes the following:
- options to control certain parameters
- an option specifically for creating tarballs directly, esp. for dockerbrew
- the addition of the updates and security repositories for Debian images
- the addition of the universe, updates, and security repositories for Ubuntu images
- more correct tagging of Debian images
- tagging of Ubuntu image versions (12.04, 12.10, etc) and latest tag for LTS
2013-10-15 03:44:03 -06:00
Tianon Gravi
ace059e409 Add vim syntax highlighting for Dockerfiles from @honza
See https://github.com/honza/dockerfile.vim
See also https://twitter.com/_honza/status/390046317579620352
2013-10-15 03:35:13 -06:00
Tianon Gravi
9da2b3590e Add zsh completion from @felixr with permission
See https://github.com/felixr/docker-zsh-completion for the original.
See also https://github.com/dotcloud/docker/issues/2202#issuecomment-26313287

Fixes #2202
2013-10-15 03:04:06 -06:00
Tianon Gravi
e99ab1df97 Move contrib/docker.bash to contrib/completion/bash/docker for better organization 2013-10-15 03:02:31 -06:00
Tianon Gravi
4967f9f19c Rename mkimage-debian.sh to mkimage-debootstrap.sh to more clearly reflect its true function 2013-10-15 02:26:10 -06:00
Solomon Hykes
fde157425c Merge pull request #2218 from tianon/ksid
Remove @KSid from contrib maintainers for now
2013-10-15 00:13:58 -07:00
Tianon Gravi
a0e5657cb6 Remove @KSid from contrib maintainers for now
His availability has been very limited, so I'll take over completely for the short term until he can find more time to help out.
2013-10-15 00:58:34 -06:00
Daniel Mizyrycki
f4a98b4598 Merge pull request #2211 from mzdaniel/2190-docker-ci
Prevent docker-ci to test closing PRs
2013-10-14 14:12:23 -07:00
Daniel Mizyrycki
53a07d5475 Prevent docker-ci to test closing PRs 2013-10-14 14:00:06 -07:00
Andy Rothfusz
93b258413f Merge pull request #2160 from iffy/patch-1
Minor updates to postgresql_service.rst
2013-10-14 11:59:57 -07:00
Andy Rothfusz
c0bfb75e5f Merge pull request #2142 from SvenDowideit/patch-1
tell the new developer how they can replace the real docker binary with ...
2013-10-14 11:55:42 -07:00
Yang Bai
1043055b10 check return value of syscall.Chdir when changing working directory 2013-10-14 15:27:38 +08:00
Daniel Mizyrycki
620bc5b9e1 Merge pull request #1823 from dotcloud/1766-nightly-release
testing, issue #1766: Add nightly release to docker-ci
2013-10-11 17:38:06 -07:00
Daniel Mizyrycki
6d6097cddf Merge pull request #1813 from doubleyou/patch-1
Improve network performance for VirtualBox
2013-10-11 16:23:19 -07:00
Daniel Mizyrycki
42277d0329 Merge pull request #2178 from tianon/vagrant-docker-group
Add vagrant user to the docker group
2013-10-11 15:10:50 -07:00
Tianon Gravi
d62df6b2b5 Add vagrant user to the docker group 2013-10-11 11:00:04 -06:00
Michael Crosby
97779ff7cf Merge pull request #2118 from karlgrz/936-enhance-logging
Add utils.Errorf for error logging
2013-10-11 08:51:37 -07:00
Michael Crosby
9afa48a92f Merge pull request #2169 from dotcloud/remove-deprecated-packaging
Remove deprecated packaging directory
2013-10-11 08:44:34 -07:00
Karl Grzeszczak
ad723bbfe7 Initial steps to fix Issue #936
Use utils.Errorf instead of utils.Debugf
2013-10-11 08:04:40 -05:00
Solomon Hykes
f15cd71bb8 Merge pull request #2037 from tianon/install-script-revamp
Revamp install.sh to be usable by more people, and to use official install methods whenever possible (apt repo, portage tree, etc.)
2013-10-10 23:56:13 -07:00
Tianon Gravi
94bf5b0011 Revamp install.sh to be usable by more people, and to use official install methods whenever possible (apt repo, portage tree, etc.), thus making it an official script and moving it to hack/ 2013-10-11 00:53:15 -06:00
Daniel Mizyrycki
d542318d63 testing infrastructure, issue #1766: Dockerize deployment of docker-ci 2013-10-10 18:29:10 -07:00
Daniel Mizyrycki
6e3068700f testing infrastructure, issue #1766: Temporarily install docker with proper apparmor handling 2013-10-10 18:29:10 -07:00
Daniel Mizyrycki
fac190959f testing, issue #1766: Upgrade tooling for Docker nightly release 2013-10-10 18:29:10 -07:00
Daniel Mizyrycki
1dcdc3deb7 testing, issue #1766: Add nightly release to docker-ci 2013-10-10 18:29:10 -07:00
Solomon Hykes
ee256ce6bf Merge pull request #2038 from tianon/mkimage-debian-fixes
Fix contrib/mkimage-debian.sh apt caching prevention
2013-10-10 17:59:17 -07:00
Solomon Hykes
5fe699f813 Merge pull request #2166 from pnasrat/document-approval
Clarify LGTM process to contributors.
2013-10-10 17:55:32 -07:00
Solomon Hykes
7561e2570c Merge pull request #2159 from nathankleyn/fix-references-to-param-names
Small fixes to parameter names in docs for ADD command.
2013-10-10 17:53:57 -07:00
Guillaume J. Charmes
640ca68e4f Merge pull request #2128 from titanous/update-authors
Update AUTHORS
2013-10-10 16:40:33 -07:00
Guillaume J. Charmes
f9b9dfc82d Merge pull request #2164 from pnasrat/add-finished-time
* Runtime: Record termination time in state.
2013-10-10 16:29:07 -07:00
Guillaume J. Charmes
c978f0fa5c Merge pull request #2165 from jrydberg/master
- Registry: Use correct auth config when logging in.
2013-10-10 16:28:46 -07:00
Sven Dowideit
d91bf33df3 tell the new developer how they can replace the real docker binary with the one they've been hacking on (#2142) 2013-10-11 08:47:32 +10:00
Paul Nasrat
310a174260 Clarify LGTM process to contributors. 2013-10-10 18:32:33 -04:00
Paul Nasrat
2eb404ab14 Record termination time in state.
Supercedes pull #1946
2013-10-10 14:47:25 -04:00
Ken Cochrane
60e426938e Merge pull request #2155 from jdubois/patch-1
- Documentation: Corrected error in the package name
2013-10-10 11:19:22 -07:00
Zilin Du
c2912c82aa change 127.0.0.1 -> 127.0.1.1 & remove ::1 -> hostname mapping 2013-10-10 09:44:48 -07:00
Matt Haggard
9041d6a47b Minor updates to postgresql_service.rst
I've added the steps that were missing/wrong for me when I went through this just now.
2013-10-10 10:23:24 -06:00
Nathan Kleyn
8abd328f53 Small fixes to parameter names in docs for ADD command. 2013-10-10 12:14:18 +01:00
Solomon Hykes
ae780fb5ea Remove deprecated packaging directory (distro-specific packaging is now managed downstream by their respective package maintainers) 2013-10-10 03:54:10 -07:00
Julien Dubois
152037f011 Corrected error in the package name 2013-10-10 10:10:33 +02:00
Andy Rothfusz
0367032bd1 Merge pull request #2144 from shamrin/patch-5
document what `vagrant up` is actually doing
2013-10-09 17:42:37 -07:00
Andy Rothfusz
edca9f7e9c Merge pull request #2139 from metalivedev/2115-AUFScleanup
Fix #2115 Clean AUFS references.
2013-10-09 17:35:05 -07:00
Guillaume J. Charmes
e19cc1e843 Merge pull request #2125 from dotcloud/2099_rm-v_fix
- Runtime: fix `docker rm` with volumes
2013-10-09 16:01:51 -07:00
Guillaume J. Charmes
feabce3bcc Merge pull request #2119 from SvenDowideit/2117-hardcoded-tmp-dir
use empty string so TempDir uses the OS's temp dir automatically (Closes...
2013-10-09 16:00:40 -07:00
Michael Crosby
ded74b0bb3 Merge pull request #2133 from dotcloud/improve_tests
Make sure to close the network allocators
2013-10-09 15:45:16 -07:00
Guillaume J. Charmes
ffee5faae8 Merge pull request #2145 from dotcloud/remove-panic-test
* Runtime: replace panic by log.Fatal in tests
2013-10-09 15:37:08 -07:00
Paul Nasrat
aa3697520a Fixes issues with mounting subdirectories of /mnt in container.
Tested with
mkdir /mnt/data
docker run -v /mnt/data:/mnt/data  -t ubuntu:12.10 touch /mnt/data/bar

Expected /mnt/data/bar on host.
2013-10-09 16:40:46 -04:00
Andy Rothfusz
c1bb33ea4d Merge pull request #2114 from metalivedev/2113-searchbump
Fix #2113 improve doc search results
2013-10-09 12:24:33 -07:00
Andy Rothfusz
6545e53803 Clean up javascript comment. 2013-10-09 12:22:14 -07:00
Victor Vieux
d30806590c Merge pull request #2127 from titanous/close-body
Fix some error cases where a HTTP body might not be closed
2013-10-09 06:52:03 -07:00
Victor Vieux
823174de4d replace panic by log.Fatal in tests 2013-10-09 13:47:49 +00:00
Tianon Gravi
d5f9160441 Merge pull request #1956 from tianon/bash-completion
Add proper bash completion for "docker push"
2013-10-09 05:47:55 -07:00
Alexey Shamrin
37df1d92d8 document what vagrant up is actually doing
* don't mention outdated PPA that Vagrantfile doesn't use
* point to official Ubuntu installation instructions that Vagrant appears to be following; should be future proof
2013-10-09 15:05:09 +04:00
Jonathan Rudenberg
dabac81824 Update AUTHORS 2013-10-08 23:51:38 -04:00
Guillaume J. Charmes
bb62c281f5 Merge pull request #2130 from tianon/swap-contrib-maintainers
Swap contrib MAINTAINERS
2013-10-08 17:57:52 -07:00
Andy Rothfusz
3565bf8d00 Merge pull request #2134 from tianon/contributing
Add devenvironment link to CONTRIBUTING.md
2013-10-08 17:36:56 -07:00
Andy Rothfusz
f4c17a202b Fix #2115 Clean AUFS references. Also fixes some links to client libraries and mongo example. 2013-10-08 17:33:19 -07:00
Tianon Gravi
9a4b0b9823 Add devenvironment link to CONTRIBUTING.md 2013-10-08 16:48:19 -06:00
Guillaume J. Charmes
9107565d06 Make sure to close the network allocators 2013-10-08 15:42:02 -07:00
Zilin Du
7d95d300ab replace 127.0.0.1 by the assigned IP address in the container's /etc/hosts file. 2013-10-08 14:29:22 -07:00
Tianon Gravi
4fda3314d8 Swap contrib MAINTAINERS 2013-10-08 15:15:58 -06:00
Jonathan Rudenberg
e906485b07 Fix some error cases where a HTTP body might not be closed
Refs #2126
2013-10-08 15:35:00 -04:00
Victor Vieux
1daf242c8b fix rm -v 2013-10-08 16:35:47 +00:00
Johan Rydberg
967010ae8c Use correct auth config when logging in. 2013-10-08 06:46:29 +02:00
Sven Dowideit
d03022b9ca use empty string so TempDir uses the OS's temp dir automatically (Closes #2117) 2013-10-08 13:24:20 +10:00
Andy Rothfusz
6d67ac2a1b Insert popularity and boost docs results. 2013-10-07 17:51:07 -07:00
Solomon Hykes
2d425af1b1 Merge pull request #2103 from tianon/clean-out-fixme
Clean out a few outdated FIXME items
2013-10-07 15:19:01 -07:00
Andy Rothfusz
ed19693f50 Merge pull request #2106 from mastahyeti/api_1.5_docs_whitespace
Cleanup whitespace in API 1.5 docs
2013-10-07 13:23:55 -07:00
Tianon Gravi
ee27444098 Fix contrib/mkimage-debian.sh apt caching prevention 2013-10-07 13:41:10 -06:00
Andy Rothfusz
194c1dbbd8 Merge pull request #2109 from shamrin/patch-4
[docs] use angle brackets in MAINTAINER example email
2013-10-07 12:18:44 -07:00
Alexey Shamrin
a9eac7eab4 [docs] use angle brackets in MAINTAINER example email 2013-10-07 20:29:54 +04:00
Ben Toews
7c28683f08 Cleanup whitespace in API 1.5 docs
remove whitespace on blank lines
2013-10-06 19:52:18 -06:00
Daniel Mizyrycki
c18e849451 Merge pull request #2061 from dotcloud/1948-test-detach
testing, issue #1948: Increase TestRunDetach timeout
2013-10-06 13:26:44 -07:00
Tianon Gravi
a665517151 Clean out a few outdated FIXME items 2013-10-06 13:55:26 -06:00
Ken Cochrane
0d3c899528 added initial draft of the Docker infrastructure doc 2013-10-04 15:12:40 -04:00
Andy Rothfusz
863eebe7bd Merge pull request #2084 from makeusabrew/patch-1
Fix help text for -v option
2013-10-04 09:29:56 -07:00
Nick Payne
3c5350ba92 Fix help text for -v option 2013-10-04 10:26:57 +01:00
Tianon Gravi
c52c95f97f Merge pull request #1876 from asbjornenge/master
Added Dockerfile.tmLanguage to contrib
2013-10-03 23:52:37 -07:00
Asbjørn Enge
85a5139665 Added Dockerfile.tmLanguage to contrib 2013-10-04 08:45:15 +02:00
Michael Crosby
ad4b09cdb8 Merge pull request #1832 from dotcloud/26-default_r_flag
Autorestart containers by default
2013-10-03 15:59:58 -07:00
Victor Vieux
e594c788e4 keep -r, but default true 2013-10-03 22:42:35 +00:00
Victor Vieux
f84dc1e908 add missing error check 2013-10-03 22:33:00 +00:00
Michael Crosby
826aaa0e9b Merge pull request #1990 from modcloth-labs/more-tests-for-auth-registry-resolution
Adding more tests around `auth.ResolveAuthConfig`
2013-10-03 14:45:02 -07:00
Victor Vieux
1328be7c29 Add test 2013-10-03 15:21:14 +00:00
Andy Rothfusz
ff4f32d58f Fix #2017 Merge branch '2017-api-details' 2013-10-02 18:20:44 -07:00
Andy Rothfusz
462ac1efcf Merge branch 'hint-api-details' of git://github.com/cdunklau/docker into 2017-api-details
Conflicts:
	docs/sources/api/docker_remote_api.rst
2013-10-02 18:18:46 -07:00
Solomon Hykes
1332f400f7 Merge pull request #2015 from dsissitka/1927
Configured FPM to make /etc/init/docker.conf a config file.
2013-10-02 18:18:16 -07:00
Solomon Hykes
a292c04ddb Merge pull request #2069 from philips/add-xz-to-runtime-dependencies
fix(hack/PACKAGERS): add xz utils as a runtime dep
2013-10-02 17:37:56 -07:00
Andy Rothfusz
37c4513cf9 Merge pull request #2060 from mastahyeti/patch-1
Add `apt-get install curl` to Ubuntu docs
2013-10-02 16:46:00 -07:00
Andy Rothfusz
b584c21ca4 Merge pull request #2063 from dhrp/doc-template-fix
Doc template fix
2013-10-02 16:31:47 -07:00
Andy Rothfusz
c92507341d Merge pull request #2073 from tianon/gentoo-no-more-1422-hack
Remove Gentoo install notes about #1422 workaround
2013-10-02 16:24:11 -07:00
Andy Rothfusz
9f0feaa2e1 Merge pull request #2065 from kyleconroy/fix_ping_endpoint
Fix Ping endpoint documentation
2013-10-02 16:22:49 -07:00
Ben Toews
0f830aa431 Update ubuntu docs to use wget instead of curl
Ubuntu doesn't come with curl.

wget instead of curl

nicer wget syntax

remove /dev/null
2013-10-02 16:27:34 -06:00
Tianon Gravi
5f05cb4817 Remove Gentoo install notes about #1422 workaround 2013-10-02 16:06:22 -06:00
Michael Crosby
4778039dd2 Merge pull request #2066 from tianon/vendor-bump-kr-pty
Bump vendor kr/pty to commit 3b1f6487b (syscall.O_NOCTTY)
2013-10-02 14:44:07 -07:00
Guillaume J. Charmes
b180770b1d Merge pull request #2014 from alexlarsson/allow_set_file_cap
* Runtime: lxc: Allow set_file_cap capability in container
2013-10-02 14:38:50 -07:00
Brandon Philips
4f5c2cbccc fix(hack/PACKAGERS): add xz utils as a runtime dep 2013-10-02 12:06:19 -07:00
Andy Rothfusz
c3acd9bece Merge pull request #2047 from Thermionix/patch-1
Update archlinux.rst
2013-10-02 10:57:48 -07:00
Tianon Gravi
cb21a40490 Bump vendor kr/pty to commit 3b1f6487b (syscall.O_NOCTTY) 2013-10-01 19:48:50 -06:00
Thatcher Peskens
5025b4d094 Cleanup 2013-10-01 16:32:56 -07:00
Thatcher Peskens
509e25cf04 Add/modified the canonical link to work with all /index/ links. Added style for "danger' 2013-10-01 16:26:14 -07:00
Daniel Mizyrycki
135c1fce90 testing, issue #1948: Increase TestAttachDetach and TestRunDetach timeout 2013-10-01 15:59:52 -07:00
Kyle Conroy
d517fd3d77 Fix Ping endpoint documentation 2013-10-01 15:49:32 -07:00
Michael Crosby
b4e1b8d2e2 Merge pull request #2058 from marcusramberg/patch-1
Fix ironic typo in changelog
2013-10-01 09:58:32 -07:00
Marcus Ramberg
45bd52d472 Fix ironic typo in changelog 2013-10-01 18:16:10 +02:00
Andy Rothfusz
534a991cff fix logo path 2013-09-30 16:54:04 -07:00
Solomon Hykes
23015fa14d Merge pull request #1994 from metalivedev/1993-legalcontext
Fix #1993: add explanation for export restrictions
2013-09-30 16:33:46 -07:00
Thermionix
fb46d911c2 Update archlinux.rst 2013-10-01 09:33:12 +10:00
Tianon Gravi
85b776995c Merge pull request #2051 from tianon/hack-dockerfile-refactor
Add cleanup/refactor portion of #2010 for hack and Dockerfile updates
2013-09-30 16:29:32 -07:00
Thatcher
fa44555fb4 Merge pull request #2035 from dhrp/style-revamp
Changes to a new style for the docs. Includes version switcher.
2013-09-30 15:51:43 -07:00
Andy Rothfusz
3e7c50e8a1 Merge pull request #2033 from metalivedev/1969-cherrypick-fixcommitformat
Fix #1969 formatting, add information about multiline json
2013-09-30 14:55:11 -07:00
Tianon Gravi
ccefe47897 Add cleanup/refactor portion of #2010 for hack and Dockerfile updates 2013-09-30 13:57:30 -06:00
Tianon Gravi
ff85031980 Merge pull request #2039 from tianon/mkimage-centos
Add contrib/mkimage-centos.sh back (from #1621), and associated documentation link
2013-09-30 10:51:06 -07:00
Guillaume J. Charmes
017ecefd66 Merge pull request #2046 from dotcloud/2030-dockercfg_panic_err-fix
- Runtime: fix panic with wrong dockercfg file
2013-09-30 10:02:12 -07:00
Thermionix
88f710f0e7 Update archlinux.rst
The /etc/sysctl.conf file is deprecated
https://www.archlinux.org/news/deprecation-of-etcsysctlconf/
2013-09-30 22:44:09 +10:00
Victor Vieux
6496059154 fix panic with wrong dockercfg file 2013-09-30 11:07:32 +00:00
Victor Vieux
bcce3cbdd1 Merge pull request #1995 from dotcloud/fix_attach_2
Fix the attach behavior with -i
2013-09-30 03:29:19 -07:00
Victor Vieux
bbf644ed62 Merge pull request #2025 from dotcloud/2020_add_dockercfg_doc
add .dockercfg doc
2013-09-30 03:21:46 -07:00
Tianon Gravi
d89ce09a76 Add contrib/mkimage-centos.sh back (from #1621), and associated documentation link 2013-09-28 07:54:34 -06:00
Thatcher Peskens
e3e041b6bf Changes to a new style for the docs. Includes version switcher.
* added link to edit on GitHub
* Changed image source on homepage
* Made some changes to the structure, added the ability to have l3 navigation. Added warning, note and other styles.
* Fixed an image link, removed the .. :content: links because they were quicky and didn't look good, added pagelinks to current page of other versions.
* Moved the remote client api's to their own doc
2013-09-27 19:54:52 -07:00
Andy Rothfusz
0a35b1fb36 Added more context. 2013-09-27 19:07:12 -07:00
Andy Rothfusz
3894add8a9 Merge pull request #2034 from metalivedev/1969-cherrypick-fixcommitformat
Fix #1969 formatting, add information about multiline json
2013-09-27 18:19:55 -07:00
Andy Rothfusz
74d54b9b2e Fix #1969 formatting, add information about multiline json 2013-09-27 18:16:00 -07:00
Michael Crosby
31fd11860b Merge pull request #2032 from dotcloud/move-rm-to-client
Move run -rm to the cli only
2013-09-27 17:19:01 -07:00
Daniel Mizyrycki
b081a740b3 Merge pull request #2006 from jo-m/master
Enable SSH Agent forwarding in Vagrant VM
2013-09-27 12:07:44 -07:00
Michael Crosby
db869ecce5 Merge pull request #1589 from unclejack/479-add_rm_support_to_docker_run
Add -rm to docker run for removing a container on exit
2013-09-27 11:45:32 -07:00
Guillaume J. Charmes
537149829a Fix the attach behavior with -i 2013-09-27 11:10:55 -07:00
Andy Rothfusz
ba10e28927 Merge pull request #2009 from kyleconroy/master
Improve registry and index REST API documentation
2013-09-27 10:56:21 -07:00
Victor Vieux
f4855a7cf0 add .dockercfg doc 2013-09-27 18:19:17 +02:00
unclejack
22e7e107ad automatically remove container via -rm
add AutoRemove to HostConfig
add -rm flag to docker run
add TestRunAutoRemove to test -rm
docs: add -rm to commandline/command/run
add hostConfig to container monitor
make monitor destroy the container via -rm

This adds support for automatically removing a container after it
exits. The removal of the container is handled on the server side.
2013-09-27 17:43:12 +03:00
Colin Dunklau
edd90d46c7 Clearly point at detailed docs 2013-09-27 08:32:55 -05:00
Guillaume J. Charmes
f435970695 Merge pull request #1842 from dotcloud/split_stdout_stderr
* Runtime: Split stdout stderr
2013-09-26 18:05:24 -07:00
Guillaume J. Charmes
cb18a6e1b9 Update docs + fix endian issue 2013-09-26 17:36:21 -07:00
Kyle Conroy
ce05083d4b Fix copypasta errors 2013-09-26 14:57:02 -07:00
Michael Crosby
723de87681 Move run -rm to the cli only 2013-09-26 14:52:37 -07:00
David Sissitka
c22e377a6d Used tabs for alignment when I should've used spaces. Fixed. 2013-09-26 13:56:59 -07:00
Colin Dunklau
3f0d0075f8 Hint for Remote API doc details in header links 2013-09-26 15:30:26 -05:00
David Sissitka
f8c9f11f06 Configured FPM to make /etc/init/docker.conf a config file. 2013-09-26 12:52:43 -07:00
Alexander Larsson
80319add55 lxc: Allow set_file_cap capability in container
This means you're able to set the bits for capabilities on files
inside the container. This is needed for e.g. many fedora packages
as they use finegrained capabilities rather than setuid binaries.

This is safe as we're not adding capabilities really, since the
container is already allowed to create setuid binaries. Setuid
binaries are strictly more powerful that any capabilities (as root implies
all capabilities).

This doesn't mean the container can *gain* capabilities that it
doesn't already have though. The actual set of caps are strictly
decreasing.
2013-09-26 21:41:45 +02:00
Kyle Conroy
818ec10da3 Fix Authorization headers 2013-09-26 01:19:49 -07:00
Kyle Conroy
34e28ccc88 Remove smart quotes. Add the X-Docker-Token header
Also fix the /layer endpoint, which had incorrect information
2013-09-26 01:15:36 -07:00
Kyle Conroy
792403f2dc Add the X-Docker-Registry header and /v1/_ping endpoint 2013-09-26 00:16:15 -07:00
Jonathan Mueller
8f5c33dc1f Enable SSH Agent forwarding in Vagrant VM, so one is able to clone repos from private git repos etc. 2013-09-25 22:57:04 +02:00
Andy Rothfusz
06c1f000e8 Merge pull request #2000 from tianon/deprecated-docker-latest-tgz
Replace deprecated upgrading reference to docker-latest.tgz, which hasn't been updated since 0.5.3
2013-09-25 13:47:48 -07:00
Andy Rothfusz
00b3acb8ab Merge pull request #2001 from tianon/gentoo-tree
Update Gentoo installation documentation now that we're in the portage tree proper
2013-09-25 13:45:51 -07:00
Victor Vieux
420ba9c85a Merge pull request #2004 from kencochrane/master
fix the error message so it is the same as the regex issue #1999
2013-09-25 09:46:15 -07:00
Ken Cochrane
0f829bf5cf fix the error message so it is the same as the regex issue #1999 2013-09-25 11:33:09 -04:00
Victor Vieux
1363de0934 Merge pull request #1989 from alexlarsson/setsid
Container: Always create a new session for the container
2013-09-25 07:40:51 -07:00
Tianon Gravi
d06116d2e8 Update Gentoo installation documentation now that we're in the portage tree proper
We're officially a first-class Gentoo citizen now, which is very exciting.  Many thanks to @gregkh for helping us get here.

I started just adapting sections of language in this document, and realized several bits needed to just be rewritten entirely to be more clear.
2013-09-24 23:26:36 -06:00
Tianon Gravi
595210a370 Replace deprecated upgrading reference to docker-latest.tgz, which hasn't been updated since 0.5.3 2013-09-24 21:25:45 -06:00
Michael Crosby
c9b916b293 Update VERSION to 0.6.3-dev 2013-09-24 19:54:13 -07:00
Michael Crosby
1e6370fd4b Merge branch 'release' 2013-09-24 19:54:06 -07:00
Solomon Hykes
a59a66528b Merge pull request #1968 from tianon/hack-build-instructions
* Hack: Add several of the small make.sh fixes from #1920, and make the output more consistent and contributor-friendly
2013-09-24 17:38:39 -07:00
Andy Rothfusz
b048e9dffc Merge pull request #1983 from blissdev/patch-1
various command fixes in postgres example
2013-09-24 14:03:48 -07:00
blissdev
c000e6a7fc revert removal of slash betwixt user/repo 2013-09-24 15:51:21 -05:00
Tianon Gravi
aa3de0b849 Add several of the small make.sh fixes from #1920, and make the output more consistent and contributor-friendly, since release instructions already exist in release.sh 2013-09-24 14:36:20 -06:00
Michael Crosby
648d759517 Merge pull request #1972 from dotcloud/bump_0.6.3
Bump to version v0.6.3
2013-09-24 11:20:27 -07:00
Andy Rothfusz
5c190fa926 Fix #1993: add explanation for export restrictions 2013-09-24 11:04:08 -07:00
Solomon Hykes
03fe5632d0 Merge pull request #1970 from dotcloud/cleanup-hack
Cleanup and reorganize docs and tooling for contributors and maintainers
2013-09-24 10:38:21 -07:00
Dan Buch
edde4f55e0 Adding more tests around auth.ResolveAuthConfig
mostly because I've been failing at getting docker `0.6.2` working with
docker-registry `0.6.0` with regard to login and push.  I suspect there
may be some mismatched expectations between `auth.ResolveAuthConfig` and
`registry.ResolveRepositoryName`, but I haven't done enough research or
experimentation to think it's anything more than user error.  More tests
are good, no?
2013-09-24 12:36:50 -04:00
Victor Vieux
7447867edd Merge pull request #1982 from modcloth-labs/spelling-fix-for-the-word-protocol
Minor spelling correction of protocoll -> protocol
2013-09-24 07:40:21 -07:00
Alexander Larsson
c1c74cb0b1 Container: Always create a new session for the container
We never want the container to be in the same process group as the
daemon, as then the container will receive signals sent to the
process group of the container.
2013-09-24 14:57:29 +02:00
blissdev
17b7194d91 use su instead of sudo 2013-09-24 02:25:16 -05:00
Jordan Arentsen
15ad2915b9 various command fixes
Indicating the repository and tag should be separated by a space and not a '/'. Also fixed a quote typo.
2013-09-24 02:12:24 -05:00
Tianon Gravi
d6887b769c Merge pull request #1883 from tianon/mkimage-debian
Several small tweaks/fixes for contrib/mkimage-debian.sh
2013-09-23 22:44:16 -07:00
Tianon Gravi
10362870db Add a few tweaks and fixes to contrib/mkimage-debian.sh
Add simple workaround for #1755 to contrib/mkimage-debian.sh

Add simple echo patch in contrib/mkimage-debian.sh to prevent init scripts from running during apt-get installs/updates

Add `apt-get clean` to mkimage-debian.sh for slightly smaller images

Add more small apt tweaks to mkimage-debian.sh thanks to @jpetazzo and @spahl
2013-09-23 22:39:57 -06:00
Dan Buch
a7db125480 Minor spelling correction of protocoll -> protocol 2013-09-23 23:14:42 -04:00
Solomon Hykes
f6c64827c8 Hack: correct typo in release checklist 2013-09-23 18:43:08 -07:00
Andy Rothfusz
30b759ffa9 Merge pull request #1973 from metalivedev/1969-formatfix
Fix #1969 formatting, add information about multiline json
2013-09-23 13:17:55 -07:00
Michael Crosby
35ca35ffb6 Merge pull request #1975 from tianon/patch-1
Add @tianon to hack/MAINTAINERS
2013-09-23 12:21:36 -07:00
Tianon Gravi
a4067b1b44 Add @tianon to hack/MAINTAINERS 2013-09-23 12:39:14 -06:00
Michael Crosby
b0a49a30c7 Bump to version v0.6.3 2013-09-23 11:29:11 -07:00
Andy Rothfusz
6097644e4b Fix #1969 formatting, add information about multiline json 2013-09-23 11:29:08 -07:00
Solomon Hykes
fa3837abf1 Hack: update README 2013-09-23 11:26:05 -07:00
Solomon Hykes
baff72bc82 Update maintainer's manual: every change should be done in a pull request. 2013-09-23 11:26:05 -07:00
Solomon Hykes
99377de7d2 Hack: update release checklist and reference it in REAMDE 2013-09-23 11:26:04 -07:00
Solomon Hykes
0ef5bcb17d hack/MAINTAINERS.md: a maintainer's manual. 2013-09-23 11:26:04 -07:00
Solomon Hykes
fd1c43f0e0 Hack: remove deprecated files 2013-09-23 11:26:03 -07:00
Michael Crosby
dc06496dc8 Merge pull request #1967 from dotcloud/vendor-update-tar
Update tar dependency to newest version
2013-09-23 10:44:42 -07:00
Michael Crosby
cfbe76e559 Update tar dependency to newest version 2013-09-23 09:59:04 -07:00
Victor Vieux
2fafe1efce Merge pull request #1948 from dotcloud/fix_attach
Fix attach issue
2013-09-23 02:15:51 -07:00
Roger Peppe
181b9baddd use less reflection in command line method invocation 2013-09-23 01:06:31 +01:00
Daniel Mizyrycki
8240e37b87 Merge pull request #1820 from dotcloud/1647-api-group
packaging, issue #1647: Add docker groupname on the package release
2013-09-22 14:21:26 -07:00
Michael Crosby
23cf3c7a33 Merge pull request #1934 from dotcloud/host-permissions
Only copy files and change permissions with non bindmount
2013-09-22 09:40:52 -07:00
Tianon Gravi
e37bb50628 Add proper bash completion for "docker push" 2013-09-20 21:22:51 -06:00
Andy Rothfusz
2819cfb3f3 Merge pull request #1954 from metalivedev/1901-cherrypick-builddocker
1901 1929 1932 cherrypick to release and docs
2013-09-20 18:13:11 -07:00
Andy Rothfusz
a479f7659d Merge pull request #1929 from tianon/gentoo-docs
Simplified Gentoo install instructions now that our overlay is in the official layman repositories.xml list
2013-09-20 18:06:27 -07:00
Andy Rothfusz
b02a591f57 Merge pull request #1932 from jcassee/patch-1
Download Ubuntu 13.04 repository key over HTTPS
2013-09-20 18:02:40 -07:00
Andy Rothfusz
c654075654 Merge pull request #1901 from jalateras/update-contributring-docs
Fix #1664
2013-09-20 17:55:15 -07:00
Andy Rothfusz
5a3dcbb3f6 Merge pull request #1952 from metalivedev/1909-cherrypick
Fix minor typo
2013-09-20 16:56:07 -07:00
Nick Stinemates
cce6f00c0c Fix minor typo
Changed  to
2013-09-20 16:31:57 -07:00
Michael Crosby
4db64111bd Merge pull request #1949 from dotcloud/1895-registry-regex
Modify repository name regex to match index
2013-09-20 14:03:50 -07:00
Guillaume J. Charmes
e97364ecd7 Improve detach unit tests 2013-09-20 13:36:19 -07:00
Guillaume J. Charmes
2bd089dadb Fix attach issue 2013-09-20 11:31:00 -07:00
Victor Vieux
5bd0437eed abord build if mergeConfig returns an error and fix duplicate error message 2013-09-20 12:46:24 +00:00
Victor Vieux
a81393787f Merge pull request #1889 from dsissitka/fixhttpimport
Fixed HTTP imports.
2013-09-20 03:06:04 -07:00
Michael Crosby
b45e280ee8 Only copy files and change permissions with non bindmount 2013-09-19 20:35:05 -07:00
Michael Crosby
5867f9e761 Modify repository name regex to match index 2013-09-19 20:25:00 -07:00
Andy Rothfusz
6132f378e0 Merge pull request #1901 from jalateras/update-contributring-docs
Fix #1664
2013-09-19 18:00:23 -07:00
Jim Alateras
3cf4b2c7c1 Updated the section about extracting the binary 2013-09-20 10:00:30 +10:00
Jim Alateras
d70cbbf1fc Updated the section about extracting the binary 2013-09-20 09:58:12 +10:00
Jim Alateras
b7e7104e92 Updated the section about extracting the binary 2013-09-20 09:49:20 +10:00
Andy Rothfusz
7e60a6b1ea Merge pull request #1932 from jcassee/patch-1
Download Ubuntu 13.04 repository key over HTTPS
2013-09-19 13:41:51 -07:00
Andy Rothfusz
45979a7ef7 Merge pull request #1929 from tianon/gentoo-docs
Simplified Gentoo install instructions now that our overlay is in the official layman repositories.xml list
2013-09-19 13:41:29 -07:00
Joost Cassee
5c9213258a Download Ubuntu 13.04 repository key over HTTPS 2013-09-19 21:14:39 +02:00
Guillaume J. Charmes
68074fce68 Merge pull request #1886 from dotcloud/multi-volumes-from
* Runtime: Allow multiple volumes-from
2013-09-19 12:01:12 -07:00
Andy Rothfusz
c42056b969 Merge pull request #1914 from tianon/base-repository-is-deprecated
Removing the deprecated `base` repository from more docs
2013-09-19 11:04:11 -07:00
Tianon Gravi
341addeccd Simplify install instructions now that our overlay is in the official repositories.xml list, and add note about hacky #1422 workaround 2013-09-19 11:49:43 -06:00
Tianon Gravi
47904290a5 Remove many remaining docs references to the deprecated base repository and several other minor doc cleanups 2013-09-19 10:27:08 -06:00
Solomon Hykes
a18c26392f Docs: remove reference to deprecated 'base' image 2013-09-19 10:25:30 -06:00
Andy Rothfusz
77ad95d372 Merge pull request #1913 from metalivedev/1654-registryexamples
Fix #1654 Improve the introduction to repositories flow.
2013-09-18 17:53:13 -07:00
Guillaume J. Charmes
fee61895f2 Update VERSION 2013-09-18 12:06:29 -07:00
Guillaume J. Charmes
f6a78f89ba Merge remote-tracking branch 'origin/release' 2013-09-18 12:06:10 -07:00
Daniel Mizyrycki
081543c49a Merge pull request #1908 from dotcloud/bump_v0.6.2
Bump v0.6.2
2013-09-18 11:21:51 -07:00
Jim Alateras
4054f31471 Updated the dev environment document 2013-09-18 14:18:05 +10:00
Jim Alateras
76a07371c5 Further updates to the dev environment document 2013-09-18 14:18:05 +10:00
Jim Alateras
5d364fda3c Further updates to the dev environment document 2013-09-18 14:18:05 +10:00
Jim Alateras
28311f61be Update the devenvironment document 2013-09-18 14:18:05 +10:00
Jim Alateras
70b731735c Updated the dev environment document 2013-09-18 12:41:12 +10:00
Andy Rothfusz
67453d6b48 Fix #1654 Improve the introduction to repositories flow. 2013-09-17 19:01:11 -07:00
Andy Rothfusz
c14450ae5c Merge pull request #1909 from dotcloud/fix-typo-docs
Fix minor typo
2013-09-17 18:25:59 -07:00
Nick Stinemates
593566438d Fix minor typo
Changed  to
2013-09-17 18:49:47 +00:00
Guillaume J. Charmes
ca5913ff3e Bump version to 0.6.2 2013-09-17 11:11:39 -07:00
Solomon Hykes
85f3ec88a6 Merge pull request #1893 from dotcloud/add-tianon-maintainer
Add Tianon to contrib/ maintainers
2013-09-17 11:00:48 -07:00
Michael Crosby
b2707dccc1 Merge pull request #1898 from dotcloud/smallfix_registry
Prevent panic upon error pulling registry
2013-09-17 10:27:19 -07:00
Michael Crosby
b826351337 Merge pull request #1897 from dotcloud/update_doc
Update the commit documentation with better example
2013-09-17 10:21:45 -07:00
Jim Alateras
5797e7e34e Further updates to the dev environment document 2013-09-17 21:05:55 +10:00
Jim Alateras
089a60c2cf Further updates to the dev environment document 2013-09-17 21:02:57 +10:00
Jim Alateras
a99a8386fd Update the devenvironment document 2013-09-17 19:29:13 +10:00
Daniel Mizyrycki
dfd0deefbb packaging, issue #1647: Add docker groupname on the package release 2013-09-16 23:00:54 -07:00
Andy Rothfusz
2183644578 Information about data persistence 2013-09-16 16:44:54 -07:00
Guillaume J. Charmes
e836b0064b Prevent panic upon error pulling registry 2013-09-16 16:18:25 -07:00
Michael Crosby
986906cd7b Merge pull request #1892 from dotcloud/fix-maintainers-files
Add MAINTAINERS
2013-09-16 14:41:36 -07:00
Michael Crosby
8d48119340 Merge pull request #1894 from dotcloud/1891-remove_useless_warnings
Don't show network related warnings when networking is disabled
2013-09-16 13:48:17 -07:00
Michael Crosby
cdce873ea0 Merge pull request #1896 from dotcloud/1885-missing-hostfile
Only mount hostname files if config exists
2013-09-16 11:29:52 -07:00
Michael Crosby
5a01f7485c Only mount hostname files if config exists 2013-09-16 17:53:24 +00:00
Michael Crosby
45b50730e3 Merge pull request #1849 from dotcloud/better_handle_hostConfig
Improved hostConfig reload
2013-09-16 10:48:53 -07:00
Victor Vieux
40eaa82fc6 Don't show network related warnings when networking is disabled 2013-09-16 15:58:44 +00:00
Nick Stinemates
9946981c61 Add Tianon to contrib/ maintainers
He's awesome and always contributing to this area.
2013-09-16 04:50:53 +00:00
Nick Stinemates
d6cf41cbe6 Add MAINTAINERS
Making sure we're consistent across our project.
2013-09-16 04:45:01 +00:00
David Sissitka
c6b4076125 Fixed HTTP imports. 2013-09-15 18:40:29 -07:00
Michael Crosby
b79bd4e864 Allow multiple volumes-from 2013-09-14 20:09:15 +00:00
Solomon Hykes
2f24b9e05c Merge pull request #1884 from dotcloud/update-vendored-deps
* Hack: Update vendored dependendies
2013-09-13 20:55:06 -07:00
Solomon Hykes
a63cfe7153 Merge pull request #1847 from dotcloud/test-docker-in-docker
* Hack: make the build tool more dev-friendly and packager-friendly
2013-09-13 20:19:37 -07:00
Andy Rothfusz
cd289cc10c clarify "use" 2013-09-13 17:22:53 -07:00
Andy Rothfusz
894eff64b4 Merge pull request #1880 from getvictor/patch-api
Fixed LxcConf example in Remote API v1.4 and v1.5
2013-09-13 13:28:26 -07:00
Andy Rothfusz
71e15d1c3c Merge pull request #1881 from dotcloud/ubuntu-install-instructions
Change apt source to http
2013-09-13 13:27:58 -07:00
Michael Crosby
74daeccec5 Change apt source to http 2013-09-13 19:21:43 +00:00
getvictor
102522bcd1 Fixing LxcConf example in docker_remote_api_v1.4.rst 2013-09-13 14:10:05 -05:00
getvictor
b3cbf424ec Fixed LxcConf example for docker_remote_api_v1.5.rst
Based on how command line docker sends the request.
2013-09-13 14:09:05 -05:00
Michael Crosby
33972627b7 Merge pull request #1848 from dotcloud/build-clean
Add rm option to docker build to remove intermediate containers
2013-09-13 10:58:59 -07:00
Michael Crosby
4234fc699f Merge pull request #1716 from eliasp/fixme
Added FIXME for iproute → netlink as advised in issue #925.
2013-09-13 10:58:28 -07:00
Solomon Hykes
4a707a8800 Add go.net to vendored dependencies 2013-09-13 10:24:38 -07:00
Michael Crosby
b986fd00e0 Merge pull request #1846 from dotcloud/fix_return_error
Fix wrong return error
2013-09-13 09:44:38 -07:00
Daniel Mizyrycki
f368fd9f9f Merge pull request #1862 from dotcloud/dockerfile-multiline-space
Replace multiline with empty string not space
2013-09-13 08:52:57 -07:00
Solomon Hykes
6c1c404501 Updated vendored dependencies 2013-09-12 20:42:26 -07:00
Guillaume J. Charmes
796d7a49f0 Update the commit documentation with better example 2013-09-12 13:26:31 -07:00
Michael Crosby
ffc850244f Merge pull request #1741 from griff/1737_fix_volume_uid_gid
Transfer uid and gid from image to volume
2013-09-12 10:38:37 -07:00
Andy Rothfusz
83623675ce Merge pull request #1593 from kyleconroy/master
Enable mobile view for website.
2013-09-12 10:30:16 -07:00
Andy Rothfusz
46f644c074 Merge pull request #1865 from lgp171188/patch-1
Fixed a minor typo
2013-09-12 10:11:18 -07:00
Andy Rothfusz
1bc2ab05ec Merge pull request #1859 from Bachmann1234/patch-1
Fix typo in hello_world.rst
2013-09-12 10:10:49 -07:00
Michael Crosby
1d935c6307 Update docker.bash script for build -rm 2013-09-12 16:57:10 +00:00
Michael Crosby
b7a3fc687e Add rm option to docker build to remove intermediate containers 2013-09-12 16:55:36 +00:00
Guruprasad
718b1f9fe7 Fixed a minor typo
Changed "You need to enable namespaces and cgroups, to the extend of what is needed to run LXC containers" to "You need to enable namespaces and cgroups, to the extent of what is needed to run LXC containers"
2013-09-12 13:25:05 +05:30
Solomon Hykes
45cedefadb hack/vendor.sh: overwrite existing dependencies and remove .git so they can be checked in 2013-09-11 18:38:09 -07:00
Michael Crosby
1e723bc95a Replace multiline with empty string not space 2013-09-11 23:43:55 +00:00
Guillaume J. Charmes
082d142024 Add documentation 2013-09-11 15:41:44 -07:00
Kyle Conroy
9dd98df1a3 Merge branch 'master' of https://github.com/dotcloud/docker 2013-09-11 15:38:52 -07:00
Guillaume J. Charmes
e854b7b2e6 Make StdCopy works with huge amount of data 2013-09-11 14:49:33 -07:00
Guillaume J. Charmes
289350e633 Add stderr unit test 2013-09-11 14:48:22 -07:00
Guillaume J. Charmes
8ae5348a51 Split stdout stderr for non-tty commands 2013-09-11 14:48:22 -07:00
Andy Rothfusz
557e3ec88e Merge pull request #1851 from metalivedev/1601-ec2install
Fix #1601 and #1845
2013-09-11 14:41:43 -07:00
Matt Bachmann
dfe45e1ad5 Update hello_world.rst
Small typo
2013-09-11 15:35:05 -04:00
Victor Vieux
d5480fb78d Merge pull request #1857 from shin-/master
Fixed push bug
2013-09-11 10:52:05 -07:00
shin-
c6dc90ccb9 Fixed push bug 2013-09-11 19:39:33 +02:00
Michael Crosby
02037a9b53 Merge pull request #1726 from dsissitka/1615-2
Updated "POST /containers/create" to return the right Content-Type. Fixes #1615.
2013-09-11 09:09:48 -07:00
David Sissitka
71d46eaf02 Fixed a bug I created when rebasing. 2013-09-11 01:39:55 -07:00
David Sissitka
f4ba0d4267 Replaced leading spaces with tabs. Again. 2013-09-11 01:28:20 -07:00
David Sissitka
d48ea32186 Updated postContainersCreate to use writeJSON. 2013-09-11 01:26:26 -07:00
David Sissitka
33e4d73629 Replaced leading spaces with tabs. 2013-09-11 01:07:05 -07:00
David Sissitka
07324a37eb Rebased. 2013-09-11 01:03:17 -07:00
David Sissitka
dd49cc45c8 Added a status code argument to writeJSON. 2013-09-11 00:23:53 -07:00
Andy Rothfusz
21be3b76e9 Fix #1601 with vagrantless installation instructions. 2013-09-10 18:54:13 -07:00
Brian Olsen
9cfbaecfe5 Transfer uid and gid to volume. Fixes #1737. 2013-09-11 03:17:42 +02:00
Solomon Hykes
ebee8f28ac hack/make.sh print a warning but don't exit if called outside a correct build environment. 2013-09-10 18:08:02 -07:00
Solomon Hykes
03e36caeb1 Fix typo and add dependency details in hack/PACKAGERS.md 2013-09-10 18:02:33 -07:00
Victor Vieux
f482432a76 improved hostConfig reload 2013-09-10 22:13:15 +00:00
Andy Rothfusz
c75926be4f Fix #1845 lxc typo in images 2013-09-10 14:54:35 -07:00
Michael Crosby
bd0e4fde9a Merge pull request #1838 from jmcvetta/multiline_dockerfile
Implementation of multiline syntax for Dockerfile
2013-09-10 14:22:34 -07:00
Andy Rothfusz
de75241b62 Merge pull request #1835 from metalivedev/1821-exampleslanding
fix #1821 landing page for examples
2013-09-10 14:14:00 -07:00
Solomon Hykes
228b7af516 Remove fixed FIXMEs 2013-09-10 11:33:37 -07:00
Solomon Hykes
d14058bc29 Update usage comments in hack/make.sh 2013-09-10 11:33:26 -07:00
Solomon Hykes
5b361f31f7 Packager's manual: official build vs distro build 2013-09-10 11:30:14 -07:00
Kyle Conroy
c24c5c3b60 Merge branch 'master' of https://github.com/dotcloud/docker 2013-09-10 10:57:33 -07:00
Victor Vieux
44d0f941f2 fix wrong return error 2013-09-10 17:16:59 +00:00
Victor Vieux
b7826f5666 add Brian Olsen to AUTHORS 2013-09-10 16:55:27 +00:00
Victor Vieux
27ca0c225a Merge branch '1582_fix_volume_content' of https://github.com/griff/docker into griff-1582_fix_volume_content 2013-09-10 16:52:46 +00:00
Michael Crosby
ad152efbed Merge pull request #1759 from bdon/graph-map
Minor refactor of Graph; replace uses of Graph.All (slice) with Graph.Map (map)
2013-09-10 08:49:11 -07:00
Solomon Hykes
14bbbcd571 PACKAGERS.md: a guide to packaging Docker for your favorite distro 2013-09-09 23:39:55 -07:00
Solomon Hykes
3d39336a46 Break down hack/make.sh into small scripts, one per 'bundle': test, binary, ubuntu etc. 2013-09-09 18:45:40 -07:00
Jason McVetta
6a4afb7f8e stricter regexp for Dockerfile line continuations 2013-09-09 18:23:57 -07:00
Jason McVetta
c01f6df43e Test dockerfile with line containing literal "\n" 2013-09-09 18:23:17 -07:00
Michael Crosby
e89396809f Merge pull request #1735 from dotcloud/1301-support-domainname
Add domain name support
2013-09-09 17:21:11 -07:00
Jason McVetta
4f3b8033f2 cruft removal 2013-09-09 17:17:09 -07:00
Jason McVetta
ebb934c1b0 line continuation regex 2013-09-09 17:02:45 -07:00
Victor Vieux
2801624462 Merge pull request #1796 from shin-/api_1_5
*Remote API: Bumped API version to 1.5
*Registry: Implement login with private registry
*Remote API: Improve port mapping information
2013-09-09 16:58:54 -07:00
Jason McVetta
6921ca4813 read Dockerfile into memory before parsing, to facilitate regexp preprocessing 2013-09-09 16:42:04 -07:00
Solomon Hykes
59856a20bf Add the output of the tests to each release 2013-09-09 16:30:24 -07:00
Solomon Hykes
b187cc40cd Integrate unit tests into hack/make.sh 2013-09-09 16:20:30 -07:00
Victor Vieux
58281b4f18 Merge pull request #1793 from reds/master
From FIXME: local path for ADD
2013-09-09 16:14:59 -07:00
Jason McVetta
672f1e0683 failing test case for multiline command in dockerfile 2013-09-09 15:21:04 -07:00
Victor Vieux
dd806b4ecd add Martin Redmond to AUTHORS 2013-09-09 22:19:28 +00:00
Victor Vieux
843f9091f2 Merge branch 'filter' of https://github.com/reds/docker into reds-filter 2013-09-09 22:16:16 +00:00
Victor Vieux
53da0507e4 Merge pull request #1837 from dotcloud/fix-tests-1812
only os.Exits on error
2013-09-09 15:12:32 -07:00
Victor Vieux
bd847f66c6 rebase master 2013-09-09 22:11:53 +00:00
Solomon Hykes
e503f6a878 Merge pull request #1825 from dotcloud/merge-builder-runtime
Refactor to merge builder.go into runtime.go
2013-09-09 15:11:41 -07:00
Jason McVetta
6678a26d1c gofmt 2013-09-09 15:11:30 -07:00
Solomon Hykes
e37dcd726f Hack: use vendored dependencies in-place, for less moving parts when developing 2013-09-09 15:05:25 -07:00
Andy Rothfusz
8ddfb4d6aa Merge pull request #1828 from mmikulicic/patch-1
Please add go-dockerclient to docker API clients doc
2013-09-09 14:51:28 -07:00
Andy Rothfusz
28f2fe9167 Merge pull request #1836 from srid/patch-2
remove docker-ruby from docs
2013-09-09 14:50:36 -07:00
Sridhar Ratnakumar
3c90e96b6d remove docker-ruby from docs
we don't maintain it anymore as we now recommend proper HTTP api based clients instead.
2013-09-09 14:42:45 -07:00
Victor Vieux
46a1cd69a9 only os.Exits on error 2013-09-09 21:26:35 +00:00
Victor Vieux
9b088ada7e Merge pull request #1812 from dotcloud/return-run-exit-code
*Client: Return the process exit code for run commands
2013-09-09 14:10:46 -07:00
Andy Rothfusz
0508bd8da7 Merge pull request #1773 from hectcastro/hc-riak-example
Add a Docker example for running Riak
2013-09-09 13:31:41 -07:00
Victor Vieux
446ca4b57b fix init layer 2013-09-09 20:29:57 +00:00
Victor Vieux
4f2e59f94a bind mount /etc/hosts and /etc/hostname 2013-09-09 20:29:57 +00:00
Victor Vieux
0a436e03b8 add domainname support 2013-09-09 20:29:06 +00:00
Andy Rothfusz
c66a827c98 Merge pull request #1807 from tianon/gentoo-docs
Update Gentoo docs to reflect the package name change from app-emulation/lxc-docker to app-emulation/docker
2013-09-09 13:27:48 -07:00
Andy Rothfusz
fe99e51634 Created a little landing page for the examples, combined first two. 2013-09-09 13:19:07 -07:00
Joffrey F
49b5c44ee9 Merge pull request #1833 from shin-/1815-always-push-tags
Push tags to registry even if images are already uploaded
2013-09-09 13:10:40 -07:00
shin-
64bc08f1c4 Push tags to registry even if images are already uploaded 2013-09-09 21:02:37 +02:00
Andy Rothfusz
2d4ac06426 Merge pull request #1831 from brianshumate/jbs-docs-edits
Hello World Daemon edits
2013-09-09 11:48:12 -07:00
Brian Shumate
9749d94fb0 note about exiting from attachment prior to running 2013-09-09 10:30:06 -04:00
Brian Shumate
630ae43e7d improve sentence readabilty 2013-09-09 10:19:45 -04:00
Marko Mikulicic
268928ab35 Please add go-dockerclient to docker API clients doc 2013-09-09 11:01:15 +01:00
Solomon Hykes
4cd59b96ed Hack: we no longer need to generate test binaries. 2013-09-08 18:45:23 -07:00
Solomon Hykes
055bbb79c1 vendor.sh can cleanly update vendored dependencies 2013-09-07 17:48:52 -07:00
Brandon Philips
19dc3b0792 gitignore: ignore bundles directory 2013-09-07 17:35:49 -07:00
Wes Morgan
20d24a450c move deps installation to vendor.sh script 2013-09-07 17:35:48 -07:00
Solomon Hykes
eca861a99d Add missing package import 2013-09-07 17:03:40 -07:00
Solomon Hykes
d757bd0904 Document using the Dockerfile for interactive dev/test cycles 2013-09-06 20:16:13 -07:00
Solomon Hykes
47838051be Hack: improve the Dockerfile for an easier development workflow. Build dev container once, run a shell with source mount-binded, run tests as you edit. LIKE A BOSS. 2013-09-06 20:14:03 -07:00
Solomon Hykes
fa806f26af Add usage instructions to the Dockerfile. Build, test and release docker using docker. 2013-09-06 19:58:05 -07:00
Solomon Hykes
34eab42833 Adapt Dockerfile to run docker tests inside docker 2013-09-06 19:27:49 -07:00
Solomon Hykes
3c80bd76cf Adapt the original dind script and add a description 2013-09-06 19:27:48 -07:00
Solomon Hykes
c983023661 Copy dind wrapper script from github.com/jpetazzo/dind 2013-09-06 19:27:48 -07:00
Solomon Hykes
6a9f4ecf9b Add missing comments to runtime.go 2013-09-06 17:43:34 -07:00
Solomon Hykes
24e02043a2 Merge builder.go into runtime.go 2013-09-06 17:33:05 -07:00
Guillaume J. Charmes
c8f885a4d0 Merge pull request #1822 from dotcloud/remove_os_user
Remove os user
2013-09-06 16:30:54 -07:00
Guillaume J. Charmes
b07314e2e0 Remove import os/user 2013-09-06 23:00:21 +00:00
Solomon Hykes
eed00a4afd README: remove original shipping containers 'manifesto'. It's a little long to stay here. 2013-09-06 15:09:40 -07:00
Solomon Hykes
6679f3b053 README: replace 'install instructions' and 'usage examples' with references to the website and docs 2013-09-06 15:09:04 -07:00
Solomon Hykes
70ab25a5db README: harmonize intro with website 2013-09-06 15:08:01 -07:00
Solomon Hykes
bcb8d3fd86 README: refer to the docs for install instructions to remove duplication. 2013-09-06 14:52:14 -07:00
Solomon Hykes
b9ca311008 Update roadmap 2013-09-06 14:48:06 -07:00
Thatcher
37186d9ef4 Merge pull request #1818 from metalivedev/655-searchswiftype
Add Swiftype search to docs
2013-09-06 13:46:50 -07:00
Andy Rothfusz
03a28da5f7 Add Swiftype search to docs 2013-09-06 13:34:24 -07:00
Martin Redmond
b44d113120 filter image listing using path.Match 2013-09-06 16:16:10 -04:00
Martin Redmond
35bcba8011 improve image listing 2013-09-06 15:51:49 -04:00
Daniel Mizyrycki
f2bc7ebf1e Merge pull request #1777 from dotcloud/1620-index-test
testing, issue #1620: Add index functional test on docker-ci
2013-09-06 09:21:05 -07:00
Dmitry Demeshchuk
e5239b9859 Improve network performance for VirtualBox
Without those lines, VitrualBox machines are being very slow with all network operations (tested only in OS X Lion, but they are supposed to work everywhere). See https://github.com/mitchellh/vagrant/issues/1807
2013-09-05 21:05:23 -07:00
Joffrey F
8a2fd914b2 Merge pull request #1780 from shin-/1218-push-dependencies
Respect dependency graph when pushing a repository
2013-09-05 17:32:45 -07:00
Michael Crosby
f3d51bb3d5 Merge pull request #1810 from dotcloud/1798-inspect-fix
Detect images/containers conflicts in docker inspect
2013-09-05 17:17:09 -07:00
Michael Crosby
d06a0ba1a7 Merge pull request #1811 from dotcloud/672-remove_getcache
Remove unused getCache endpoint
2013-09-05 17:07:49 -07:00
Martin Redmond
8374dac021 From FIXME: local path for ADD 2013-09-05 20:05:36 -04:00
Michael Crosby
3bc73fa21e Return the process exit code for run commands 2013-09-05 23:54:03 +00:00
Victor Vieux
0d7044955a remove unused getCache endpoint 2013-09-05 23:00:52 +00:00
Victor Vieux
20a763e519 fix indent in doc 2013-09-05 22:33:04 +00:00
Victor Vieux
5ec2fea6dd Detect images/containers conflicts in docker inspect 2013-09-05 22:31:17 +00:00
Victor Vieux
908bb65dcf Merge pull request #1803 from dotcloud/1802-skip-TestGetContainersTop
testing, issue #1802: Temporarily skip TestGetContainersTop
2013-09-05 14:44:47 -07:00
Tianon Gravi
d368c2dee9 Update Gentoo docs to reflect the package name change from app-emulation/lxc-docker to app-emulation/docker as discussed in today's #docker-meeting 2013-09-05 13:36:56 -06:00
Tianon Gravi
82dd417ef6 Reformat Gentoo install instructions to 80 columns 2013-09-05 13:36:16 -06:00
Andy Rothfusz
b57d7dca9d Merge pull request #1804 from Bouke/patch-1
Fix memory recommendations (Byte, not bit)
2013-09-05 11:52:00 -07:00
Michael Crosby
8e41181591 Merge pull request #1772 from dotcloud/update-tar-revision
Update tar pkg revision number
2013-09-05 10:32:53 -07:00
Bouke Haarsma
fdf1fccd3e Fix memory recommendations (Byte, not bit) 2013-09-05 10:40:11 +02:00
Daniel Mizyrycki
bf6e241d97 testing, issue #1802: Temporarily skip TestGetContainersTop 2013-09-04 18:20:49 -07:00
Andy Rothfusz
f0cdbaa6c8 Merge pull request #1801 from vcoisne/master
Add step to docker installation using vagrant (Mac, Linux)
2013-09-04 18:15:22 -07:00
Andy Rothfusz
e0d6bae1eb Merge pull request #1789 from tommyblue/patch-1
Adds instruction about UDP port redirection
2013-09-04 18:14:34 -07:00
Andy Rothfusz
d6ff912917 Merge pull request #1797 from denibertovic/docs
fixed docs for installing binary
2013-09-04 18:13:25 -07:00
Victor Coisne
ad04cacd28 Add step to docker installation using vagrant (Mac, Linux) 2013-09-04 17:47:18 -07:00
Deni Bertovic
62823cfb97 fixed docs for installing binary 2013-09-05 00:06:41 +02:00
shin-
9ae5054c34 Bumped API version in api.go ; added <1.5 behavior to getContainersJSON 2013-09-04 23:41:44 +02:00
Daniel Mizyrycki
8878943ac9 deployment, issue #1578: Avoid pinning kernel headers. Add Vagrantfile assumptions 2013-09-04 14:41:09 -07:00
Daniel Mizyrycki
8e3844cd34 Merge pull request #1578 from jimmycuadra/vagrant-provider-detection
Better VirtualBox detection in Vagrantfile
2013-09-04 14:40:32 -07:00
Andy Rothfusz
1a32c4a1df Merge pull request #1795 from eliasp/patch-1
Typo
2013-09-04 14:13:52 -07:00
shin-
98edd0e751 Updated docs for API v1.5 2013-09-04 22:58:58 +02:00
shin-
98a1314251 Merge branch 'mhennings-1357-implement-login-with-private-registry' into api_1_5 2013-09-04 22:27:04 +02:00
shin-
34edbd4f7e Merge branch '1357-implement-login-with-private-registry' of git://github.com/mhennings/docker into mhennings-1357-implement-login-with-private-registry 2013-09-04 22:26:55 +02:00
shin-
2ea52dddec Merge branch 'better_api_ports' of git://github.com/shin-/docker into shin--better_api_ports 2013-09-04 22:25:01 +02:00
Elias Probst
396274fa6d Typo 2013-09-04 21:56:51 +02:00
Jimmy Cuadra
28e75b23b3 Don't install VirtualBox Guest Additions if VAGRANT_DEFAULT_PROVIDER is set. 2013-09-04 11:21:24 -07:00
Tommaso Visconti
ad5796de9f Adds instruction about UDP port redirection 2013-09-04 19:17:10 +02:00
Daniel Mizyrycki
3a6868bc2f Merge pull request #1788 from dotcloud/1787-deprecate-port-forwarding
deployment, issue #1787: Remove deprecated port forwarding from /Vagrantfile
2013-09-04 10:11:12 -07:00
Daniel Mizyrycki
34145f9840 deployment, issue #1787: Remove deprecated port forwarding from /Vagrantfile 2013-09-04 10:05:54 -07:00
Andy Rothfusz
58ea690b41 Merge pull request #1784 from proger/patch-1
add new docker api client for erlang, erldocker
2013-09-04 10:01:29 -07:00
Andy Rothfusz
3b92ab3465 Merge pull request #1783 from briehanlombaard/typos
Fixed typos
2013-09-04 10:00:10 -07:00
Andy Rothfusz
76f97a64fa Merge pull request #1785 from thijsterlouw/update_commandline_cli
Fix documentation index for cli
2013-09-04 09:59:30 -07:00
Andy Rothfusz
5974794942 Merge pull request #1782 from tianon/gentoo-docs
Added Gentoo Documentation
2013-09-04 09:58:36 -07:00
Thijs Terlouw
368d0385e1 Fix documentation index for cli 2013-09-04 13:21:44 +02:00
Vladimir Kirillov
58ffd03bf1 add new docker api client for erlang, erldocker 2013-09-04 12:53:38 +03:00
Tianon Gravi
9ce1d02ef6 Add Gentoo documentation 2013-09-04 02:59:18 -06:00
Briehan Lombaard
251d1261b0 Fixed typos 2013-09-04 10:52:53 +02:00
Daniel Mizyrycki
a0a5170991 Merge pull request #1449 from spkane/honor-ENV-VAGRANT_DEFAULT_PROVIDER
Assume that if VAGRANT_DEFAULT_PROVIDER is set we shouldn't install vbox tools
2013-09-03 17:38:03 -07:00
shin-
b3a70d767d Compute dependency graph and upload layers in the right order when pushing 2013-09-04 02:21:40 +02:00
Daniel Mizyrycki
91ee679549 pr #1718: Fetch docker gpg over https 2013-09-03 17:14:49 -07:00
Markus Fix
52fe452497 Changed docker apt repo URI from https to http because the http driver for apt is not installed by default 2013-09-03 17:10:03 -07:00
Daniel Mizyrycki
846524115b testing, issue #1620: Add index functional test on docker-ci 2013-09-03 15:38:06 -07:00
Hector Castro
fac4cedcc1 Add a Docker example for running Riak. 2013-09-03 16:30:40 -04:00
Marco Hennings
ded973219e Move auth header on run cmd 2013-09-03 20:59:48 +02:00
shin-
dd4aab8411 Use base64 encoding 2013-09-03 20:59:48 +02:00
shin-
d04beb7f43 Pass auth config through headers rather than as URL param 2013-09-03 20:59:48 +02:00
Marco Hennings
a2603477dd Merge on current master 2013-09-03 20:59:48 +02:00
Marco Hennings
ad322d7cca Send corrent endpoint authentication when an image is pulled during the run
cmd.
2013-09-03 20:59:48 +02:00
Marco Hennings
da3bb9a7c6 Move authConfig to a Parameter on postImagePush, too 2013-09-03 20:59:48 +02:00
Daniel Mizyrycki
0e6ee9632c Merge pull request #1603 from dotcloud/773-docker-ci-pr
773 docker-ci github pull request
2013-09-03 11:46:34 -07:00
Marco Hennings
fcee6056dc Login against private registry
To improve the use of docker with a private registry the login
command is extended with a parameter for the server address.

While implementing i noticed that two problems hindered authentication to a
private registry:

1. the resolve of the authentication did not match during push
   because the looked up key was for example localhost:8080 but
   the stored one would have been https://localhost:8080

   Besides The lookup needs to still work if the https->http fallback
   is used

2. During pull of an image no authentication is sent, which
   means all repositories are expected to be private.

These points are fixed now. The changes are implemented in
a way to be compatible to existing behavior both in the
API as also with the private registry.

Update:

- login does not require the full url any more, you can login
  to the repository prefix:

  example:
  docker logon localhost:8080

Fixed corner corner cases:

- When login is done during pull and push the registry endpoint is used and
  not the central index

- When Remote sends a 401 during pull, it is now correctly delegating to
  CmdLogin

- After a Login is done pull and push are using the newly entered login data,
  and not the previous ones. This one seems to be also broken in master, too.

- Auth config is now transfered in a parameter instead of the body when
  /images/create is called.
2013-09-03 20:45:49 +02:00
Michael Crosby
ea813d8593 Update tar pkg revision number 2013-09-03 18:30:32 +00:00
Michael Crosby
d13c2ed24e Merge pull request #1317 from calavera/login_signal
Exit from `docker login` on SIGTERM and SIGINT.
2013-09-03 11:16:05 -07:00
Andy Rothfusz
75df4953f4 Merge pull request #1758 from mattapperson/patch-1
Added NodeJS library
2013-09-03 11:02:34 -07:00
Andy Rothfusz
f703b8b839 Merge pull request #1771 from thijsterlouw/missing_cli_docs
Add 2 missing cli commands to docs (events + insert)
2013-09-03 10:41:05 -07:00
Thijs Terlouw
6380b42edb Add 2 missing cli commands to docs (events + insert) and alphabetically order docker output 2013-09-03 16:35:22 +02:00
David Calavera
ce53e21ea6 Read the stdin line properly.
Load the auth config before it's used.
2013-09-01 16:12:07 -07:00
David Calavera
35fef275b3 Merge branch 'login_signal' of https://github.com/calavera/docker into login_signal
* 'login_signal' of https://github.com/calavera/docker:
  Use flag.StringVar to capture the command line flags.
  Fix syscall name.
  Remove unused imports.
  Simplify term signal handler.
  Add the ISIG syscall back to not kill the client withing a shell with ctrl+c.
  Print a new line after getting the password from stdin.
  Exit if there is any error reading from stdin.
  Stop making a raw terminal to ask for registry login credentials.
  Allow to generate signals when termios is in raw mode.
  Use a more idiomatic syntax to capture the exit.
  Exit from `docker login` on SIGTERM and SIGINT.
2013-09-01 16:10:53 -07:00
David Calavera
fa3266efa5 Merge branch 'master' into login_signal
* master: (23 commits)
  Made calling changelog before run return empty. Fixes #1705.
  fix error in docker build when param is not a directory
  Document FROM <image>:<tag> Dockerfile instruction.
  Install Ubuntu raring backported kernel from official archives directly.
  Updated "Use -> The Basics" to use ubuntu:12.10.
  hide version when not available
  added a Dockerfile which installs all deps and builds the docs.
  Unable to find image error should print to stderr
  remove message during tests
  use init function
  add TEST env var during tests and silenced parserun during tests
  Update python_web_app.rst
  Update remaining upstart scripts to wait for lxc-net
  Fixed a minor syntax error.
  Add privileged flag in documentation for container creation
  Fix #1685: Notes on production use. General installation cleanup.
  Fix bash completion, remove have
  added apt-key finger tip and fingerprint in ubuntu installation page
  Improve formatting with 'go fmt' as stated in CONTRIBUTING.md
  Start docker after lxc-net to prevent ip forwarding race
  ...
2013-09-01 15:56:59 -07:00
Brandon Liu
113bb396cd Don't export Graph.walkAll. 2013-08-31 20:44:49 -07:00
Brandon Liu
1fca99ad90 Replace Graph.All with Graph.Map 2013-08-31 20:44:42 -07:00
Matt Apperson
e42d3a1bfa Added NodeJS library 2013-08-31 22:13:15 -04:00
Victor Vieux
3528990c73 Merge pull request #1665 from dotcloud/ksid-contrib-maintainer
Make Kawsar Saiyeed @KSid the maintainer for contributed tools
2013-08-30 17:07:03 -07:00
Andy Rothfusz
8ee4473d92 Merge pull request #1704 from dhrp/ubuntu-install-finger-fingerprint
added apt-key finger tip and fingerprint in ubuntu installation page
2013-08-30 16:15:19 -07:00
Daniel Mizyrycki
212b582362 Merge pull request #1673 from xdissent/1659-upstart-order
Start docker after lxc-net to prevent ip forwarding race
2013-08-30 16:05:40 -07:00
Guillaume J. Charmes
969e48dd5a Merge pull request #1752 from dotcloud/1750-build_error-fix
fix error in docker build when param is not a directory
2013-08-30 16:05:23 -07:00
Guillaume J. Charmes
d9b7ec6458 Merge pull request #1754 from griff/1705_changelog_fails_before_run
- Runtime: Made calling change log before run return empty list.
2013-08-30 16:02:46 -07:00
Brian Olsen
46c9c5c843 Made calling changelog before run return empty. Fixes #1705. 2013-08-30 22:46:07 +02:00
Brian Olsen
7a9c711832 Copies content from image to volumne if non-empty. Fixes #1582. 2013-08-30 22:02:05 +02:00
Brian Olsen
6756e786ac Just fixing gofmt issues in other people's code. 2013-08-30 22:02:05 +02:00
Michael Crosby
84431ec03c Merge pull request #1613 from thijsterlouw/proper_resolvconf_parsing
Proper resolv.conf parsing
2013-08-30 12:10:45 -07:00
Victor Vieux
d605e82bad fix error in docker build when param is not a directory 2013-08-30 18:08:29 +00:00
Andy Rothfusz
2ea19238ff Merge pull request #1744 from dsissitka/patch-7
Updated "Use -> The Basics" to use ubuntu:12.10.
2013-08-30 10:44:54 -07:00
Andy Rothfusz
df36f9db05 Merge pull request #1749 from msiebuhr/doc-from-tags
Document FROM <image>:<tag> Dockerfile instruction.
2013-08-30 10:44:36 -07:00
Michael Crosby
74982bda32 Merge pull request #1738 from jonasi/error-to-stderr
Unable to find image error should print to stderr
2013-08-30 10:43:45 -07:00
Michael Crosby
6d769f4b9b Merge pull request #1743 from dotcloud/fix_version
Hide version when not available
2013-08-30 10:39:48 -07:00
Morten Siebuhr
1a8a540209 Document FROM <image>:<tag> Dockerfile instruction. 2013-08-30 15:23:32 +02:00
Shih-Yuan Lee (FourDollars)
6c206f7d78 Install Ubuntu raring backported kernel from official archives directly. 2013-08-30 14:12:13 +08:00
Andy Rothfusz
110d3b7794 Merge pull request #1736 from ramonvanalteren/patch-1
Update python_web_app.rst
2013-08-29 18:36:53 -07:00
dsissitka
c0e95fa68a Updated "Use -> The Basics" to use ubuntu:12.10.
ubuntu:latest doesn't have nc. ubuntu:12.10 does.
2013-08-29 21:05:18 -04:00
Victor Vieux
e3b58d3027 hide version when not available 2013-08-30 00:46:43 +00:00
Andy Rothfusz
9b029a0854 Merge pull request #1739 from dotcloud/add-docs-dockerfile
Added a Dockerfile which installs all deps and builds the Docs
2013-08-29 17:42:17 -07:00
Victor Vieux
49d35cc0ae Merge pull request #1690 from jbbarth/code-formatting
go fmt
2013-08-29 17:13:37 -07:00
Nick Stinemates
c6702bebe1 added a Dockerfile which installs all deps and builds the docs. 2013-08-30 00:13:32 +00:00
Michael Crosby
690c3839fd Merge pull request #1710 from thomasf/master
Fix bash completion.
2013-08-29 17:08:14 -07:00
Victor Vieux
050cf70136 Merge pull request #1721 from andrewmunsell/patch-2
Add privileged flag in documentation for container creation
2013-08-29 17:05:40 -07:00
Guillaume J. Charmes
df8f95ac74 Merge pull request #1591 from dotcloud/1557_fix_docker_run_useage
add TEST env var during tests and silenced parserun during tests
2013-08-29 16:51:34 -07:00
Andy Rothfusz
0f91418b26 Merge pull request #1729 from dsissitka/patch-6
Fixed a minor syntax error.
2013-08-29 16:27:22 -07:00
Isao Jonas
4ff649ce85 Unable to find image error should print to stderr 2013-08-29 18:25:11 -05:00
Andy Rothfusz
c4394decf8 Merge pull request #1717 from metalivedev/1685-updateinstallation
Fix #1685: Notes on production use. General installation cleanup.
2013-08-29 16:06:00 -07:00
Victor Vieux
f159f4710b remove message during tests 2013-08-29 22:59:34 +00:00
Victor Vieux
740a97f1a8 use init function 2013-08-29 22:55:29 +00:00
Victor Vieux
eee6d3dae9 add TEST env var during tests and silenced parserun during tests 2013-08-29 22:55:29 +00:00
Ramon van Alteren
559724ac35 Update python_web_app.rst
Fixed typo in the WEB_PORT command, missing sudo in front of docker command
2013-08-30 00:37:47 +02:00
Greg Thornton
3f141e1fd3 Update remaining upstart scripts to wait for lxc-net 2013-08-29 14:06:24 -05:00
David Calavera
9f8e5a93b4 Use flag.StringVar to capture the command line flags. 2013-08-29 11:46:42 -07:00
David Calavera
78d995bbd6 Fix syscall name. 2013-08-29 11:46:42 -07:00
David Calavera
e7ee2f443a Remove unused imports. 2013-08-29 11:46:42 -07:00
David Calavera
b8a8962833 Simplify term signal handler. 2013-08-29 11:46:42 -07:00
David Calavera
b54ba5095b Add the ISIG syscall back to not kill the client withing a shell with ctrl+c. 2013-08-29 11:46:41 -07:00
David Calavera
f18889bf67 Print a new line after getting the password from stdin. 2013-08-29 11:46:41 -07:00
David Calavera
6e4a818ee6 Exit if there is any error reading from stdin. 2013-08-29 11:46:41 -07:00
David Calavera
2357fecc92 Stop making a raw terminal to ask for registry login credentials.
It only disables echo asking for the password and lets the terminal to handle everything else.
It fixes #1392 since blank spaces are not discarded as they did before.
It also cleans the login code a little bit to improve readability.
2013-08-29 11:46:41 -07:00
David Calavera
23dc52f528 Allow to generate signals when termios is in raw mode. 2013-08-29 11:45:04 -07:00
David Calavera
c3154fdf4d Use a more idiomatic syntax to capture the exit. 2013-08-29 11:45:03 -07:00
David Calavera
f1d0625cf8 Exit from docker login on SIGTERM and SIGINT.
Fixes #1299.
2013-08-29 11:45:03 -07:00
Andy Rothfusz
230dc07d37 fix logo path 2013-08-29 11:24:59 -07:00
Andy Rothfusz
c46d9933ec Merge pull request #1727 from dsissitka/patch-5
Fixed a minor syntax error.
2013-08-29 11:05:22 -07:00
Andy Rothfusz
bcb081a269 Merge pull request #1708 from nexxy/patch-1
Update docker_remote_api_v1.4.rst
2013-08-29 10:22:05 -07:00
dsissitka
57892365ef Fixed a minor syntax error. 2013-08-29 12:35:37 -04:00
dsissitka
075253238d Fixed a minor syntax error. 2013-08-29 12:27:35 -04:00
David Sissitka
f6b56e996d Updated "POST /containers/create" to return the right Content-Type. 2013-08-29 09:14:14 -07:00
Emily Rose
18d572abb4 Added Emily Rose to AUTHORS. 2013-08-28 22:28:31 -07:00
Andrew Munsell
37a236947e Add privileged flag in documentation for container creation 2013-08-28 22:18:47 -07:00
Emily Rose
c1f6914e43 Correct number of asterisks. 2013-08-28 20:01:18 -07:00
Andy Rothfusz
b1eae313ad Fix #1685: Notes on production use. General installation cleanup. 2013-08-28 17:26:10 -07:00
Elias Probst
a359e52f29 Added FIXME for iproute → netlink as advised in issue #925. 2013-08-29 01:50:37 +02:00
Andy Rothfusz
bf98fff925 Merge pull request #1674 from jbbarth/docs
Add mercurial to the list of packages needed in a dev environment
2013-08-28 11:10:45 -07:00
Michael Crosby
e6c3da42e7 Merge pull request #1696 from daniel-garcia/1448-add_newline_every_logmessage
Write newline after every log message
2013-08-28 10:00:38 -07:00
Victor Vieux
d5220bc081 Merge pull request #1711 from dotcloud/1709-start_doc-fix
fix start documentation
2013-08-28 09:51:20 -07:00
Victor Vieux
66ef6c0f6e fix start doc 2013-08-28 16:40:00 +00:00
Thomas Frössman
20772f90ff Fix bash completion, remove have
Should solve #1639.
2013-08-28 18:38:06 +02:00
Kyle Conroy
9a60f36ccc Merge branch 'master' of https://github.com/dotcloud/docker 2013-08-28 06:44:21 -07:00
Emily Rose
69a93b36d5 Update docker_remote_api_v1.4.rst
Fixed a (very serious) typo.
2013-08-28 04:12:37 -07:00
Thatcher Peskens
466a88b9a8 added apt-key finger tip and fingerprint in ubuntu installation page 2013-08-27 19:59:36 -07:00
Andy Rothfusz
f0620da74a Merge pull request #1703 from metalivedev/621-usebaseimages
Fix #621: add new use/base images section. Include examples.
2013-08-27 18:53:40 -07:00
Andy Rothfusz
dffb72ca89 Fix #621: add new use/base images section. Include examples. 2013-08-27 18:49:43 -07:00
Andy Rothfusz
128893062b Merge pull request #1698 from metalivedev/1684-Cleanup
Fix #1684: Cleanup introduction, working with repos, "use" index.
2013-08-27 18:15:06 -07:00
shin-
98018df078 More descriptive, easier to process container portmappings information in the API 2013-08-28 00:20:35 +02:00
Andy Rothfusz
4a3b039c2a Merge pull request #1694 from dotcloud/troubleshoot_windows_installation
Troubleshooting windows installation section
2013-08-27 14:48:15 -07:00
Andy Rothfusz
c627ff6e20 Fix #1684: Old Welcome is now Introduction. Working with Repos now follows Builder.
Clean up some doc build errors. Removed old Manifesto. Tweaked layout javascript
to allow direct link from first and last index elements.
2013-08-27 14:29:49 -07:00
daniel-garcia
d593f57952 write newline after every log message. 2013-08-27 14:09:26 -05:00
Michael Crosby
c2b273df5d Merge pull request #1611 from pysqz/master
Make sure 'Ghost' container is available with allocated IP
2013-08-27 11:30:00 -07:00
pysqz
cc18a9c650 Also reuse forwarding ports 2013-08-28 03:14:21 +08:00
Daniel Mizyrycki
f861c493bf Troubleshooting windows installation section 2013-08-27 11:19:32 -07:00
jbbarth
d80b50d4b4 Improve formatting with 'go fmt' as stated in CONTRIBUTING.md
As 'go fmt' doesn't support verifying files in multiple directories,
it's probably a good idea to run it on all '*.go' files from time to
time with something like this:

  find . -name "*.go" | xargs dirname | sort -u | xargs -n 1 echo go fmt
2013-08-27 10:05:25 +02:00
Andy Rothfusz
5b84252c73 Merge pull request #1622 from TylerBrock/patch-2
Some fixes for MongoDB example
2013-08-26 17:28:38 -07:00
Tyler Brock
f352ec945f ENTRYPOINT fixups 2013-08-26 19:17:26 -04:00
Daniel Mizyrycki
714e424d74 Merge pull request #1656 from KSid/vagrantfile-0.6
Update Vagrantfile to use docker apt repository
2013-08-26 14:59:40 -07:00
Andy Rothfusz
f7fa6c2b0b Merge pull request #1671 from kim0/patch-3
Don't force a non-existent npm version, use latest from epel
2013-08-26 14:33:07 -07:00
Michael Crosby
b866254a19 Merge pull request #1636 from unclejack/1594-return_non_zero_when_encountering_error
1594 - return non-zero exit code if at least one container has failed to start
2013-08-26 13:20:31 -07:00
Michael Crosby
108b6c644b Merge pull request #1678 from dotcloud/remove-incorrect-build-instructions
Remove incorrect build instructions
2013-08-26 12:56:08 -07:00
Guillaume J. Charmes
9ce7b1c009 Merge pull request #1663 from KSid/1661-cp-parsing-error
- Runtime: Display error if docker cp resource not specified
2013-08-26 12:51:43 -07:00
Solomon Hykes
076434ef10 Remove incorrect build instructions 2013-08-26 12:06:56 -07:00
Andy Rothfusz
f2807042c2 Merge pull request #1670 from tobstarr/patch-1
Change fetching of gpg key from http to https
2013-08-26 12:00:54 -07:00
Guillaume J. Charmes
d4c7340131 Merge pull request #1646 from mohitsoni/master
- Runtime: Fix uname -r kernel version parsing
2013-08-26 11:49:00 -07:00
Greg Thornton
331f983593 Start docker after lxc-net to prevent ip forwarding race 2013-08-26 09:43:49 -05:00
jbbarth
1adbadde80 Add mercurial to the list of packages needed in a dev environment
The dev environment setup procedure fails if mercurial is not installed
on the machine, it cannot download stuff from
http://code.google.com/p/go.net for instance.
2013-08-26 16:39:38 +02:00
kim0
843ef645d2 Don't force a non-existent npm version, use latest from epel
Not the smartest thing to do
2013-08-26 12:54:15 +03:00
Tobias Schwab
4440bde0eb Change fetching of gpg key from http to https
Or was there any reason to fetch using http?
2013-08-26 11:45:15 +02:00
Solomon Hykes
f83d556bc0 Make Kawsar Saiyeed @KSid the maintainer for contributed tools 2013-08-24 17:16:52 -07:00
Kawsar Saiyeed
d8a18ea3ae Display error if resource not specified
Display an error message if a container resource is not supplied to
'docker cp'.

Fixes error in #1661
2013-08-25 00:28:36 +01:00
Nick Stinemates
c864647721 Merge pull request #1658 from jamescarr/patch-1
Update for new mailing list
2013-08-24 10:28:26 -07:00
Nick Stinemates
2891e828bd Merge pull request #1657 from KSid/bash-completion-0.6
Add latest docker options to docker.bash
2013-08-24 10:27:25 -07:00
James Carr
465d5313c5 Update for new mailing list 2013-08-24 10:26:54 -07:00
Kawsar Saiyeed
02d1d238cd Add latest docker options to docker.bash
Adds bash completion options for the latest docker release (0.6.1)
2013-08-24 18:04:40 +01:00
Kawsar Saiyeed
1f85ed6825 Update Vagrantfile to use docker apt repository 2013-08-24 16:49:55 +01:00
Mohit Soni
ef82690144 Merge remote-tracking branch 'upstream/master' 2013-08-24 00:33:01 -07:00
Mohit Soni
f4432d50c3 Refactored code and added unit tests
- Extracted ParseRelease method from GetKernelVersion to make code
  more testable
- Added tests for ParseRelease method
2013-08-24 00:24:40 -07:00
Andy Rothfusz
820a3b962a Merge pull request #1634 from songgao/patch-1
Added utils/utils.go : CopyEscapable escale sequence to tutorial.
2013-08-23 18:52:17 -07:00
Michael Crosby
99a8306898 Merge release 0.6.1 back to master
Conflicts:
	VERSION
2013-08-23 22:59:29 +00:00
Michael Crosby
bd16107e97 Merge pull request #1648 from dotcloud/bump_0.6.1
Bump to 0.6.1
2013-08-23 15:49:28 -07:00
Michael Crosby
5105263dac Bump to v0.6.1 2013-08-23 22:23:30 +00:00
Michael Crosby
7b5c579b77 Use correct upstart script with new build tool 2013-08-23 22:20:36 +00:00
Michael Crosby
dcfb993ac7 Merge pull request #1642 from dotcloud/upstart-exec
Use correct upstart script with new build tool
2013-08-23 15:18:58 -07:00
Andy Rothfusz
dd9ee039a6 Merge pull request #1633 from abhirajbutala/patch-1
Update docker_remote_api.rst
2013-08-23 15:17:21 -07:00
Kawsar Saiyeed
15d658d36b Removed duplicate mercurial install command 2013-08-23 22:16:49 +00:00
unclejack
59281d6f80 use libffi-dev, don't build it from sources 2013-08-23 22:16:23 +00:00
shin-
29be20f987 Fixed: ImagePull in runtime test 2013-08-23 22:16:11 +00:00
shin-
5a8c32dc8e Use additional decorator in RequestFactory to pass meta headers to registry 2013-08-23 22:16:03 +00:00
Michael Crosby
3d9b4379a5 Use correct upstart script with new build tool 2013-08-23 22:10:18 +00:00
Mohit Soni
ab882da03b Fixes #1643
Changed the split statement, from SplitN to Split. Doing so takes
care of cases, when a minor version is followed by a suffix, that
starts with '.'.
2013-08-23 14:37:37 -07:00
Thatcher
e2594d162e Merge pull request #1641 from dotcloud/docs-0.6-gpg-key
Docs 0.6 gpg key
2013-08-23 13:14:21 -07:00
Thatcher Peskens
ebb9b5e85b Added adding the gpg key 2013-08-23 12:56:03 -07:00
Michael Crosby
98f9d3e81c Merge pull request #1562 from AnSavvides/contributing-link
Adding direct reference to contribution guidelines
2013-08-23 12:18:24 -07:00
Thatcher Peskens
091fb89294 Added line on top of ubuntulinux announcing change in 0.6
Added lines on top of vagrant installs
2013-08-23 11:45:52 -07:00
Michael Crosby
db91cac44f Merge pull request #1635 from unclejack/fix_main_dockerfile
Fix libffi build failure for the main Dockerfile
2013-08-23 11:31:19 -07:00
Guillaume J. Charmes
8dd3607bd1 Merge pull request #1563 from dotcloud/1073_add_loading_message
* Runtime: Add loading containers message in no debug
2013-08-23 11:20:22 -07:00
Solomon Hykes
3ebda17f0f Merge pull request #1637 from dhrp/change-docs-ubuntu-sources
Updated the docs to reflect we no longer use Launchpad and host our own
2013-08-23 11:05:59 -07:00
Michael Crosby
9149c45745 Merge pull request #1627 from shin-/registry_metaheaders
Pass "meta" headers in API calls to the registry
2013-08-23 11:05:41 -07:00
Michael Crosby
969ab9c450 Merged 0.6.0 release back to master 2013-08-23 17:50:24 +00:00
Michael Crosby
588f8e1cec Merge pull request #1628 from dotcloud/bump_0.6.0
Bump to 0.6.0
2013-08-23 10:45:14 -07:00
Thatcher Peskens
f753dfe6b3 Updated the docs to reflect we no longer use Launchpad and host our own repository. 2013-08-23 10:41:53 -07:00
unclejack
d1ad0e278d return error if at least one container fails to start
This makes docker start exit with exit code 1 if at least one container
didn't start. This also prints an error at the end.
2013-08-23 20:14:06 +03:00
unclejack
72cfa3de35 use libffi-dev, don't build it from sources 2013-08-23 19:13:30 +03:00
Abhiraj Butala
3396a183c6 Update docker_remote_api.rst 2013-08-23 01:28:58 -07:00
shin-
1c6af604e8 Fixed: ImagePull in runtime test 2013-08-23 04:32:09 +02:00
Guillaume J. Charmes
ccc2276469 Merge pull request #1630 from KSid/docker-build-dockerfile
Removed duplicate mercurial install command from Dockerfile
2013-08-22 17:31:35 -07:00
Guillaume J. Charmes
78a71b1273 Merge pull request #1587 from dotcloud/1559_improve_version
Improve version
2013-08-22 17:28:18 -07:00
Kawsar Saiyeed
2191419f4c Removed duplicate mercurial install command 2013-08-22 23:12:28 +01:00
Michael Crosby
f4a4f1ca87 Bump to 0.6.0 2013-08-22 21:09:50 +00:00
Guillaume J. Charmes
f925edd12d Merge pull request #1525 from griff/1503-fix
Don't read from stdout when only attached to stdin
2013-08-22 13:43:05 -07:00
Michael Crosby
12715c8ddc Merge pull request #1609 from jpetazzo/release-docker-with-docker
Release docker with docker
2013-08-22 13:13:06 -07:00
shin-
093b85b72f Use additional decorator in RequestFactory to pass meta headers to registry 2013-08-22 21:15:31 +02:00
Michael Crosby
326dadd224 Merge pull request #1565 from dotcloud/only_load_authconfig_when_needed
Load authConfig only when needed and fix useless WARNING
2013-08-22 11:10:16 -07:00
Michael Crosby
a3510c99f1 Merge pull request #1560 from dotcloud/439-allow-lxc-args
Add lxc-conf flag to allow custom lxc options
2013-08-22 09:34:27 -07:00
Michael Crosby
262d57e387 Merge pull request #1623 from mhennings/1592-fix-race-conditions-in-parallel-pull
Fix race conditions in parallel pull
2013-08-22 09:30:21 -07:00
Michael Crosby
551092f9c0 Add lxc-conf flag to allow custom lxc options 2013-08-22 16:05:21 +00:00
Marco Hennings
3f802f4a13 Fix race conditions in parallel pull
During parallel pull of a repostiory it can happen that the same layer
is pulled more than once.

To fix this I have extended the locking code to
- avoid multiple pulls of the same image
- avoid multiple pulls of the same layer


If an error occurs the other layers are awaited before returning as leaving
the scope before the go routines leave causes crashes of the server sometimes
if the download status is updated while the http stream is already closed


Beside this I have extended status display.
2013-08-22 13:23:43 +02:00
Tyler Brock
d6f53049c4 Some fixes for MongoDB example 2013-08-21 23:48:32 -04:00
Daniel Mizyrycki
5e3386473a testing, issue #773: Add infrastructure docker-ci PR documentation 2013-08-21 17:39:45 -07:00
Andy Rothfusz
0b9c8e2860 Merge pull request #1596 from metalivedev/1149-easyfixes
Fix #1330 and #1149. Improve CMD, ENTRYPOINT, and attach docs.
2013-08-21 14:06:41 -07:00
Andy Rothfusz
42fe550c9e Merge pull request #1614 from denibertovic/docs
Small fix to docs regarding adding docker groups
2013-08-21 12:26:56 -07:00
Andy Rothfusz
f5bd137216 Add mongodb example 2013-08-21 12:09:40 -07:00
Andy Rothfusz
348696f3fe Merge pull request #1607 from TylerBrock/mongodb
Add MongoDB image example
2013-08-21 12:07:50 -07:00
Michael Crosby
6da071985f Merge pull request #1513 from dotcloud/add_user_dockerfile
Add USER instruction do Dockerfile
2013-08-21 09:19:31 -07:00
Michael Crosby
56e02dd0c7 Merge pull request #1588 from dotcloud/1561_fix_warning_in_tests
assume ip_forwarding = 1 by default
2013-08-21 09:15:23 -07:00
Michael Crosby
e0a7013836 Merge pull request #1576 from MatthewMueller/patch-1
updated default -H docs
2013-08-21 09:09:43 -07:00
Deni Bertovic
467dbb75f1 small fix to docs regarding adding docker groups 2013-08-21 17:28:13 +02:00
pysqz
2f6ce27fde Make sure 'Ghost' container is available with allocated IP 2013-08-21 22:37:58 +08:00
Thijs Terlouw
c349b4d56c Keep linebreaks and generalize code 2013-08-21 15:48:39 +02:00
Thijs Terlouw
62e84785b6 proper resolv.conf parsing 2013-08-21 15:23:12 +02:00
Matt Mueller
215094903a update help 2013-08-21 02:08:32 -07:00
Jérôme Petazzoni
8a7c0495e0 Remove -x flag — we do not want to be *that* verbose. 2013-08-20 20:50:42 -07:00
Jérôme Petazzoni
885afebe07 Bump up VERSION file to 0.5.3-dev 2013-08-20 19:36:42 -07:00
Jérôme Petazzoni
e06372d6f4 Update packaging/README to point to hack/release 2013-08-20 19:36:06 -07:00
Jérôme Petazzoni
b5a48eaed3 Moved release scripts to hack/release and updated instructions. 2013-08-20 19:36:06 -07:00
Jérôme Petazzoni
a8059059c6 +CHANGES is now -dirty (works better in URLs), and we have postinstall and prerm jobs. 2013-08-20 19:36:06 -07:00
Jérôme Petazzoni
c8c69a1499 Bump to 0.5.3 (VERSION file) 2013-08-20 19:36:06 -07:00
Jérôme Petazzoni
0469e47674 Release script also takes care of index file (if the S3 bucket is WS-enabled) 2013-08-20 19:36:06 -07:00
Jérôme Petazzoni
5b630d436d If there are changes, add the timestamp to the package version. 2013-08-20 19:35:31 -07:00
Jérôme Petazzoni
9c06420b18 Implement apt-secure repository signing. 2013-08-20 19:35:31 -07:00
Jérôme Petazzoni
87872006ce Repository should also have i386 index, since Ubuntu is multi-arch by default 2013-08-20 19:35:31 -07:00
Jérôme Petazzoni
abfa7a204d Update to go 1.1.2. 2013-08-20 19:35:30 -07:00
Jérôme Petazzoni
5b0eaef602 Run reprepro from release, incrementally (it needs S3 credentials). Add virtual package. 2013-08-20 19:35:30 -07:00
Jérôme Petazzoni
9694fb85d7 Install python-magic (it helps s3cmd) and a convenience /src symlink 2013-08-20 19:35:30 -07:00
Jérôme Petazzoni
bfee2c726e Polish instructions a little bit. 2013-08-20 19:35:30 -07:00
Jérôme Petazzoni
ab4fb9bbfa Add a check for S3 bucket access. 2013-08-20 19:35:30 -07:00
Jérôme Petazzoni
fbd5b20c38 Running the build image will now execute release.sh automatically. 2013-08-20 19:35:30 -07:00
Jérôme Petazzoni
ff30eb96b6 Protect the release.sh script against accidental use. Infer VERSION automatically. 2013-08-20 19:35:30 -07:00
Jérôme Petazzoni
749a7d0e4f Add a check to make sure that make.sh only runs within a container. 2013-08-20 19:35:30 -07:00
Jérôme Petazzoni
d9f769930b Cosmetic changes: rewrapping, `` → $()… before starting the real work 2013-08-20 19:35:30 -07:00
Jérôme Petazzoni
d750060f0c add "|| true" otherwise "set -e" kills us if the repo is clean 2013-08-20 19:35:30 -07:00
Guillaume J. Charmes
bdbac9f7a1 Upgrade Dockerfile with new dependency 2013-08-20 19:35:30 -07:00
Solomon Hykes
13201775de Update release checklist. Still needs work. 2013-08-20 19:34:10 -07:00
Solomon Hykes
ccc3969536 release.sh: publish a full release of docker to a S3 bucket, including static binary and a full APT repository with install instructions 2013-08-20 19:34:10 -07:00
Solomon Hykes
89ee524229 Good-bye, ugly mega-Makefile. Docker can now be built with docker, with the help of a simple very simple shell script. 2013-08-20 19:34:10 -07:00
Solomon Hykes
9fce6f662a docker -v: show version and build information without making remote connections 2013-08-20 19:32:37 -07:00
Solomon Hykes
9087ef9a77 Move VERSION to a dedicated file to facilitate automated builds and releases 2013-08-20 19:32:37 -07:00
Solomon Hykes
aa2ab5143b Deprecate dockerbuilder in favor of a standard Dockerfile 2013-08-20 19:31:30 -07:00
Tyler Brock
2c147dd721 add mongodb image example 2013-08-20 18:08:15 -04:00
Daniel Mizyrycki
ee64e099e0 testing, issue #773: Automatically test pull requests on docker-ci 2013-08-20 12:32:32 -07:00
Daniel Mizyrycki
30726c3785 Improve docker-ci deployment and tests 2013-08-20 12:18:29 -07:00
Victor Vieux
41973d41e9 fix typo 2013-08-20 11:52:37 +00:00
Victor Vieux
f69c465231 rebase docs 2013-08-20 11:42:53 +00:00
Andy Rothfusz
75f4fd978d Fix #1330 and #1149. Improve CMD, ENTRYPOINT, and attach docs. 2013-08-19 19:13:26 -07:00
Kyle Conroy
e9a1246527 Enable mobile view for website.
The documentation currently uses responsive Bootstrap, but didn't
include the correct meta tag for proper display on mobile devices.
2013-08-19 11:54:51 -07:00
Andy Rothfusz
d627ff9697 Merge pull request #1590 from elmendalerenda/patch-3
fixed postgresql conf setting
2013-08-19 10:27:43 -07:00
Michael Crosby
04c16f347b Merge pull request #1396 from calavera/985-ordered-api-images
Sort APIImages by most recent creation date.
2013-08-19 09:41:39 -07:00
Michael Crosby
9c829cb5b4 Merge pull request #1581 from mhennings/workdirsupport-buildfile
Add workdir support for the Buildfile
2013-08-19 09:18:22 -07:00
elmendalerenda
83acd37161 fixed postgresql conf setting
small typo, changed listen_address to listen_addresses
2013-08-19 14:20:25 +01:00
Victor Vieux
b21f898620 assume ip_forwarding = 1 by default 2013-08-19 12:34:30 +00:00
Victor Vieux
646afab28d improve version 2013-08-19 12:07:49 +00:00
Victor Vieux
f6653c3fa5 Merge pull request #1553 from dotcloud/1540_fix_error_message
fix can't connect message with socket
2013-08-19 05:06:21 -07:00
Victor Vieux
18962d0ff3 load authConfig only when needed and fix useless WARNING 2013-08-19 11:42:38 +00:00
Song Gao
b22c973110 Added escape sequence to tutorial 2013-08-18 21:44:46 -05:00
Marco Hennings
319988336c Add workdir support for the Buildfile
For consistency the Buildfile should have the option to
set the working directory.

Of course that is one option more to the buildfile,
so please tell me if we really want this to happen.
2013-08-18 20:30:19 +02:00
Michael Crosby
67c9ce6dd1 Merge pull request #1459 from mhennings/set-working-directory
Add an option to set the working directory
2013-08-18 11:23:34 -07:00
Marco Hennings
687d27ab57 Add an option to set the working directory.
This makes it possible to simply wrap a command inside a container. This makes
it easier to use a container as an unified build environment.

Examples:

~/workspace/docker
$ docker  run  -v `pwd`:`pwd` -w `pwd` -i -t  ubuntu ls
AUTHORS		 Makefile	archive.go	   changes.go	      docker
[...]


docker  run  -v `pwd`:`pwd` -w `pwd` -i -t  ubuntu pwd
/home/marco/workspace/docker
2013-08-18 19:34:01 +02:00
David Calavera
6aff117164 Use flag.StringVar to capture the command line flags. 2013-08-17 22:28:05 -07:00
David Calavera
e69f714219 Fix syscall name. 2013-08-17 22:22:49 -07:00
David Calavera
276d2bbf1d Remove unused imports. 2013-08-17 22:22:11 -07:00
David Calavera
e6affb1b1a Sort images by tag name when the creation date is the same.
This establishes a strict alphabetical order for tags with the same creation date.
2013-08-17 22:11:34 -07:00
Matt Mueller
f409c11916 add to cli 2013-08-17 22:10:06 -07:00
Michael Crosby
3885ee00c5 Merge pull request #1575 from evanphx/tags
Show tag used when image is missing
2013-08-17 22:05:58 -07:00
Matthew Mueller
5325703c27 updated default 2013-08-17 21:54:10 -07:00
David Calavera
45543d012e Simplify term signal handler. 2013-08-17 21:29:37 -07:00
David Calavera
8a18999d23 Add the ISIG syscall back to not kill the client withing a shell with ctrl+c. 2013-08-17 21:08:00 -07:00
Evan Phoenix
07a887032a Show tag used when image is missing 2013-08-17 20:03:54 -07:00
Andy Rothfusz
1843a71911 Merge pull request #1550 from dotcloud/update-dependencies-in-readme
Update readme with dependencies for building
2013-08-16 17:46:25 -07:00
Guillaume J. Charmes
9ce577782c Merge pull request #1572 from dotcloud/1431-disable-TestContainerTop
Tests: testing, issue #1431: Temporarely disable TestContainerTop from the testsuite
2013-08-16 14:49:02 -07:00
Daniel Mizyrycki
422d4afdd5 testing, issue #1431: Temporarely disable TestContainerTop from the testsuite 2013-08-16 14:47:39 -07:00
Andy Rothfusz
09a08e0a9f Merge pull request #1569 from TylerBrock/patch-1
Add instructions for creating and using the docker group
2013-08-16 14:30:00 -07:00
Michael Crosby
5142e83d93 Merge pull request #1473 from shin-/978-opaque-v2
Reworking opaque requests in registry module
2013-08-16 12:24:51 -07:00
shin-
0418702cfc registry: removing opaqueRequest 2013-08-16 19:33:59 +02:00
Tyler Brock
674e5c8503 remove extraneous step and stupid whitespace 2013-08-16 13:30:54 -04:00
Tyler Brock
2ec141da54 Add instructions for creating and using the docker group 2013-08-16 13:19:59 -04:00
Victor Vieux
20b1e19641 add loading message 2013-08-16 13:43:09 +00:00
Andreas Savvides
f11fb706f6 Adding direct reference to contribution guidelines 2013-08-16 12:07:37 +01:00
Michael Crosby
bca19a22c5 Update readme with dependencies for building
Closes #915
2013-08-15 17:26:07 +00:00
Victor Vieux
62b45f0827 fix can't connect message
with socket
2013-08-15 13:48:08 +00:00
Victor Vieux
92a2b635a3 Merge pull request #1551 from dotcloud/hotfix_parallel_pull_display
hot fix display in parallel pull and gofmt
2013-08-15 04:43:26 -07:00
Victor Vieux
d7979ef2d0 hot fix display in parallel pull and go fmt 2013-08-15 11:42:40 +00:00
Michael Crosby
c5d8844d80 Merge pull request #1495 from bdon/master
Fix Graph ByParent() to generate list of child images per parent image.
2013-08-14 20:42:34 -07:00
Brian Olsen
c7cda86e84 Don't read from stdout in hijack unless attached. Fixes #1503 2013-08-15 02:54:06 +02:00
Guillaume J. Charmes
4caa604793 Merge pull request #1549 from dotcloud/fix-logevent-tests
Add imagename to LogEvent tests
2013-08-14 17:02:53 -07:00
Michael Crosby
7f9ba14b18 Add imagename to LogEvent tests 2013-08-14 23:43:43 +00:00
Andy Rothfusz
72660a1a2f Merge pull request #1537 from metalivedev/1517-sudodocker
Fix #1517, #1521 by adding sudo to examples and installation.
2013-08-14 16:34:00 -07:00
Andy Rothfusz
d4eab77f0c Fix #1517, #1521 by adding sudo to examples and installation. 2013-08-14 16:21:36 -07:00
Michael Crosby
9708597b0b Merge pull request #1538 from KSid/bash-completion-limit-containers
Bash Completion: Limit commands to containers of a relevant state
2013-08-14 16:16:25 -07:00
Michael Crosby
15bc2240ac Merge pull request #1505 from dotcloud/improve_events
Add image name in /events
2013-08-14 15:40:36 -07:00
Guillaume J. Charmes
631c449183 Merge pull request #1496 from xdissent/1351-volumes-from-before-volumes
* Runtime: Apply volumes-from before creating volumes
2013-08-14 15:10:41 -07:00
Michael Crosby
84a0274885 Merge pull request #1249 from unclejack/507-add_sigterm_sigint_handling_to_docker_run
#507 - make docker run handle SIGINT/SIGTERM
2013-08-14 15:00:19 -07:00
Guillaume J. Charmes
5ad8840024 Merge pull request #1541 from dotcloud/1528-fix_panic
prevent crash when .dockercfg not readable
2013-08-14 14:51:01 -07:00
Guillaume J. Charmes
8dfc47307d Merge pull request #1543 from dotcloud/fix_rmi_parse_repo_tag
add missing ParseRepositoryTag
2013-08-14 14:42:41 -07:00
shin-
aae04def7b Merge branch 'master' of https://github.com/dotcloud/docker 2013-08-14 23:32:56 +02:00
Daniel Mizyrycki
f51eb0e4b3 Merge pull request #1546 from dotcloud/1542-coverage-dependencies
testing, issue #1542: Add docker dependencies coverage testing into docker-ci
2013-08-14 14:32:15 -07:00
shin-
8b6b187a8d Merge branch 'master' of https://github.com/dotcloud/docker 2013-08-14 23:31:58 +02:00
shin-
8b26e4ea3c brew: docker-py requirement points to git repository 2013-08-14 23:31:18 +02:00
Daniel Mizyrycki
1d8562b290 testing, issue #1542: Add docker dependencies coverage testing into docker-ci 2013-08-14 14:27:46 -07:00
Michael Crosby
9662f9e56a Merge pull request #1478 from jpetazzo/929-insecure-flag
add -privileged flag and relevant tests, docs, and examples
2013-08-14 13:55:18 -07:00
Michael Crosby
25d71fb01b Merge pull request #1509 from dotcloud/1359-tar-pkg-ref
Add import for dotcloud/tar to replace std tar pkg
2013-08-14 11:26:49 -07:00
Joffrey F
12ffb522a6 Merge pull request #1519 from shin-/brew-more
Docker-brew 0.5.2 support and memory footprint reduction
2013-08-14 10:40:05 -07:00
Michael Crosby
0077678844 Merge pull request #1539 from fkautz/https-install-script
Install script should be fetched over https, not http.
2013-08-14 10:32:29 -07:00
Daniel Mizyrycki
53f2c5d6e8 Merge pull request #1545 from dotcloud/1544-docker-ci-dependencies
testing, issue #1544: Add new docker dependencies into docker-ci
2013-08-14 10:23:08 -07:00
Daniel Mizyrycki
49597f0f52 testing, issue #1544: Add new docker dependencies into docker-ci 2013-08-14 10:12:08 -07:00
Victor Vieux
c84d74df8c add missing ParseRepositoryTag 2013-08-14 16:59:21 +00:00
Victor Vieux
3c9f9945c9 prevent crash when .dockercfg not readable 2013-08-14 10:26:18 +00:00
Frederick F. Kautz IV
80ebff0fa4 Install script should be fetched over https, not http. 2013-08-13 22:28:41 -07:00
Joffrey F
62c0f433fa brew: Fixed a bug with remote repository builds 2013-08-14 05:05:44 +02:00
Kawsar Saiyeed
44eb1b3892 Limit commands to containers of a relevant state 2013-08-14 02:45:03 +01:00
Andy Rothfusz
4cb57a5438 Merge pull request #1533 from dhrp/docs-ux-changes
Docs ux changes
2013-08-13 18:03:49 -07:00
Andy Rothfusz
2e5642452b Merge pull request #1523 from dotcloud/docker-group-docs
Update docs for docker group
2013-08-13 18:02:30 -07:00
Michael Crosby
4947e32acb Merged 0.5.3 hotfix release back to master
Conflicts:
	api.go
	commands.go
	network.go
2013-08-13 23:47:29 +00:00
Thatcher Peskens
6c87db97a6 Resolved conflict in conf.py
ps. also changed navigation (swapped community and getting started)
2013-08-13 16:28:24 -07:00
Thatcher Peskens
f127c471a1 Merge remote-tracking branch 'dotcloud/master' into docs-smart-changes
Conflicts:
	docs/sources/conf.py
2013-08-13 16:25:58 -07:00
Jérôme Petazzoni
280901e5fb add -insecure flag and relevant tests 2013-08-13 16:20:22 -07:00
Thatcher Peskens
f14db49346 [docs] Some user-friendly changes to the documentation.
- Added parmalinks (closes #1527)
 - Changed the 'fork us on github' button to 'Edit this page on github', so people can edit quickly (closes #1532)
- Changed the favicon
2013-08-13 16:18:32 -07:00
Michael Crosby
f1cdba2937 Merge pull request #1516 from unclejack/up_hack_dockerfile_go_version_to_1.1.2
use Go 1.1.2 for dockerbuilder
2013-08-13 14:50:12 -07:00
Andy Rothfusz
0794f0b518 Merge pull request #1526 from metalivedev/1522-faqupdate
Added information about Docker's high level tools over LXC.
2013-08-13 13:57:47 -07:00
Andy Rothfusz
e2409ad337 Added information about Docker's high level tools over LXC. Formatting cleanup. Mailing list cleanup. 2013-08-13 13:45:07 -07:00
Guillaume J. Charmes
ca92bc7798 Merge pull request #1501 from KSid/vagrant-dev-dockerfile
Install websocket library before building docker
2013-08-13 12:16:30 -07:00
Michael Crosby
e4f35dd4cf Update docs for docker group 2013-08-13 12:05:27 -07:00
shin-
2cebe09924 brew: Display a clear error message when the path is invalid 2013-08-13 20:28:15 +02:00
shin-
e5f1b6b9a4 brew: Updated requirements 2013-08-13 20:13:39 +02:00
shin-
79fc90b646 brew: Don't build if docker daemon can't be reached 2013-08-13 20:13:39 +02:00
shin-
fb7c4214ce brew: Reuse repositories when possible 2013-08-13 20:13:39 +02:00
Michael Crosby
06a092bdb5 Merge pull request #1510 from dotcloud/bump_0.5.3
Bump to 0.5.3
2013-08-13 10:41:57 -07:00
Guillaume J. Charmes
9cc3d7a18b Merge pull request #1515 from dotcloud/rework_auth_push
* Registry: Improve auth push
2013-08-13 10:15:59 -07:00
unclejack
e09863fedb use Go 1.1.2 for dockerbuilder 2013-08-13 19:48:30 +03:00
Victor Vieux
2ba1300773 remove checkIfLogged 2013-08-13 14:02:49 +00:00
Victor Vieux
6cb908bb82 fix merge issue 2013-08-13 13:35:34 +00:00
Victor Vieux
5ee3c58d25 Add USER instruction 2013-08-13 12:02:17 +00:00
Guillaume J. Charmes
f6760fca88 Merge pull request #1485 from dotcloud/1471-unixsocket-group
* Runtime: API, issue 1471: Use groups for socket permissions
2013-08-12 16:21:53 -07:00
Michael Crosby
ec61c46bf7 Add import for dotcloud/tar to replace std tar pkg 2013-08-12 22:42:29 +00:00
Andy Rothfusz
90cb66f08d Merge pull request #1508 from pborreli/typos
Fixed typos
2013-08-12 15:17:02 -07:00
Daniel Mizyrycki
999a8d7249 API, issue 1471: Allow users belonging to the docker group to use the docker client 2013-08-12 15:16:49 -07:00
Andy Rothfusz
13acf72a3e Merge pull request #1504 from zaiste/docs/postgresql-service
docs/postgresql: PostgreSQL service on Docker example
2013-08-12 14:47:19 -07:00
Solomon Hykes
aa213b48a4 Merge pull request #1488 from KSid/336-bash-completion
* Contrib: bash completion script
2013-08-12 11:50:25 -07:00
Pascal Borreli
9b2a5964fc Fixed typos 2013-08-12 18:53:06 +01:00
Guillaume J. Charmes
1110bb8e98 Merge pull request #1476 from dotcloud/improve_TestKillDifferentUser
* Tests: Improve TestKillDifferentUser to prevent timeout on buildbot
2013-08-12 10:23:08 -07:00
Victor Vieux
168e2f8c49 Merge pull request #1491 from titanous/gitignore-test
gitignore all test files
2013-08-12 09:18:31 -07:00
Michael Crosby
86ef6422f3 Merge pull request #1487 from titanous/maintainer-usernames
Add GitHub usernames to MAINTAINERS
2013-08-12 09:07:10 -07:00
Zaiste!
3af60bf375 fix/docs: ubuntu instead of base, note about root-only 2013-08-12 15:30:52 +02:00
Victor Vieux
123c80467b Added docs 2013-08-12 11:55:23 +00:00
Ken Cochrane
edba1af304 Merge pull request #1494 from KSid/typo-docs-run-command
* Documentation: Fix typo in docs for docker run -dns
2013-08-12 04:51:56 -07:00
Ken Cochrane
875e16c11b Merge pull request #1499 from seldo/master
* Documentation: Adding a reference to ps -a
2013-08-12 04:51:17 -07:00
Victor Vieux
703905d7ec ensure the use oh IDs and add image's name in /events 2013-08-12 11:50:03 +00:00
Zaiste!
d52c149075 docs/postgresql: PostgreSQL service on Docker example 2013-08-12 12:03:43 +02:00
Victor Vieux
3f95d1b9bf Merge pull request #1497 from vincentbernat/fix/ipv4-forwarding-detection
runtime: correctly detect IPv4 forwarding
2013-08-12 02:07:03 -07:00
Kawsar Saiyeed
def9598ed9 Install websocket library before building docker 2013-08-12 05:22:33 +01:00
Laurie Voss
529ee848da Adding a reference to ps -a
It was confusing to me as a first-time user that my docker attach command failed; I was expecting the container to run continuously, and when I couldn't attach to it, I assumed something was wrong. ps -a shows that the container still exists, which gives the user confidence to go to the next step.
2013-08-11 17:27:47 -07:00
Vincent Bernat
64b817a5c1 runtime: correctly detect IPv4 forwarding
When memory cgroup is absent, there was not attempt to detect if IPv4
forwarding was enabled and therefore, docker was printing a warning
for each command spawning a new container. The test for IPv4
forwarding was guarded by the test for memory cgroup.
2013-08-11 11:52:16 +02:00
Brandon Liu
02b8d14bdd Add test case for Graph ByParent(). 2013-08-11 01:24:21 -07:00
Brandon Liu
025c759e44 Fix Graph ByParent() to generate list of child images per parent image. 2013-08-11 00:37:16 -07:00
Michael Crosby
940d58806c Merge pull request #1483 from titanous/update-authors
Update AUTHORS
2013-08-10 21:16:34 -07:00
Kawsar Saiyeed
a2fb870ce3 Fix typo in docs for docker run -dns 2013-08-11 02:04:04 +01:00
Kawsar Saiyeed
e737856a7f Still missed -entrypoint from 'docker run' 2013-08-11 01:29:22 +01:00
Kawsar Saiyeed
ae1909b482 Clarified bash completion limitations 2013-08-11 01:08:47 +01:00
Kawsar Saiyeed
d75282eb14 Missed -entrypoint from 'docker run' options 2013-08-11 00:57:18 +01:00
Daniel Mizyrycki
cd9886f0a8 Merge pull request #1489 from dotcloud/1422-revert-upstart
Revert "docker.upstart: avoid spawning a `sh` process"
2013-08-10 11:07:21 -07:00
Jonathan Rudenberg
a43bae4c0b gitignore all test files 2013-08-10 13:48:24 -04:00
Kawsar Saiyeed
91ae135896 Add description and usage information 2013-08-10 13:05:31 +01:00
Greg Thornton
57b49efc98 Skip existing volumes in volumes-from
Removes the error when a container already has a volume that would otherwise
be created by `Config.VolumesFrom`. Allows restarting containers with a
`Config.VolumesFrom` set.
2013-08-10 06:37:57 +00:00
Greg Thornton
3bd73a9633 Apply volumes-from before creating volumes
Copies the volumes from the container specified in `Config.VolumesFrom` before
creating volumes from `Config.Volumes`. Skips any preexisting volumes when
processing `Config.Volumes`. Fixes #1351
2013-08-10 04:55:23 +00:00
Michael Crosby
e3acbff2ed Revert "docker.upstart: avoid spawning a sh process"
This reverts commit 24dd50490a.
2013-08-10 03:06:08 +00:00
Kawsar Saiyeed
d6e5c2c276 Add initial bash completion script
The script can be used to auto-complete commands, image names and
container ids from within a bash prompt.

This partially resolves #336.
2013-08-10 02:38:11 +01:00
Jonathan Rudenberg
4dc04d7690 Add GitHub usernames to MAINTAINERS 2013-08-09 21:16:44 -04:00
Michael Crosby
3e12349831 Merge pull request #1484 from titanous/use-range
Use ranged for loop on channels
2013-08-09 18:06:12 -07:00
Jonathan Rudenberg
7c50221de5 Use ranged for loop on channels 2013-08-09 20:42:20 -04:00
Michael Crosby
3d63087f78 Merge pull request #1481 from titanous/fix-sprint
Fix typo: fmt.Sprint -> fmt.Sprintf
2013-08-09 17:28:59 -07:00
Jonathan Rudenberg
1408f08c40 Update AUTHORS 2013-08-09 20:09:42 -04:00
Jonathan Rudenberg
3b23f02229 Fix typo: fmt.Sprint -> fmt.Sprintf 2013-08-09 19:52:05 -04:00
Guillaume J. Charmes
fd5099c9fe Merge pull request #1479 from jpetazzo/fix-testbindmounts-typo
- Tests: fix typo in TestBindMounts (runContainer called without image)
2013-08-09 16:20:24 -07:00
Jérôme Petazzoni
68b09cbe3d fix typo in TestBindMounts (runContainer called without image) 2013-08-09 16:03:05 -07:00
Guillaume J. Charmes
92cd2f5bad Merge pull request #1146 from benoitc/feature/attach_ws
* Runtime: add websocket support to /container/<name>/attach/ws
2013-08-09 15:38:24 -07:00
Guillaume J. Charmes
8d1cd63dfa Merge pull request #1460 from dotcloud/patch1
* Runtime: Mount /dev/shm as a tmpfs
2013-08-09 15:18:22 -07:00
Michael Crosby
2c4c10fb4a Merge pull request #1477 from kevinclark/builder-fixme
Only count known instructions as build steps
2013-08-09 14:45:06 -07:00
Kevin Clark
722d4e916a Add myself to AUTHORS 2013-08-09 14:39:03 -07:00
Kevin Clark
4ff649a4ea Only count known instructions as build steps
stepN is only used in the log line, so if we only produce the log line
when there's a message, it should do the right thing.

If it's *not* a valid instruction, it gets a line as well, so there's no
reason to double up.
2013-08-09 14:38:29 -07:00
unclejack
641ddaeb03 add formatting directive to failure to stop container error 2013-08-09 23:27:34 +03:00
unclejack
2ba5c91547 minor cleanup for signal handling 2013-08-09 23:23:27 +03:00
Michael Crosby
25e7227c81 Merge pull request #1462 from dotcloud/fix_build_events_output
Fix docker build and docker events output
2013-08-09 12:41:18 -07:00
Jérôme Petazzoni
04cd0a392b Merge pull request #1463 from jpetazzo/https-get-docker-io
switch from http to https for get.docker.io
2013-08-09 11:26:56 -07:00
Guillaume J. Charmes
db9d68c3e4 Improve TestKillDifferentUser to prevent timeout on buildbot 2013-08-09 10:50:58 -07:00
unclejack
88cb9f3116 keep processing signals after the first one 2013-08-09 20:33:17 +03:00
Guillaume J. Charmes
55f9610cde Merge pull request #1452 from dotcloud/improve_TestGetContainersTop
* Tests: Improve TestGetContainersTop so it does not rely on sleep
2013-08-09 10:28:34 -07:00
shin-
6178dc7f1b brew: added safeguards in script and changed default branch to 'master' 2013-08-09 16:40:28 +02:00
Solomon Hykes
b8f8f9d07e Merged 0.5.2 hotfix release back to master 2013-08-08 19:45:57 -07:00
Michael Crosby
28d38620f0 Merge pull request #1417 from crosbymichael/root-socket
Change daemon to listen on unix socket by default
2013-08-08 17:06:49 -07:00
Jérôme Petazzoni
1ce9b3ca9c switch from http to https 2013-08-08 17:02:59 -07:00
Victor Vieux
213365c2d2 fix docker build and docker events output 2013-08-08 22:51:39 +00:00
Sam Alba
7f02bd3b7a Merge pull request #1361 from dotcloud/library
Docker-brew and Docker standard library
2013-08-08 14:22:20 -07:00
Guillaume J. Charmes
ceb33818cd Improve TestGetContainersTop so it does not rely on sleep 2013-08-08 11:51:31 -07:00
Guillaume J. Charmes
18fc707fdf Make sure all needed mountpoint are present 2013-08-08 11:25:02 -07:00
Michael Crosby
c3027fa9ac Merge pull request #1216 from dotcloud/add_some_tests
Add some tests in server and utils
2013-08-08 09:57:18 -07:00
Victor Vieux
4249867e5b rebase 2013-08-08 14:58:52 +00:00
Victor Vieux
c804a5f827 rebase master 2013-08-08 14:56:37 +00:00
Victor Vieux
be77ee33bc Merge branch 'master' into add_some_tests 2013-08-08 14:44:56 +00:00
Victor Vieux
5928ed5d45 Merge pull request #1456 from dotcloud/1455-force_commit_build_env
Make sure ENV instruction within build perform a commit each time
2013-08-08 07:37:51 -07:00
Karan Lyons
075d30dbce Mount /dev/shm as a tmpfs
Fixes #1122.
2013-08-07 17:44:33 -07:00
Guillaume J. Charmes
6a6a2ad8a4 Make sure ENV instruction within build perform a commit each time 2013-08-07 17:23:49 -07:00
Guillaume J. Charmes
279fe144e1 Merge pull request #1420 from jpetazzo/fix-get-docker-io-upstart-script
* Packaging: Fix the upstart script generated by get.docker.io
2013-08-07 17:13:54 -07:00
Daniel Mizyrycki
cc80bd41c4 Merge pull request #1423 from krautcomputing/fix_indentation_in_vagrantfile
Fix indentation in Vagrantfile
2013-08-07 17:10:40 -07:00
Andy Rothfusz
06183e6cdc Merge pull request #1447 from kermit666/image-tag-doc
doc: syntax to run a specific image tag
2013-08-07 16:23:45 -07:00
Guillaume J. Charmes
6249cc3373 Merge pull request #1425 from dotcloud/simplify_ProgressReader
- Runtime: fix small \n error un docker build
2013-08-07 16:19:42 -07:00
Solomon Hykes
80f34c6aeb Merge pull request #1451 from dotcloud/michael-maintainer
Add Michael Crosby to core maintainers
2013-08-07 15:53:29 -07:00
Guillaume J. Charmes
a2f526dadc Merge pull request #1435 from jpetazzo/userland-proxy-should-listen-on-inaddr-any
* Runtime: Let userland proxy handle container-bound traffic
2013-08-07 15:48:17 -07:00
Guillaume J. Charmes
429d2f85cb Merge pull request #1445 from dsissitka/host
* Runtime: Updated the Docker CLI to specify a value for the "Host" header.
2013-08-07 15:38:50 -07:00
Guillaume J. Charmes
2ca018b2eb Merge pull request #1395 from c00w/490-warn-ipv4forwarding-disabled
* Runtime: Add warning when net.ipv4.ip_forwarding = 0
2013-08-07 15:31:12 -07:00
Guillaume J. Charmes
3e6e08ce00 Merge pull request #1362 from dotcloud/registry_test
* Registry: Registry unit tests + mock registry
2013-08-07 15:30:07 -07:00
Colin Rice
3e491f8698 Fix reversed IPv4Forwarding check in api.go 2013-08-07 18:28:40 -04:00
Colin Rice
ccffa69766 Add Colin Rice to AUTHORS file 2013-08-07 18:28:39 -04:00
Colin Rice
10190be5d7 Add warning when net.ipv4.ip_forwarding = 0
Added warnings to api.go, container.go, commands.go, and runtime.go
Also updated APIInfo to return whether IPv4Forwarding is enabled
2013-08-07 18:28:39 -04:00
Guillaume J. Charmes
65a4e30825 Merge pull request #1093 from monnand/910-login-info
* Runtime: fixed #910. print user name to docker info output
2013-08-07 15:09:55 -07:00
Guillaume J. Charmes
e63960caae Merge pull request #1450 from dotcloud/add-sandbox
- Builder: Forbid certain paths within docker build ADD
2013-08-07 15:04:36 -07:00
benoitc
e2ca600fd8 Merge branch 'feature/attach_ws' into feature/attach_ws2
Conflicts:
	api.go
2013-08-07 23:30:28 +02:00
Solomon Hykes
4860df1689 Add Michael Crosby to core maintainers 2013-08-07 21:24:41 +00:00
Michael Crosby
ced93bcabd Modify test to accept error from mkContainer 2013-08-07 19:07:39 +00:00
Sean P. Kane
0e21de9a25 Assume that if VAGRANT_DEFAULT_PROVIDER is set we shouldn't install vbox tools 2013-08-07 09:38:49 -07:00
Michael Crosby
3104fc8d33 Forbid certain paths within docker build ADD 2013-08-07 16:05:30 +00:00
Victor Vieux
2409df9285 Merge pull request #1434 from jpetazzo/fix-ec2-dns-conflict
change network range to avoid conflict with EC2 DNS
2013-08-07 08:43:53 -07:00
Victor Vieux
2e37be973f Merge pull request #1436 from jpetazzo/fix-loopback-interface-test-index
relax the lo interface test to allow iface index != 1
2013-08-07 08:40:55 -07:00
Dražen Lučanin
6115348dd9 doc: syntax to run a specific image tag 2013-08-07 13:57:31 +02:00
David Sissitka
416d098688 Updated my last commit to use tabs instead of spaces. 2013-08-07 05:35:38 -04:00
David Sissitka
6bbe66d2e6 Updated the Docker CLI to specify a value for the "Host" header. 2013-08-07 05:33:03 -04:00
Andy Rothfusz
3782e34e67 Merge pull request #1430 from metalivedev/1031-linuxheaders
Suggest installing linux-headers by default. Address #1187 and #1031
2013-08-06 18:56:34 -07:00
Jérôme Petazzoni
84790aafd8 relax the lo interface test to allow iface index != 1 2013-08-06 18:31:05 -07:00
Jérôme Petazzoni
fea2d5f2fe Let userland proxy handle container-bound traffic 2013-08-06 17:44:39 -07:00
Jérôme Petazzoni
9f1c9686e0 change network range to avoid conflict with EC2 DNS 2013-08-06 17:24:10 -07:00
Andy Rothfusz
e0a6f27d1b Suggest installing linux-headers by default. Address #1187 and #1031 2013-08-06 13:56:29 -07:00
Andy Rothfusz
9130ee7513 Merge pull request #1428 from dhrp/twitterhandle
changed the twitter handle
2013-08-06 13:38:22 -07:00
shin-
65c8e9242c brew: added support for push on private registries. 2013-08-06 21:08:27 +02:00
Thatcher Peskens
1d654f6156 changed the twitter handle 2013-08-06 11:40:16 -07:00
Victor Vieux
4af24e11a4 Merge pull request #1221 from crosbymichael/cmd-cp
*Client: Add docker cp command and copy api endpoint to copy container files/folders to the host
2013-08-06 09:15:39 -07:00
Michael Crosby
583f5868c9 Move copy command docs to api 1.4 document 2013-08-06 16:09:54 +00:00
Michael Crosby
d94b186080 Strip leading forward slash from resource 2013-08-06 16:09:54 +00:00
Michael Crosby
5b8cfbe15c Add cp command and copy api endpoint
The cp command and copy api endpoint allows users
to copy files and or folders from a containers filesystem.

Closes #382
2013-08-06 16:09:54 +00:00
Victor Vieux
0dbc51f4d2 Merge pull request #1394 from crosbymichael/1391-json-requests
Use mime pkg to parse Content-Type
2013-08-06 08:59:10 -07:00
Michael Crosby
754ed9043d Use mime types to parse Content-Type 2013-08-06 15:57:13 +00:00
Victor Vieux
ba17f4a06a fix small \n error un docker build 2013-08-06 14:31:51 +00:00
Manuel Meurer
b9149f45bf Fix indentation in Vagrantfile 2013-08-06 15:21:26 +02:00
Victor Vieux
b6c4b325a4 Merge pull request #1406 from dotcloud/1363-reduce_timeout-fix
Reduce connect and read timeout when pinging the registry (fixes issue #1363)
2013-08-06 04:22:44 -07:00
Nan Monnand Deng
965de6ef50 fixing #910 2013-08-05 23:37:53 -04:00
Nan Monnand Deng
303490168f Added index address into APIInfo. 2013-08-05 23:36:55 -04:00
Michael Crosby
c7c2399be9 Merge pull request #1421 from dotcloud/fix_makefile
Make sure all sources have the wanted revision
2013-08-05 20:25:32 -07:00
Guillaume J. Charmes
120a520a22 Make sure all sources have the wanted revision 2013-08-05 19:58:48 -07:00
Andy Rothfusz
7c03bd1e7a Merge branch 'docs-example-fix' of git://github.com/faizkhan00/docker
merges #1402
2013-08-05 18:21:19 -07:00
Jérôme Petazzoni
049d28868e fix the upstart script generated by get.docker.io (it was not starting dockerd on boot) 2013-08-05 18:11:13 -07:00
Michael Crosby
8934f13615 Change daemon to listen on unix socket by default 2013-08-06 00:12:56 +00:00
Guillaume J. Charmes
dcf9dfb129 Update utils_test.go 2013-08-05 16:32:25 -07:00
Andy Rothfusz
7c9604e32b Merge pull request #1387 from joevandyk/patch-1
Update amazon.rst to explain that Vagrant is not necessary for running Docker on ec2
2013-08-05 16:14:57 -07:00
Andy Rothfusz
b302ae329c Merge pull request #1418 from dhrp/remote_api_doc_improvements
Fixed some typo's and formatting issues in remote api documentation.
2013-08-05 16:13:55 -07:00
Thatcher Peskens
ff6b6f2ce1 Fixed some typo's and formatting issues in remote api documentation. 2013-08-05 15:55:40 -07:00
Thatcher
d49f141fb3 Merge pull request #1303 from dhrp/update-spinx-for-man
Enabled the docs to generate manpages.
2013-08-05 15:31:51 -07:00
Guillaume J. Charmes
590fc58de7 Update version. 2013-08-05 14:49:37 -07:00
Guillaume J. Charmes
c03561eea8 Update CHANGELOG.md 2013-08-05 14:32:54 -07:00
Nan Monnand Deng
4179f25286 fixed #910. print user name to docker info output 2013-08-05 17:25:29 -04:00
Guillaume J. Charmes
e54e8fa920 Merge pull request #1290 from dotcloud/parallel_pull
* Runtime: Parallel pull
2013-08-05 14:17:29 -07:00
Guillaume J. Charmes
2f1c05d997 Merge pull request #1374 from dotcloud/steeve-patch-1
- Runtime: Handle ip route showing mask-less IP addresses
2013-08-05 14:13:20 -07:00
Andy Rothfusz
baa4618e57 Merge pull request #1390 from grobie/clarify-amazon-documentation
Clarify Amazon EC2 installation type
2013-08-05 13:26:28 -07:00
Andy Rothfusz
dcc1e3562f Merge pull request #1404 from dnordberg/fix-base-refs
'Base' image is depreciated and should no longer be referenced in the docs.
2013-08-05 13:24:05 -07:00
Guillaume J. Charmes
f6fa353dd8 Merge pull request #1267 from sridatta/new-clean-init
* Runtime: Fix to "Inject dockerinit at /.dockerinit"
2013-08-05 13:23:22 -07:00
Andy Rothfusz
d4fa619ed1 Merge pull request #1411 from andrewmacgregor/doc-typos
Minor typos found while reading docs
2013-08-05 13:22:53 -07:00
shin-
8aa9985ad0 Adapted tests to latest registry changes 2013-08-05 20:28:05 +02:00
shin-
2c85b964e3 Cleanup 2013-08-05 19:07:23 +02:00
shin-
9159c819c3 Mock access logs don't show up in non-debug mode 2013-08-05 19:06:00 +02:00
shin-
484ba4a8c5 gofmt 2013-08-05 19:06:00 +02:00
shin-
97b7b173b9 New registry unit tests remade from scratch, using the mock registry 2013-08-05 19:06:00 +02:00
shin-
29f69211c9 Mock registry: Fixed a bug where the index validation path would return a 200 status code instead of the expected 204 2013-08-05 19:06:00 +02:00
shin-
553ce165c1 registry: Fixed a bug where token and cookie info wouldn't be sent when using LookupRemoteImage(). Fixed a bug where no error would be reported when getting a non-200 status code in GetRemoteImageLayer() 2013-08-05 19:05:14 +02:00
Sam Alba
310ddec823 Disabled test server in the tests 2013-08-05 19:02:57 +02:00
Sam Alba
6926ba558f Mocked registry: Added X-Docker-Size when fetching the layer 2013-08-05 19:02:57 +02:00
Sam Alba
97d1d6f5d2 Fixed mocked registry 2013-08-05 19:02:57 +02:00
Sam Alba
5f7abd5347 Implemented a Mocked version of the Registry server 2013-08-05 19:02:57 +02:00
Victor Vieux
946bbee39a rebase master 2013-08-05 16:25:42 +00:00
Victor Vieux
bdc0e8f825 Merge pull request #1405 from jonasi/entrypoint-noargs
*Runtime: Allow ENTRYPOINT without CMD
2013-08-05 09:00:39 -07:00
Victor Vieux
1b08ab92d1 Merge pull request #1408 from dotcloud/1407-localhost_is_a_domain-fix
Always consider localhost as a domain name when parsing the FQN repos name
2013-08-05 08:50:12 -07:00
Victor Vieux
feda3db1dd Merge pull request #1382 from monnand/650-http-utils
650 http utils and user agent field
2013-08-05 08:49:12 -07:00
Andrew Macgregor
ce97a71adf Minor typos found while reading docs 2013-08-05 22:47:16 +08:00
Isao Jonas
d00fb40967 added tests for 1405 2013-08-05 09:30:27 -05:00
Isao Jonas
0f249c85ea fix entrypoint without cmd 2013-08-05 09:07:03 -05:00
Ken Cochrane
a37b42b57c Merge pull request #1400 from gorsuch/doc-typo
* Documentation: fix a typo in the ubuntu installation guide
2013-08-05 07:05:27 -07:00
Victor Vieux
dd8c59892c Merge pull request #1182 from dotcloud/change_build_usage
change tag -> repository name (and optionally a tag) in build usage
2013-08-05 04:08:33 -07:00
Victor Vieux
a97cf23355 add docs 2013-08-05 11:07:27 +00:00
Victor Vieux
030cc8d5cc Merge pull request #1389 from dotcloud/1373-improve_checklocaldns
Consider empty /etc/resolv.conf as local dns + add unit test
2013-08-05 02:29:36 -07:00
Sam Alba
c22f2617ad Always consider localhost as a domain name when parsing the FQN repos name 2013-08-04 17:59:12 -07:00
Sam Alba
c860945be2 Reduce connect and read timeout when pinging the registry (fixes issue #1363) 2013-08-04 17:42:24 -07:00
Daniel Nordberg
51d0c9238b 'Base' is depreciated and should no longer be referenced in the docs.
https://groups.google.com/forum/\#!topic/docker-club/pEjqMgcrnqA
2013-08-05 01:34:32 +03:00
Faiz K
22df1249b5 bash commands while in the container aren't in the transcript! Added. 2013-08-04 08:26:56 -05:00
David Calavera
bdaa87ff21 Print a new line after getting the password from stdin. 2013-08-03 21:30:07 -07:00
Michael Gorsuch
db0ccaac9b typo: s/connexions/connections 2013-08-03 22:11:59 -05:00
David Calavera
4089a20cf4 Exit if there is any error reading from stdin. 2013-08-03 17:27:15 -07:00
David Calavera
75ac50a9a0 Stop making a raw terminal to ask for registry login credentials.
It only disables echo asking for the password and lets the terminal to handle everything else.
It fixes #1392 since blank spaces are not discarded as they did before.
It also cleans the login code a little bit to improve readability.
2013-08-03 16:43:20 -07:00
David Calavera
58e0c68132 Merge branch 'master' into login_signal
* master: (54 commits)
  Return JSONError for HTTPResponse error
  Fix TestEnv
  Revert "Bind daemon to 0.0.0.0 in Vagrant. Fixes #1304"
  Add unit tests for build no cache
  Add no cache for docker build
  Move note about officially supported kernel
  Solved the logo being squished in Safari
  Add hostname to the container environment.
  fix same issue in api.go
  improve tests
  Return registy status code in error
  update http://get.docker.io/latest
  Add check that the request is good
  fix tests about refactor checksums
  add ufw doc
  Fixed a couple of minor syntax errors.
  Updated the description of run -d
  Make sure the index also receives the checksums
  Switch json/payload order
  Remove unused parameter
  ...
2013-08-03 15:43:43 -07:00
David Calavera
cd6aeaf979 Sort APIImages by most recent creation date.
Fixes #985.
2013-08-03 15:35:36 -07:00
Tobias Schmidt
708cd34586 Clarify Amazon EC2 installation type
Make clear this documentation is about installing docker on EC2 with the
help of vagrant, which doesn't make it easy to start multiple instances,
instead of plain vanilla EC2 installation.
2013-08-03 17:31:20 +07:00
Guillaume J. Charmes
4dcc0f316c Merge pull request #1298 from crosbymichael/1246-auth-request
* Registry: Do not require login unless 401 is received on push
2013-08-02 17:39:54 -07:00
Michael Crosby
dae585c6e4 Return JSONError for HTTPResponse error 2013-08-03 00:27:58 +00:00
Andy Rothfusz
b1d994e3b9 Merge pull request #1375 from grobie/patch-1
Move note about officially supported kernel
2013-08-02 17:24:15 -07:00
Guillaume J. Charmes
dde8f74cea Fix TestEnv 2013-08-02 15:58:10 -07:00
Daniel Mizyrycki
9e3d18e606 Merge pull request #1388 from titanous/revert-vagrant-bind
Revert "Bind daemon to 0.0.0.0 in Vagrant. Fixes #1304"
2013-08-02 15:26:05 -07:00
Guillaume J. Charmes
3e9575e275 Consider empty /etc/resolv.conf as local dns + add unit test 2013-08-02 15:23:36 -07:00
Jonathan Rudenberg
07fee44559 Revert "Bind daemon to 0.0.0.0 in Vagrant. Fixes #1304"
This reverts commit bdc79ac8b2.
2013-08-02 19:18:02 -03:00
Joe Van Dyk
b6bff0cbb1 Update amazon.rst to explain that Vagrant is not necessary for running Docker on ec2 2013-08-02 15:10:57 -07:00
Guillaume J. Charmes
ead7eb619e Merge pull request #1384 from crosbymichael/1326-build-without-cache
* Builder: Add no cache for docker build
2013-08-02 14:38:34 -07:00
Guillaume J. Charmes
29de2432ea Merge pull request #1350 from ndarilek/1348-add-hostname-to-environment
Runtime: add hostname to environment
2013-08-02 13:58:43 -07:00
Guillaume J. Charmes
ffcba1236c Merge pull request #1117 from dotcloud/add_last_version-feature
Add last stable version in `docker version`
2013-08-02 13:53:33 -07:00
Guillaume J. Charmes
0f088d28c5 Merge pull request #1336 from dotcloud/fix_ADD_permissions
Builder: Make sure ADD will create everything in 0755
2013-08-02 13:52:19 -07:00
Daniel Mizyrycki
16917275ee Merge pull request #1346 from dotcloud/1117-update_latest_in_dockerbuilder
update http://get.docker.io/latest
2013-08-02 13:51:23 -07:00
Andy Rothfusz
09ab2bfa1d Merge pull request #1343 from dotcloud/ufw_doc
Add ufw doc
2013-08-02 13:33:26 -07:00
Michael Crosby
b9f0695924 Add unit tests for build no cache 2013-08-02 19:12:38 +00:00
Nan Monnand Deng
7bade49d4c update auth_test.go 2013-08-02 14:08:16 -04:00
Michael Crosby
3a123bc479 Add no cache for docker build
Add a new flag to disable the image cache when building images.
2013-08-02 16:18:54 +00:00
Nan Monnand Deng
5bc344ab73 factory generated from one place. 2013-08-02 04:10:26 -04:00
Nan Monnand Deng
4bd287e107 auth with user agent 2013-08-02 03:30:45 -04:00
Nan Monnand Deng
6a56b7b391 Server now use request factory 2013-08-02 03:23:46 -04:00
Nan Monnand Deng
7dac26ce69 reqFactory in Registry 2013-08-02 03:08:08 -04:00
Nan Monnand Deng
793fd983ef http utils 2013-08-02 02:47:58 -04:00
Tobias Schmidt
2424480e2c Move note about officially supported kernel
It seems this a general note about kernel issues and not specific to Cgroups or namespaces.
2013-08-02 12:24:38 +07:00
Guillaume J. Charmes
f5a8e90d10 Make sure the routes IP are taken into consideration + add unit test for network overlap detection 2013-08-01 18:12:39 -07:00
Daniel Mizyrycki
2e7df5182c testing, issue #1331: Add registry functional test to docker-ci 2013-08-01 17:48:17 -07:00
Daniel Mizyrycki
ea2486d631 Merge pull request #1333 from dotcloud/1331-testing-registry
testing, issue #1331: Add registry functional test to docker-ci
2013-08-01 16:00:29 -07:00
Steeve Morin
2e72882216 Handle ip route showing mask-less IP addresses
Sometimes `ip route` will show mask-less IPs, so net.ParseCIDR will fail. If it does we check if we can net.ParseIP, and fail only if we can't.
Fixes #1214
Fixes #362
2013-08-01 02:42:22 +02:00
Thatcher
d1e1a8e78c Merge pull request #1365 from dhrp/solve-logo-squish
Solved the logo being squished in Safari
2013-07-31 15:06:26 -07:00
Thatcher
ad3b091d53 Some more improvements on the docs readme. Removed references to website. 2013-07-31 13:59:56 -07:00
Thatcher Peskens
26229d78f2 Updated docs README with instructions to preview the generated manfile, and where to get the one generated by sphinx. 2013-07-31 13:44:10 -07:00
Thatcher Peskens
e0c24ccfc3 Solved the logo being squished in Safari 2013-07-31 12:17:42 -07:00
Victor Vieux
108635582f rebase master 2013-07-31 15:32:08 +00:00
Victor Vieux
0c0077ed6f Merge pull request #1328 from dotcloud/1307_url_port_delete-fix
Use utils.ParseRepositoryTag instead of strings.Split(name, ":") in server.ImageDelete
2013-07-31 07:55:06 -07:00
Nolan
9a604acc23 Add hostname to the container environment. 2013-07-31 09:50:53 -05:00
Victor Vieux
cd9f7f29d1 Merge pull request #1334 from dotcloud/1314-compat_broke-fix
Discard error when loading old container format
2013-07-31 01:08:08 -07:00
Victor Vieux
a7068510a5 fix same issue in api.go 2013-07-31 08:01:20 +00:00
Victor Vieux
73c6d9f135 improve tests 2013-07-31 07:56:53 +00:00
Michael Crosby
3043c26419 Return registy status code in error
Added Details map to the JSONMessage
2013-07-30 23:24:31 +00:00
Victor Vieux
e66e0289ab update http://get.docker.io/latest 2013-07-30 17:18:19 +00:00
Victor Vieux
6166380d76 rebase master 2013-07-30 16:51:50 +00:00
Victor Vieux
e4752c8c1a Add check that the request is good 2013-07-30 16:42:32 +00:00
Victor Vieux
99c27fa0dd Merge branch 'master' into add_last_version-feature 2013-07-30 16:23:06 +00:00
Victor Vieux
d5a57a4b5e Merge pull request #1344 from dotcloud/refactor_checksum_tests
fix tests about refactor checksums
2013-07-30 06:13:49 -07:00
Victor Vieux
b14c251862 fix tests about refactor checksums 2013-07-30 13:13:18 +00:00
Victor Vieux
bcd6ca3685 Merge pull request #1268 from dotcloud/refactor_checksum
Refactor checksum
2013-07-30 06:07:54 -07:00
Victor Vieux
46f59dd933 add parallel pull to 1.4 2013-07-30 12:15:33 +00:00
Victor Vieux
e1fa989ec9 rebase master 2013-07-30 11:59:31 +00:00
Victor Vieux
7d0b8c726c add ufw doc 2013-07-30 13:47:29 +02:00
Guillaume J. Charmes
5b27652ac6 Make sure the index also receives the checksums 2013-07-29 11:30:21 -07:00
Guillaume J. Charmes
394941b6b0 Switch json/payload order 2013-07-29 11:30:17 -07:00
Guillaume J. Charmes
0f134b4bf8 Remove unused parameter 2013-07-29 11:30:17 -07:00
Guillaume J. Charmes
0badda9f15 Refactor the image size storage 2013-07-29 11:30:17 -07:00
Guillaume J. Charmes
e3f68b22d8 Handle extra-paremeter within checksum calculations 2013-07-29 11:30:17 -07:00
Guillaume J. Charmes
8ca7b0646e Refactor checksum 2013-07-29 11:30:17 -07:00
Guillaume J. Charmes
f7542664e3 Make sure ADD will create everything in 0755 2013-07-29 11:03:09 -07:00
Daniel Mizyrycki
17ffb0ac84 testing, issue #1331: Add registry functional test to docker-ci 2013-07-29 09:45:19 -07:00
Victor Vieux
b2aa877bf0 fix #1314 discard error when loading old container format 2013-07-29 16:40:35 +00:00
Victor Vieux
bb241c10e2 add regression tests 2013-07-29 12:16:14 +00:00
Victor Vieux
3852d05990 add ParseRepositoryTag tests 2013-07-29 12:16:01 +00:00
Victor Vieux
63876e7dbd use ParseRepositoryTag instead on split on : in imagedelete 2013-07-29 12:15:27 +00:00
David Calavera
bb06fe8dd9 Allow to generate signals when termios is in raw mode. 2013-07-27 09:14:38 -07:00
David Calavera
7cc90f2bc5 Use a more idiomatic syntax to capture the exit. 2013-07-26 18:12:05 -07:00
David Calavera
01ce312c2d Exit from docker login on SIGTERM and SIGINT.
Fixes #1299.
2013-07-26 17:40:45 -07:00
Thatcher Peskens
f4b63d9eea Enabled the docs to generate manpages.
* changed conf.py to reference toctree.rst instead of index
* Added note to README to upgrade your sphinx to the latest version to prevent a bug with .. note:: blocks.
2013-07-25 17:19:58 -07:00
shin-
12d575a6b1 Script cleans up downloaded repos, uses quiet build 2013-07-25 21:00:36 +02:00
Victor Vieux
01e98bf0dd fix errors 2013-07-25 14:32:46 +00:00
Victor Vieux
f1dd299227 Use VT100 escape codes
:
2013-07-25 14:16:36 +00:00
shin-
94053b4225 Brew: Added cache prefilling and build summary 2013-07-24 23:48:16 +02:00
shin-
77ff537697 Brew: Fixed docker-py requirement 2013-07-24 23:48:16 +02:00
shin-
362f1735e6 Brew: Avoid duplicate commands, added --debug option, added local repo support 2013-07-24 23:48:16 +02:00
shin-
7813f2a25e Updated git repos for precise and raring 2013-07-24 23:48:16 +02:00
shin-
3781a2cc4b Added definition file for busybox and updated ubuntu 2013-07-24 23:48:16 +02:00
shin-
d47df21a33 Add brew script to the contrib folder 2013-07-24 23:48:16 +02:00
Joffrey F
0ac672fea6 Use full hash references in library/
Brew doesn't currently support abridged hashes
2013-07-24 23:48:16 +02:00
Joffrey F
c19fa83a8a Use extended syntax (indicate what type of object needs to be checked out) 2013-07-24 23:48:16 +02:00
Solomon Hykes
844a9ab85e Define tags in the library files instead of upstream 2013-07-24 23:48:16 +02:00
Solomon Hykes
a45490243b Adding Joffrey as library maintainer 2013-07-24 23:48:16 +02:00
Solomon Hykes
b06f627139 Library: hipache and ubuntu base 2013-07-24 23:48:16 +02:00
Victor Vieux
8742649aa7 improve client output 2013-07-24 17:10:59 +00:00
Victor Vieux
0e71e368a8 Add ID to JSONMessage in pull
Use goroutines to pull in parallel
If multiple images pulled at the same time, each progress is displayed on a new line
2013-07-24 15:41:34 +00:00
Victor Vieux
066873ebd2 rebase master 2013-07-24 14:38:40 +00:00
Sridatta Thatipamala
945033f1cc change permissions of initLayer to be readable by non-root users 2013-07-22 14:55:07 -07:00
unclejack
df86cb9a5c make docker run handle SIGINT/SIGTERM 2013-07-20 13:47:13 +03:00
Victor Vieux
0afed3eded handle -dev 2013-07-18 20:56:41 +00:00
Victor Vieux
39ff542142 Merge branch 'master' into add_last_version-feature 2013-07-18 20:51:31 +00:00
Solomon Hykes
5d8efc107d + Runtime: inject dockerinit at /.dockerinit instead of overwriting /sbin/init. This makes it possible to run /sbin/init inside a container. 2013-07-17 17:13:34 -07:00
Victor Vieux
1a226f0e28 add VolumesFrom to MergeConfig, and test 2013-07-17 21:06:46 +00:00
Victor Vieux
7c00201222 add Volumes and VolumesFrom to CompareConfig 2013-07-17 20:51:25 +00:00
Victor Vieux
2db99441c8 prevent any kind of operation simultaneously 2013-07-17 20:39:36 +00:00
Victor Vieux
48a892bee5 Add CompareConfig test 2013-07-16 15:58:23 +00:00
Victor Vieux
fb005a3da8 add server.ContainerTop, server.poolAdd and ser.poolRemove tests 2013-07-16 14:38:18 +00:00
benoitc
d639f61ec1 reuse the type 2013-07-13 19:19:38 +02:00
benoitc
a3b1a9f01a useless function. forgot to remove it. 2013-07-13 17:04:04 +02:00
benoitc
507cef8bce useless type 2013-07-13 17:03:04 +02:00
benoitc
166eba3e28 put the websocket route in the map containing all routes
Instead of handling the websocket differently just handle it as a normal
route and upgrade it to a websocket.
2013-07-13 17:00:40 +02:00
Victor Vieux
e9011122fb use http://get.docker.io/latest 2013-07-12 11:45:40 +00:00
Victor Vieux
fc3a8e409d change tag -> repo name in build usage 2013-07-10 22:44:31 +00:00
benoitc
8eeff01939 add websocket support to /container/<name>/attach/ws
This function add the possibility to attach containers streams to a
websocket. When a websocket is asked the request is upgraded to this
protocol..
2013-07-06 02:05:02 +02:00
Victor Vieux
64450ae3f8 add last version 2013-07-03 17:11:00 +00:00
608 changed files with 102797 additions and 17917 deletions

9
.gitignore vendored
View File

@@ -5,10 +5,7 @@ docker/docker
a.out
*.orig
build_src
command-line-arguments.test
.flymake*
docker.test
auth/auth.test
.idea
.DS_Store
docs/_build
@@ -16,3 +13,9 @@ docs/_static
docs/_templates
.gopath/
.dotcloud
*.test
bundles/
.hg/
.git/
vendor/pkg/
pyenv

View File

@@ -1,4 +1,4 @@
# Generate AUTHORS: git log --all --format='%aN <%aE>' | sort -uf | grep -v vagrant-ubuntu-12
# Generate AUTHORS: git log --format='%aN <%aE>' | sort -uf | grep -v vagrant-ubuntu-12
<charles.hooper@dotcloud.com> <chooper@plumata.com>
<daniel.mizyrycki@dotcloud.com> <daniel@dotcloud.com>
<daniel.mizyrycki@dotcloud.com> <mzdaniel@glidelink.net>
@@ -25,3 +25,16 @@ Walter Stanish <walter@pratyeka.org>
Roberto Hashioka <roberto_hashioka@hotmail.com>
Konstantin Pelykh <kpelykh@zettaset.com>
David Sissitka <me@dsissitka.com>
Nolan Darilek <nolan@thewordnerd.info>
<mastahyeti@gmail.com> <mastahyeti@users.noreply.github.com>
Benoit Chesneau <bchesneau@gmail.com>
Jordan Arentsen <blissdev@gmail.com>
Daniel Garcia <daniel@danielgarcia.info>
Miguel Angel Fernández <elmendalerenda@gmail.com>
Bhiraj Butala <abhiraj.butala@gmail.com>
Faiz Khan <faizkhan00@gmail.com>
Victor Lyuboslavsky <victor@victoreda.com>
Jean-Baptiste Barth <jeanbaptiste.barth@gmail.com>
Matthew Mueller <mattmuelle@gmail.com>
<mosoni@ebay.com> <mohitsoni1989@gmail.com>
Shih-Yuan Lee <fourdollars@gmail.com>

84
AUTHORS
View File

@@ -5,87 +5,151 @@
#
Al Tobey <al@ooyala.com>
Alex Gaynor <alex.gaynor@gmail.com>
Alexander Larsson <alexl@redhat.com>
Alexey Shamrin <shamrin@gmail.com>
Andrea Luzzardi <aluzzardi@gmail.com>
Andreas Savvides <andreas@editd.com>
Andreas Tiefenthaler <at@an-ti.eu>
Andrew Macgregor <andrew.macgregor@agworld.com.au>
Andrew Munsell <andrew@wizardapps.net>
Andrews Medina <andrewsmedina@gmail.com>
Andy Rothfusz <github@metaliveblog.com>
Andy Smith <github@anarkystic.com>
Anthony Bishopric <git@anthonybishopric.com>
Antony Messerli <amesserl@rackspace.com>
Asbjørn Enge <asbjorn@hanafjedle.net>
Barry Allard <barry.allard@gmail.com>
Ben Toews <mastahyeti@gmail.com>
Benoit Chesneau <bchesneau@gmail.com>
Bhiraj Butala <abhiraj.butala@gmail.com>
Bouke Haarsma <bouke@webatoom.nl>
Brandon Liu <bdon@bdon.org>
Brandon Philips <brandon@ifup.co>
Brian McCallister <brianm@skife.org>
Brian Olsen <brian@maven-group.org>
Brian Shumate <brian@couchbase.com>
Briehan Lombaard <briehan.lombaard@gmail.com>
Bruno Bigras <bigras.bruno@gmail.com>
Caleb Spare <cespare@gmail.com>
Calen Pennington <cale@edx.org>
Charles Hooper <charles.hooper@dotcloud.com>
Christopher Currie <codemonkey+github@gmail.com>
Colin Dunklau <colin.dunklau@gmail.com>
Colin Rice <colin@daedrum.net>
Dan Buch <d.buch@modcloth.com>
Daniel Garcia <daniel@danielgarcia.info>
Daniel Gasienica <daniel@gasienica.ch>
Daniel Mizyrycki <daniel.mizyrycki@dotcloud.com>
Daniel Nordberg <dnordberg@gmail.com>
Daniel Robinson <gottagetmac@gmail.com>
Daniel Von Fange <daniel@leancoder.com>
Daniel YC Lin <dlin.tw@gmail.com>
Darren Coxall <darren@darrencoxall.com>
David Calavera <david.calavera@gmail.com>
David Sissitka <me@dsissitka.com>
Deni Bertovic <deni@kset.org>
Dominik Honnef <dominik@honnef.co>
Don Spaulding <donspauldingii@gmail.com>
Dr Nic Williams <drnicwilliams@gmail.com>
Dražen Lučanin <kermit666@gmail.com>
Elias Probst <mail@eliasprobst.eu>
Emily Rose <emily@contactvibe.com>
Eric Hanchrow <ehanchrow@ine.com>
Eric Myhre <hash@exultant.us>
Erno Hopearuoho <erno.hopearuoho@gmail.com>
Evan Phoenix <evan@fallingsnow.net>
Evan Wies <evan@neomantra.net>
ezbercih <cem.ezberci@gmail.com>
Fabrizio Regini <freegenie@gmail.com>
Faiz Khan <faizkhan00@gmail.com>
Fareed Dudhia <fareeddudhia@googlemail.com>
Flavio Castelli <fcastelli@suse.com>
Francisco Souza <f@souza.cc>
Frederick F. Kautz IV <fkautz@alumni.cmu.edu>
Gabriel Monroy <gabriel@opdemand.com>
Gareth Rushgrove <gareth@morethanseven.net>
Greg Thornton <xdissent@me.com>
Guillaume J. Charmes <guillaume.charmes@dotcloud.com>
Gurjeet Singh <gurjeet@singh.im>
Guruprasad <lgp171188@gmail.com>
Harley Laue <losinggeneration@gmail.com>
Hector Castro <hectcastro@gmail.com>
Hunter Blanks <hunter@twilio.com>
Isao Jonas <isao.jonas@gmail.com>
James Carr <james.r.carr@gmail.com>
James Turnbull <james@lovedthanlost.net>
Jason McVetta <jason.mcvetta@gmail.com>
Jean-Baptiste Barth <jeanbaptiste.barth@gmail.com>
Jeff Lindsay <progrium@gmail.com>
Jeremy Grosser <jeremy@synack.me>
Jim Alateras <jima@comware.com.au>
Jimmy Cuadra <jimmy@jimmycuadra.com>
Joe Van Dyk <joe@tanga.com>
Joffrey F <joffrey@dotcloud.com>
Johan Euphrosine <proppy@google.com>
John Costa <john.costa@gmail.com>
Jon Wedaman <jweede@gmail.com>
Jonas Pfenniger <jonas@pfenniger.name>
Jonathan Mueller <j.mueller@apoveda.ch>
Jonathan Rudenberg <jonathan@titanous.com>
Joost Cassee <joost@cassee.net>
Jordan Arentsen <blissdev@gmail.com>
Joseph Anthony Pasquale Holsten <joseph@josephholsten.com>
Josh Poimboeuf <jpoimboe@redhat.com>
Julien Barbier <write0@gmail.com>
Jérôme Petazzoni <jerome.petazzoni@dotcloud.com>
Karan Lyons <karan@karanlyons.com>
Karl Grzeszczak <karl@karlgrz.com>
Kawsar Saiyeed <kawsar.saiyeed@projiris.com>
Keli Hu <dev@keli.hu>
Ken Cochrane <kencochrane@gmail.com>
Kevin Clark <kevin.clark@gmail.com>
Kevin J. Lynagh <kevin@keminglabs.com>
kim0 <email.ahmedkamal@googlemail.com>
Kimbro Staken <kstaken@kstaken.com>
Kiran Gangadharan <kiran.daredevil@gmail.com>
Konstantin Pelykh <kpelykh@zettaset.com>
Kyle Conroy <kyle.j.conroy@gmail.com>
Laurie Voss <github@seldo.com>
Louis Opter <kalessin@kalessin.fr>
Manuel Meurer <manuel@krautcomputing.com>
Marco Hennings <marco.hennings@freiheit.com>
Marcus Farkas <toothlessgear@finitebox.com>
Marcus Ramberg <marcus@nordaaker.com>
Mark McGranaghan <mmcgrana@gmail.com>
Marko Mikulicic <mmikulicic@gmail.com>
Markus Fix <lispmeister@gmail.com>
Martin Redmond <martin@tinychat.com>
Matt Apperson <me@mattapperson.com>
Mathieu Le Marec - Pasquet <kiorky@cryptelium.net>
Matt Bachmann <bachmann.matt@gmail.com>
Matthew Mueller <mattmuelle@gmail.com>
Maxim Treskin <zerthurd@gmail.com>
meejah <meejah@meejah.ca>
Michael Crosby <crosby.michael@gmail.com>
Michael Gorsuch <gorsuch@github.com>
Miguel Angel Fernández <elmendalerenda@gmail.com>
Mike Gaffney <mike@uberu.com>
Mikhail Sobolev <mss@mawhrin.net>
Mohit Soni <mosoni@ebay.com>
Morten Siebuhr <sbhr@sbhr.dk>
Nan Monnand Deng <monnand@gmail.com>
Nate Jones <nate@endot.org>
Nelson Chen <crazysim@gmail.com>
Niall O'Higgins <niallo@unworkable.org>
Nick Payne <nick@kurai.co.uk>
Nick Stenning <nick.stenning@digital.cabinet-office.gov.uk>
Nick Stinemates <nick@stinemates.org>
Nolan Darilek <nolan@thewordnerd.info>
odk- <github@odkurzacz.org>
Pascal Borreli <pascal@borreli.com>
Paul Bowsher <pbowsher@globalpersonals.co.uk>
Paul Hammond <paul@paulhammond.org>
Paul Nasrat <pnasrat@gmail.com>
Phil Spitler <pspitler@gmail.com>
Piotr Bogdan <ppbogdan@gmail.com>
pysqz <randomq@126.com>
Ramon van Alteren <ramon@vanalteren.nl>
Renato Riccieri Santos Zannon <renato.riccieri@gmail.com>
Rhys Hiltner <rhys@twitch.tv>
Robert Obryk <robryk@gmail.com>
@@ -93,21 +157,41 @@ Roberto Hashioka <roberto_hashioka@hotmail.com>
Ryan Fowler <rwfowler@gmail.com>
Sam Alba <sam.alba@gmail.com>
Sam J Sharpe <sam.sharpe@digital.cabinet-office.gov.uk>
Scott Bessler <scottbessler@gmail.com>
Sean P. Kane <skane@newrelic.com>
Shawn Siefkas <shawn.siefkas@meredith.com>
Shih-Yuan Lee <fourdollars@gmail.com>
Silas Sewell <silas@sewell.org>
Solomon Hykes <solomon@dotcloud.com>
Song Gao <song@gao.io>
Sridatta Thatipamala <sthatipamala@gmail.com>
Sridhar Ratnakumar <sridharr@activestate.com>
Steeve Morin <steeve.morin@gmail.com>
Stefan Praszalowicz <stefan@greplin.com>
Sven Dowideit <SvenDowideit@home.org.au>
Thatcher Peskens <thatcher@dotcloud.com>
Thermionix <bond711@gmail.com>
Thijs Terlouw <thijsterlouw@gmail.com>
Thomas Bikeev <thomas.bikeev@mac.com>
Thomas Frössman <thomasf@jossystem.se>
Thomas Hansen <thomas.hansen@gmail.com>
Tianon Gravi <admwiggin@gmail.com>
Tim Terhorst <mynamewastaken+git@gmail.com>
Tobias Bieniek <Tobias.Bieniek@gmx.de>
Tobias Schmidt <ts@soundcloud.com>
Tobias Schwab <tobias.schwab@dynport.de>
Tom Hulihan <hulihan.tom159@gmail.com>
Tommaso Visconti <tommaso.visconti@gmail.com>
Tyler Brock <tyler.brock@gmail.com>
unclejack <unclejacksons@gmail.com>
Victor Coisne <victor.coisne@dotcloud.com>
Victor Lyuboslavsky <victor@victoreda.com>
Victor Vieux <victor.vieux@dotcloud.com>
Vincent Bernat <bernat@luffy.cx>
Vivek Agarwal <me@vivek.im>
Vladimir Kirillov <proger@wilab.org.ua>
Walter Stanish <walter@pratyeka.org>
Wes Morgan <cap10morgan@gmail.com>
Will Dietz <w@wdtz.org>
Yang Bai <hamo.by@gmail.com>
Zaiste! <oh@zaiste.net>

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,14 @@
# Contributing to Docker
Want to hack on Docker? Awesome! Here are instructions to get you started. They are probably not perfect, please let us know if anything feels
wrong or incomplete.
Want to hack on Docker? Awesome! Here are instructions to get you
started. They are probably not perfect, please let us know if anything
feels wrong or incomplete.
## Build Environment
For instructions on setting up your development environment, please
see our dedicated [dev environment setup
docs](http://docs.docker.io/en/latest/contributing/devenvironment/).
## Contribution guidelines
@@ -23,7 +30,7 @@ that feature *on top of* docker.
### Discuss your design on the mailing list
We recommend discussing your plans [on the mailing
list](https://groups.google.com/forum/?fromgroups#!forum/docker-club)
list](https://groups.google.com/forum/?fromgroups#!forum/docker-dev)
before starting to code - especially for more ambitious contributions.
This gives other contributors a chance to point you in the right
direction, give feedback on your design, and maybe point out if someone
@@ -55,8 +62,10 @@ Submit unit tests for your changes. Go has a great test framework built in; use
it! Take a look at existing tests for inspiration. Run the full test suite on
your branch before submitting a pull request.
Make sure you include relevant updates or additions to documentation when
creating or modifying features.
Update the documentation when creating or modifying features. Test
your documentation changes for clarity, concision, and correctness, as
well as a clean docmuent build. See ``docs/README.md`` for more
information on building the docs and how docs get released.
Write clean code. Universally formatted code promotes ease of writing, reading,
and maintenance. Always run `go fmt` before committing your changes. Most
@@ -89,53 +98,17 @@ name and email address match your git configuration. The AUTHORS file is
regenerated occasionally from the git commit history, so a mismatch may result
in your changes being overwritten.
### Approval
## Decision process
Docker maintainers use LGTM (looks good to me) in comments on the code review
to indicate acceptance.
### How are decisions made?
A change requires LGTMs from an absolute majority of the maintainers of each
component affected. For example, if a change affects docs/ and registry/, it
needs an absolute majority from the maintainers of docs/ AND, separately, an
absolute majority of the maintainers of registry
Short answer: with pull requests to the docker repository.
Docker is an open-source project with an open design philosophy. This means that the repository is the source of truth for EVERY aspect of the project,
including its philosophy, design, roadmap and APIs. *If it's part of the project, it's in the repo. It's in the repo, it's part of the project.*
As a result, all decisions can be expressed as changes to the repository. An implementation change is a change to the source code. An API change is a change to
the API specification. A philosophy change is a change to the philosophy manifesto. And so on.
All decisions affecting docker, big and small, follow the same 3 steps:
* Step 1: Open a pull request. Anyone can do this.
* Step 2: Discuss the pull request. Anyone can do this.
* Step 3: Accept or refuse a pull request. The relevant maintainer does this (see below "Who decides what?")
### Who decides what?
So all decisions are pull requests, and the relevant maintainer makes the decision by accepting or refusing the pull request.
But how do we identify the relevant maintainer for a given pull request?
Docker follows the timeless, highly efficient and totally unfair system known as [Benevolent dictator for life](http://en.wikipedia.org/wiki/Benevolent_Dictator_for_Life),
with yours truly, Solomon Hykes, in the role of BDFL.
This means that all decisions are made by default by me. Since making every decision myself would be highly unscalable, in practice decisions are spread across multiple maintainers.
The relevant maintainer for a pull request is assigned in 3 steps:
* Step 1: Determine the subdirectory affected by the pull request. This might be src/registry, docs/source/api, or any other part of the repo.
* Step 2: Find the MAINTAINERS file which affects this directory. If the directory itself does not have a MAINTAINERS file, work your way up the the repo hierarchy until you find one.
* Step 3: The first maintainer listed is the primary maintainer. The pull request is assigned to him. He may assign it to other listed maintainers, at his discretion.
### I'm a maintainer, should I make pull requests too?
Primary maintainers are not required to create pull requests when changing their own subdirectory, but secondary maintainers are.
### Who assigns maintainers?
Solomon.
For more details see [MAINTAINERS.md](hack/MAINTAINERS.md)
### How can I become a maintainer?
@@ -146,15 +119,3 @@ Solomon.
Don't forget: being a maintainer is a time investment. Make sure you will have time to make yourself available.
You don't have to be a maintainer to make a difference on the project!
### What are a maintainer's responsibility?
It is every maintainer's responsibility to:
* 1) Expose a clear roadmap for improving their component.
* 2) Deliver prompt feedback and decisions on pull requests.
* 3) Be available to anyone with questions, bug reports, criticism etc. on their component. This includes irc, github requests and the mailing list.
* 4) Make sure their component respects the philosophy, design and roadmap of the project.
### How is this process changed?
Just like everything else: by making a pull request :)

View File

@@ -1,30 +1,66 @@
# This file describes the standard way to build Docker, using docker
docker-version 0.4.2
#
# Usage:
#
# # Assemble the full dev environment. This is slow the first time.
# docker build -t docker .
#
# # Mount your source in an interactive container for quick testing:
# docker run -v `pwd`:/go/src/github.com/dotcloud/docker -privileged -i -t docker bash
#
# # Run the test suite:
# docker run -privileged docker hack/make.sh test
#
# # Publish a release:
# docker run -privileged \
# -e AWS_S3_BUCKET=baz \
# -e AWS_ACCESS_KEY=foo \
# -e AWS_SECRET_KEY=bar \
# -e GPG_PASSPHRASE=gloubiboulga \
# docker hack/release.sh
#
# Note: Apparmor used to mess with privileged mode, but this is no longer
# the case. Therefore, you don't have to disable it anymore.
#
docker-version 0.6.1
from ubuntu:12.04
maintainer Solomon Hykes <solomon@dotcloud.com>
# Build dependencies
run apt-get install -y -q curl
run apt-get install -y -q git
# Install Go
run curl -s https://go.googlecode.com/files/go1.1.1.linux-amd64.tar.gz | tar -v -C /usr/local -xz
env PATH /usr/local/go/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin
env GOPATH /go
env CGO_ENABLED 0
run cd /tmp && echo 'package main' > t.go && go test -a -i -v
# Download dependencies
run PKG=github.com/kr/pty REV=27435c699; git clone http://$PKG /go/src/$PKG && cd /go/src/$PKG && git checkout -f $REV
run PKG=github.com/gorilla/context/ REV=708054d61e5; git clone http://$PKG /go/src/$PKG && cd /go/src/$PKG && git checkout -f $REV
run PKG=github.com/gorilla/mux/ REV=9b36453141c; git clone http://$PKG /go/src/$PKG && cd /go/src/$PKG && git checkout -f $REV
# Run dependencies
run apt-get install -y iptables
# lxc requires updating ubuntu sources
run echo 'deb http://archive.ubuntu.com/ubuntu precise main universe' > /etc/apt/sources.list
run apt-get update
run apt-get install -y lxc
run apt-get install -y aufs-tools
run apt-get install -y -q curl
run apt-get install -y -q git
run apt-get install -y -q mercurial
run apt-get install -y -q build-essential libsqlite3-dev
# Install Go
run curl -s https://go.googlecode.com/files/go1.2rc5.src.tar.gz | tar -v -C /usr/local -xz
env PATH /usr/local/go/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin
env GOPATH /go:/go/src/github.com/dotcloud/docker/vendor
run cd /usr/local/go/src && ./make.bash && go install -ldflags '-w -linkmode external -extldflags "-static -Wl,--unresolved-symbols=ignore-in-shared-libs"' -tags netgo -a std
# Ubuntu stuff
run apt-get install -y -q ruby1.9.3 rubygems libffi-dev
run gem install --no-rdoc --no-ri fpm
run apt-get install -y -q reprepro dpkg-sig
run apt-get install -y -q python-pip
run pip install s3cmd==1.1.0-beta3
run pip install python-magic==0.4.6
run /bin/echo -e '[default]\naccess_key=$AWS_ACCESS_KEY\nsecret_key=$AWS_SECRET_KEY\n' > /.s3cfg
# Runtime dependencies
run apt-get install -y -q iptables
run apt-get install -y -q lxc
run apt-get install -y -q aufs-tools
volume /var/lib/docker
workdir /go/src/github.com/dotcloud/docker
# Wrap all commands in the "docker-in-docker" script to allow nested containers
entrypoint ["hack/dind"]
# Upload docker source
add . /go/src/github.com/dotcloud/docker
# Build the binary
run cd /go/src/github.com/dotcloud/docker/docker && go install -ldflags "-X main.GITCOMMIT '??' -d -w"
env PATH /usr/local/go/bin:/go/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin
cmd ["docker"]

14
FIXME
View File

@@ -15,22 +15,16 @@ to put them - so we put them here :)
* Run linter on codebase
* Unify build commands and regular commands
* Move source code into src/ subdir for clarity
* Clean up the Makefile, it's a mess
* docker build: on non-existent local path for ADD, don't show full absolute path on the host
* mount into /dockerinit rather than /sbin/init
* docker tag foo REPO:TAG
* use size header for progress bar in pull
* Clean up context upload in build!!!
* Parallel pull
* Ensure /proc/sys/net/ipv4/ip_forward is 1
* Force DNS to public!
* Always generate a resolv.conf per container, to avoid changing resolv.conf under thne container's feet
* Save metadata with import/export
* Save metadata with import/export (#1974)
* Upgrade dockerd without stopping containers
* bring back git revision info, looks like it was lost
* Simple command to remove all untagged images
* Simple command to remove all untagged images (`docker rmi $(docker images | awk '/^<none>/ { print $3 }')`)
* Simple command to clean up containers for disk space
* Caching after an ADD
* entry point config
* bring back git revision info, looks like it was lost
* Caching after an ADD (#880)
* Clean up the ProgressReader api, it's a PITA to use
* Use netlink instead of iproute2/iptables (#925)

View File

@@ -1,5 +1,6 @@
Solomon Hykes <solomon@dotcloud.com>
Guillaume Charmes <guillaume@dotcloud.com>
Victor Vieux <victor@dotcloud.com>
api.go: Victor Vieux <victor@dotcloud.com>
Vagrantfile: Daniel Mizyrycki <daniel@dotcloud.com>
Solomon Hykes <solomon@dotcloud.com> (@shykes)
Guillaume Charmes <guillaume@dotcloud.com> (@creack)
Victor Vieux <victor@dotcloud.com> (@vieux)
Michael Crosby <michael@crosbymichael.com> (@crosbymichael)
api.go: Victor Vieux <victor@dotcloud.com> (@vieux)
Vagrantfile: Daniel Mizyrycki <daniel@dotcloud.com> (@mzdaniel)

View File

@@ -1,95 +0,0 @@
DOCKER_PACKAGE := github.com/dotcloud/docker
RELEASE_VERSION := $(shell git tag | grep -E "v[0-9\.]+$$" | sort -nr | head -n 1)
SRCRELEASE := docker-$(RELEASE_VERSION)
BINRELEASE := docker-$(RELEASE_VERSION).tgz
BUILD_SRC := build_src
BUILD_PATH := ${BUILD_SRC}/src/${DOCKER_PACKAGE}
GIT_ROOT := $(shell git rev-parse --show-toplevel)
BUILD_DIR := $(CURDIR)/.gopath
GOPATH ?= $(BUILD_DIR)
export GOPATH
GO_OPTIONS ?= -a -ldflags='-w -d'
ifeq ($(VERBOSE), 1)
GO_OPTIONS += -v
endif
GIT_COMMIT = $(shell git rev-parse --short HEAD)
GIT_STATUS = $(shell test -n "`git status --porcelain`" && echo "+CHANGES")
BUILD_OPTIONS = -a -ldflags "-X main.GITCOMMIT $(GIT_COMMIT)$(GIT_STATUS) -d -w"
SRC_DIR := $(GOPATH)/src
DOCKER_DIR := $(SRC_DIR)/$(DOCKER_PACKAGE)
DOCKER_MAIN := $(DOCKER_DIR)/docker
DOCKER_BIN_RELATIVE := bin/docker
DOCKER_BIN := $(CURDIR)/$(DOCKER_BIN_RELATIVE)
.PHONY: all clean test hack release srcrelease $(BINRELEASE) $(SRCRELEASE) $(DOCKER_BIN) $(DOCKER_DIR)
all: $(DOCKER_BIN)
$(DOCKER_BIN): $(DOCKER_DIR)
@mkdir -p $(dir $@)
@(cd $(DOCKER_MAIN); CGO_ENABLED=0 go build $(GO_OPTIONS) $(BUILD_OPTIONS) -o $@)
@echo $(DOCKER_BIN_RELATIVE) is created.
$(DOCKER_DIR):
@mkdir -p $(dir $@)
@if [ -h $@ ]; then rm -f $@; fi; ln -sf $(CURDIR)/ $@
@(cd $(DOCKER_MAIN); go get -d $(GO_OPTIONS))
whichrelease:
echo $(RELEASE_VERSION)
release: $(BINRELEASE)
s3cmd -P put $(BINRELEASE) s3://get.docker.io/builds/`uname -s`/`uname -m`/docker-$(RELEASE_VERSION).tgz
s3cmd -P put docker-latest.tgz s3://get.docker.io/builds/`uname -s`/`uname -m`/docker-latest.tgz
s3cmd -P put $(SRCRELEASE)/bin/docker s3://get.docker.io/builds/`uname -s`/`uname -m`/docker
srcrelease: $(SRCRELEASE)
deps: $(DOCKER_DIR)
# A clean checkout of $RELEASE_VERSION, with vendored dependencies
$(SRCRELEASE):
rm -fr $(SRCRELEASE)
git clone $(GIT_ROOT) $(SRCRELEASE)
cd $(SRCRELEASE); git checkout -q $(RELEASE_VERSION)
# A binary release ready to be uploaded to a mirror
$(BINRELEASE): $(SRCRELEASE)
rm -f $(BINRELEASE)
cd $(SRCRELEASE); make; cp -R bin docker-$(RELEASE_VERSION); tar -f ../$(BINRELEASE) -zv -c docker-$(RELEASE_VERSION)
cd $(SRCRELEASE); cp -R bin docker-latest; tar -f ../docker-latest.tgz -zv -c docker-latest
clean:
@rm -rf $(dir $(DOCKER_BIN))
ifeq ($(GOPATH), $(BUILD_DIR))
@rm -rf $(BUILD_DIR)
else ifneq ($(DOCKER_DIR), $(realpath $(DOCKER_DIR)))
@rm -f $(DOCKER_DIR)
endif
test:
# Copy docker source and dependencies for testing
rm -rf ${BUILD_SRC}; mkdir -p ${BUILD_PATH}
tar --exclude=${BUILD_SRC} -cz . | tar -xz -C ${BUILD_PATH}
GOPATH=${CURDIR}/${BUILD_SRC} go get -d
# Do the test
sudo -E GOPATH=${CURDIR}/${BUILD_SRC} CGO_ENABLED=0 go test ${GO_OPTIONS}
testall: all
@(cd $(DOCKER_DIR); CGO_ENABLED=0 sudo -E go test ./... $(GO_OPTIONS))
fmt:
@gofmt -s -l -w .
hack:
cd $(CURDIR)/hack && vagrant up
ssh-dev:
cd $(CURDIR)/hack && vagrant ssh

22
NOTICE
View File

@@ -1,11 +1,19 @@
Docker
Copyright 2012-2013 dotCloud, inc.
Copyright 2012-2013 Docker, Inc.
This product includes software developed at dotCloud, inc. (http://www.dotcloud.com).
This product includes software developed at Docker, Inc. (http://www.docker.com).
This product contains software (https://github.com/kr/pty) developed by Keith Rarick, licensed under the MIT License.
This product contains software (https://github.com/kr/pty) developed
by Keith Rarick, licensed under the MIT License.
Transfers of Docker shall be in accordance with applicable export controls of any country and all other applicable
legal requirements. Docker shall not be distributed or downloaded to or in Cuba, Iran, North Korea, Sudan or Syria
and shall not be distributed or downloaded to any person on the Denied Persons List administered by the U.S.
Department of Commerce.
The following is courtesy of our legal counsel:
Use and transfer of Docker may be subject to certain restrictions by the
United States and other governments.
It is your responsibility to ensure that your use and/or transfer does not
violate applicable laws.
For more information, please see http://www.bis.doc.gov
See also http://www.apache.org/dev/crypto.html and/or seek legal counsel.

296
README.md
View File

@@ -1,8 +1,8 @@
Docker: the Linux container engine
==================================
Docker is an open-source engine which automates the deployment of
applications as highly portable, self-sufficient containers.
Docker is an open source project to pack, ship and run any application
as a lightweight container
Docker containers are both *hardware-agnostic* and
*platform-agnostic*. This means that they can run anywhere, from your
@@ -18,7 +18,7 @@ Platform-as-a-Service. It benefits directly from the experience
accumulated over several years of large-scale operation and support of
hundreds of thousands of applications and databases.
![Docker L](docs/sources/concepts/images/dockerlogo-h.png "Docker")
![Docker L](docs/theme/docker/static/img/dockerlogo-h.png "Docker")
## Better than VMs
@@ -140,144 +140,25 @@ Note that Docker doesn't care *how* dependencies are built - as long
as they can be built by running a Unix command in a container.
Install instructions
==================
Getting started
===============
Quick install on Ubuntu 12.04 and 12.10
---------------------------------------
Docker can be installed on your local machine as well as servers - both bare metal and virtualized.
It is available as a binary on most modern Linux systems, or as a VM on Windows, Mac and other systems.
```bash
curl get.docker.io | sudo sh -x
```
We also offer an interactive tutorial for quickly learning the basics of using Docker.
Binary installs
----------------
Docker supports the following binary installation methods. Note that
some methods are community contributions and not yet officially
supported.
For up-to-date install instructions and online tutorials, see the [Getting Started page](http://www.docker.io/gettingstarted/).
* [Ubuntu 12.04 and 12.10 (officially supported)](http://docs.docker.io/en/latest/installation/ubuntulinux/)
* [Arch Linux](http://docs.docker.io/en/latest/installation/archlinux/)
* [Mac OS X (with Vagrant)](http://docs.docker.io/en/latest/installation/vagrant/)
* [Windows (with Vagrant)](http://docs.docker.io/en/latest/installation/windows/)
* [Amazon EC2 (with Vagrant)](http://docs.docker.io/en/latest/installation/amazon/)
Installing from source
----------------------
1. Make sure you have a [Go language](http://golang.org/doc/install)
compiler >= 1.1 and [git](http://git-scm.com) installed.
2. Checkout the source code
```bash
git clone http://github.com/dotcloud/docker
```
3. Build the ``docker`` binary
```bash
cd docker
make VERBOSE=1
sudo cp ./bin/docker /usr/local/bin/docker
```
Usage examples
==============
First run the ``docker`` daemon
-------------------------------
Docker can be used to run short-lived commands, long-running daemons (app servers, databases etc.),
interactive shell sessions, etc.
All the examples assume your machine is running the ``docker``
daemon. To run the ``docker`` daemon in the background, simply type:
```bash
# On a production system you want this running in an init script
sudo docker -d &
```
Now you can run ``docker`` in client mode: all commands will be
forwarded to the ``docker`` daemon, so the client can run from any
account.
```bash
# Now you can run docker commands from any account.
docker help
```
Throwaway shell in a base Ubuntu image
--------------------------------------
```bash
docker pull ubuntu:12.10
# Run an interactive shell, allocate a tty, attach stdin and stdout
# To detach the tty without exiting the shell, use the escape sequence Ctrl-p + Ctrl-q
docker run -i -t ubuntu:12.10 /bin/bash
```
Starting a long-running worker process
--------------------------------------
```bash
# Start a very useful long-running process
JOB=$(docker run -d ubuntu /bin/sh -c "while true; do echo Hello world; sleep 1; done")
# Collect the output of the job so far
docker logs $JOB
# Kill the job
docker kill $JOB
```
Running an irc bouncer
----------------------
```bash
BOUNCER_ID=$(docker run -d -p 6667 -u irc shykes/znc zncrun $USER $PASSWORD)
echo "Configure your irc client to connect to port $(docker port $BOUNCER_ID 6667) of this machine"
```
Running Redis
-------------
```bash
REDIS_ID=$(docker run -d -p 6379 shykes/redis redis-server)
echo "Configure your redis client to connect to port $(docker port $REDIS_ID 6379) of this machine"
```
Share your own image!
---------------------
```bash
CONTAINER=$(docker run -d ubuntu:12.10 apt-get install -y curl)
docker commit -m "Installed curl" $CONTAINER $USER/betterbase
docker push $USER/betterbase
```
A list of publicly available images is [available
here](https://github.com/dotcloud/docker/wiki/Public-docker-images).
Expose a service on a TCP port
------------------------------
```bash
# Expose port 4444 of this container, and tell netcat to listen on it
JOB=$(docker run -d -p 4444 base /bin/nc -l -p 4444)
# Which public port is NATed to my container?
PORT=$(docker port $JOB 4444)
# Connect to the public port via the host's public address
# Please note that because of how routing works connecting to localhost or 127.0.0.1 $PORT will not work.
# Replace *eth0* according to your local interface name.
IP=$(ip -o -4 addr list eth0 | perl -n -e 'if (m{inet\s([\d\.]+)\/\d+\s}xms) { print $1 }')
echo hello world | nc $IP $PORT
# Verify that the network connection worked
echo "Daemon received: $(docker logs $JOB)"
```
You can find a [list of real-world examples](http://docs.docker.io/en/latest/examples/) in the documentation.
Under the hood
--------------
@@ -301,155 +182,20 @@ Contributing to Docker
======================
Want to hack on Docker? Awesome! There are instructions to get you
started on the website:
http://docs.docker.io/en/latest/contributing/contributing/
started [here](CONTRIBUTING.md).
They are probably not perfect, please let us know if anything feels
wrong or incomplete.
Note
----
We also keep the documentation in this repository. The website
documentation is generated using Sphinx using these sources. Please
find it under docs/sources/ and read more about it
https://github.com/dotcloud/docker/tree/master/docs/README.md
Please feel free to fix / update the documentation and send us pull
requests. More tutorials are also welcome.
Setting up a dev environment
----------------------------
Instructions that have been verified to work on Ubuntu 12.10,
```bash
sudo apt-get -y install lxc curl xz-utils golang git
export GOPATH=~/go/
export PATH=$GOPATH/bin:$PATH
mkdir -p $GOPATH/src/github.com/dotcloud
cd $GOPATH/src/github.com/dotcloud
git clone https://github.com/dotcloud/docker.git
cd docker
go get -v github.com/dotcloud/docker/...
go install -v github.com/dotcloud/docker/...
```
Then run the docker daemon,
```bash
sudo $GOPATH/bin/docker -d
```
Run the `go install` command (above) to recompile docker.
What is a Standard Container?
=============================
Docker defines a unit of software delivery called a Standard
Container. The goal of a Standard Container is to encapsulate a
software component and all its dependencies in a format that is
self-describing and portable, so that any compliant runtime can run it
without extra dependencies, regardless of the underlying machine and
the contents of the container.
The spec for Standard Containers is currently a work in progress, but
it is very straightforward. It mostly defines 1) an image format, 2) a
set of standard operations, and 3) an execution environment.
A great analogy for this is the shipping container. Just like how
Standard Containers are a fundamental unit of software delivery,
shipping containers are a fundamental unit of physical delivery.
### 1. STANDARD OPERATIONS
Just like shipping containers, Standard Containers define a set of
STANDARD OPERATIONS. Shipping containers can be lifted, stacked,
locked, loaded, unloaded and labelled. Similarly, Standard Containers
can be started, stopped, copied, snapshotted, downloaded, uploaded and
tagged.
### 2. CONTENT-AGNOSTIC
Just like shipping containers, Standard Containers are
CONTENT-AGNOSTIC: all standard operations have the same effect
regardless of the contents. A shipping container will be stacked in
exactly the same way whether it contains Vietnamese powder coffee or
spare Maserati parts. Similarly, Standard Containers are started or
uploaded in the same way whether they contain a postgres database, a
php application with its dependencies and application server, or Java
build artifacts.
### 3. INFRASTRUCTURE-AGNOSTIC
Both types of containers are INFRASTRUCTURE-AGNOSTIC: they can be
transported to thousands of facilities around the world, and
manipulated by a wide variety of equipment. A shipping container can
be packed in a factory in Ukraine, transported by truck to the nearest
routing center, stacked onto a train, loaded into a German boat by an
Australian-built crane, stored in a warehouse at a US facility,
etc. Similarly, a standard container can be bundled on my laptop,
uploaded to S3, downloaded, run and snapshotted by a build server at
Equinix in Virginia, uploaded to 10 staging servers in a home-made
Openstack cluster, then sent to 30 production instances across 3 EC2
regions.
### 4. DESIGNED FOR AUTOMATION
Because they offer the same standard operations regardless of content
and infrastructure, Standard Containers, just like their physical
counterparts, are extremely well-suited for automation. In fact, you
could say automation is their secret weapon.
Many things that once required time-consuming and error-prone human
effort can now be programmed. Before shipping containers, a bag of
powder coffee was hauled, dragged, dropped, rolled and stacked by 10
different people in 10 different locations by the time it reached its
destination. 1 out of 50 disappeared. 1 out of 20 was damaged. The
process was slow, inefficient and cost a fortune - and was entirely
different depending on the facility and the type of goods.
Similarly, before Standard Containers, by the time a software
component ran in production, it had been individually built,
configured, bundled, documented, patched, vendored, templated, tweaked
and instrumented by 10 different people on 10 different
computers. Builds failed, libraries conflicted, mirrors crashed,
post-it notes were lost, logs were misplaced, cluster updates were
half-broken. The process was slow, inefficient and cost a fortune -
and was entirely different depending on the language and
infrastructure provider.
### 5. INDUSTRIAL-GRADE DELIVERY
There are 17 million shipping containers in existence, packed with
every physical good imaginable. Every single one of them can be loaded
onto the same boats, by the same cranes, in the same facilities, and
sent anywhere in the World with incredible efficiency. It is
embarrassing to think that a 30 ton shipment of coffee can safely
travel half-way across the World in *less time* than it takes a
software team to deliver its code from one datacenter to another
sitting 10 miles away.
With Standard Containers we can put an end to that embarrassment, by
making INDUSTRIAL-GRADE DELIVERY of software a reality.
### Legal
Transfers of Docker shall be in accordance with applicable export
controls of any country and all other applicable legal requirements.
Docker shall not be distributed or downloaded to or in Cuba, Iran,
North Korea, Sudan or Syria and shall not be distributed or downloaded
to any person on the Denied Persons List administered by the U.S.
Department of Commerce.
*Brought to you courtesy of our legal counsel. For more context,
please see the Notice document.*
Use and transfer of Docker may be subject to certain restrictions by the
United States and other governments.
It is your responsibility to ensure that your use and/or transfer does not
violate applicable laws.
For more information, please see http://www.bis.doc.gov

1
VERSION Normal file
View File

@@ -0,0 +1 @@
0.6.7

189
Vagrantfile vendored
View File

@@ -4,65 +4,135 @@
BOX_NAME = ENV['BOX_NAME'] || "ubuntu"
BOX_URI = ENV['BOX_URI'] || "http://files.vagrantup.com/precise64.box"
VF_BOX_URI = ENV['BOX_URI'] || "http://files.vagrantup.com/precise64_vmware_fusion.box"
AWS_BOX_URI = ENV['BOX_URI'] || "https://github.com/mitchellh/vagrant-aws/raw/master/dummy.box"
AWS_REGION = ENV['AWS_REGION'] || "us-east-1"
AWS_AMI = ENV['AWS_AMI'] || "ami-d0f89fb9"
AWS_AMI = ENV['AWS_AMI'] || "ami-69f5a900"
AWS_INSTANCE_TYPE = ENV['AWS_INSTANCE_TYPE'] || 't1.micro'
FORWARD_DOCKER_PORTS = ENV['FORWARD_DOCKER_PORTS']
SSH_PRIVKEY_PATH = ENV["SSH_PRIVKEY_PATH"]
# A script to upgrade from the 12.04 kernel to the raring backport kernel (3.8)
# and install docker.
$script = <<SCRIPT
# The username to add to the docker group will be passed as the first argument
# to the script. If nothing is passed, default to "vagrant".
user="$1"
if [ -z "$user" ]; then
user=vagrant
fi
# Adding an apt gpg key is idempotent.
wget -q -O - https://get.docker.io/gpg | apt-key add -
# Creating the docker.list file is idempotent, but it may overrite desired
# settings if it already exists. This could be solved with md5sum but it
# doesn't seem worth it.
echo 'deb http://get.docker.io/ubuntu docker main' > \
/etc/apt/sources.list.d/docker.list
# Update remote package metadata. 'apt-get update' is idempotent.
apt-get update -q
# Install docker. 'apt-get install' is idempotent.
apt-get install -q -y lxc-docker
usermod -a -G docker "$user"
tmp=`mktemp -q` && {
# Only install the backport kernel, don't bother upgrade if the backport is
# already installed. We want parse the output of apt so we need to save it
# with 'tee'. NOTE: The installation of the kernel will trigger dkms to
# install vboxguest if needed.
apt-get install -q -y --no-upgrade linux-image-generic-lts-raring | \
tee "$tmp"
# Parse the number of installed packages from the output
NUM_INST=`awk '$2 == "upgraded," && $4 == "newly" { print $3 }' "$tmp"`
rm "$tmp"
}
# If the number of installed packages is greater than 0, we want to reboot (the
# backport kernel was installed but is not running).
if [ "$NUM_INST" -gt 0 ];
then
echo "Rebooting down to activate new kernel."
echo "/vagrant will not be mounted. Use 'vagrant halt' followed by"
echo "'vagrant up' to ensure /vagrant is mounted."
shutdown -r now
fi
SCRIPT
# We need to install the virtualbox guest additions *before* we do the normal
# docker installation. As such this script is prepended to the common docker
# install script above. This allows the install of the backport kernel to
# trigger dkms to build the virtualbox guest module install.
$vbox_script = <<VBOX_SCRIPT + $script
# Install the VirtualBox guest additions if they aren't already installed.
if [ ! -d /opt/VBoxGuestAdditions-4.3.2/ ]; then
# Update remote package metadata. 'apt-get update' is idempotent.
apt-get update -q
# Kernel Headers and dkms are required to build the vbox guest kernel
# modules.
apt-get install -q -y linux-headers-generic-lts-raring dkms
echo 'Downloading VBox Guest Additions...'
wget -cq http://dlc.sun.com.edgesuite.net/virtualbox/4.3.2/VBoxGuestAdditions_4.3.2.iso
mount -o loop,ro /home/vagrant/VBoxGuestAdditions_4.3.2.iso /mnt
/mnt/VBoxLinuxAdditions.run --nox11
umount /mnt
fi
VBOX_SCRIPT
Vagrant::Config.run do |config|
# Setup virtual machine box. This VM configuration code is always executed.
config.vm.box = BOX_NAME
config.vm.box_url = BOX_URI
config.vm.forward_port 4243, 4243
# Provision docker and new kernel if deployment was not done
if Dir.glob("#{File.dirname(__FILE__)}/.vagrant/machines/default/*/id").empty?
# Add lxc-docker package
pkg_cmd = "apt-get update -qq; apt-get install -q -y python-software-properties; " \
"add-apt-repository -y ppa:dotcloud/lxc-docker; apt-get update -qq; " \
"apt-get install -q -y lxc-docker; "
# Listen on all interfaces so that the daemon is accessible from the host
pkg_cmd << "sed -i -E 's| /usr/bin/docker -d| /usr/bin/docker -d -H 0.0.0.0|' /etc/init/docker.conf;"
# Add X.org Ubuntu backported 3.8 kernel
pkg_cmd << "add-apt-repository -y ppa:ubuntu-x-swat/r-lts-backport; " \
"apt-get update -qq; apt-get install -q -y linux-image-3.8.0-19-generic; "
# Add guest additions if local vbox VM
is_vbox = true
ARGV.each do |arg| is_vbox &&= !arg.downcase.start_with?("--provider") end
if is_vbox
pkg_cmd << "apt-get install -q -y linux-headers-3.8.0-19-generic dkms; " \
"echo 'Downloading VBox Guest Additions...'; " \
"wget -q http://dlc.sun.com.edgesuite.net/virtualbox/4.2.12/VBoxGuestAdditions_4.2.12.iso; "
# Prepare the VM to add guest additions after reboot
pkg_cmd << "echo -e 'mount -o loop,ro /home/vagrant/VBoxGuestAdditions_4.2.12.iso /mnt\n" \
"echo yes | /mnt/VBoxLinuxAdditions.run\numount /mnt\n" \
"rm /root/guest_additions.sh; ' > /root/guest_additions.sh; " \
"chmod 700 /root/guest_additions.sh; " \
"sed -i -E 's#^exit 0#[ -x /root/guest_additions.sh ] \\&\\& /root/guest_additions.sh#' /etc/rc.local; " \
"echo 'Installation of VBox Guest Additions is proceeding in the background.'; " \
"echo '\"vagrant reload\" can be used in about 2 minutes to activate the new guest additions.'; "
end
# Activate new kernel
pkg_cmd << "shutdown -r +1; "
config.vm.provision :shell, :inline => pkg_cmd
# Use the specified private key path if it is specified and not empty.
if SSH_PRIVKEY_PATH
config.ssh.private_key_path = SSH_PRIVKEY_PATH
end
config.ssh.forward_agent = true
end
# Providers were added on Vagrant >= 1.1.0
#
# NOTE: The vagrant "vm.provision" appends its arguments to a list and executes
# them in order. If you invoke "vm.provision :shell, :inline => $script"
# twice then vagrant will run the script two times. Unfortunately when you use
# providers and the override argument to set up provisioners (like the vbox
# guest extensions) they 1) don't replace the other provisioners (they append
# to the end of the list) and 2) you can't control the order the provisioners
# are executed (you can only append to the list). If you want the virtualbox
# only script to run before the other script, you have to jump through a lot of
# hoops.
#
# Here is my only repeatable solution: make one script that is common ($script)
# and another script that is the virtual box guest *prepended* to the common
# script. Only ever use "vm.provision" *one time* per provider. That means
# every single provider has an override, and every single one configures
# "vm.provision". Much saddness, but such is life.
Vagrant::VERSION >= "1.1.0" and Vagrant.configure("2") do |config|
config.vm.provider :aws do |aws, override|
aws.access_key_id = ENV["AWS_ACCESS_KEY_ID"]
aws.secret_access_key = ENV["AWS_SECRET_ACCESS_KEY"]
username = "ubuntu"
override.vm.box_url = AWS_BOX_URI
override.vm.provision :shell, :inline => $script, :args => username
aws.access_key_id = ENV["AWS_ACCESS_KEY"]
aws.secret_access_key = ENV["AWS_SECRET_KEY"]
aws.keypair_name = ENV["AWS_KEYPAIR_NAME"]
override.ssh.private_key_path = ENV["AWS_SSH_PRIVKEY"]
override.ssh.username = "ubuntu"
override.ssh.username = username
aws.region = AWS_REGION
aws.ami = AWS_AMI
aws.instance_type = "t1.micro"
aws.instance_type = AWS_INSTANCE_TYPE
end
config.vm.provider :rackspace do |rs|
config.ssh.private_key_path = ENV["RS_PRIVATE_KEY"]
config.vm.provider :rackspace do |rs, override|
override.vm.provision :shell, :inline => $script
rs.username = ENV["RS_USERNAME"]
rs.api_key = ENV["RS_API_KEY"]
rs.public_key_path = ENV["RS_PUBLIC_KEY"]
@@ -71,28 +141,35 @@ Vagrant::VERSION >= "1.1.0" and Vagrant.configure("2") do |config|
end
config.vm.provider :vmware_fusion do |f, override|
override.vm.box = BOX_NAME
override.vm.box_url = VF_BOX_URI
override.vm.synced_folder ".", "/vagrant", disabled: true
override.vm.provision :shell, :inline => $script
f.vmx["displayName"] = "docker"
end
config.vm.provider :virtualbox do |vb|
config.vm.box = BOX_NAME
config.vm.box_url = BOX_URI
config.vm.provider :virtualbox do |vb, override|
override.vm.provision :shell, :inline => $vbox_script
vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
vb.customize ["modifyvm", :id, "--natdnsproxy1", "on"]
end
end
if !FORWARD_DOCKER_PORTS.nil?
Vagrant::VERSION < "1.1.0" and Vagrant::Config.run do |config|
(49000..49900).each do |port|
config.vm.forward_port port, port
end
end
Vagrant::VERSION >= "1.1.0" and Vagrant.configure("2") do |config|
(49000..49900).each do |port|
config.vm.network :forwarded_port, :host => port, :guest => port
end
end
# If this is a version 1 config, virtualbox is the only option. A version 2
# config would have already been set in the above provider section.
Vagrant::VERSION < "1.1.0" and Vagrant::Config.run do |config|
config.vm.provision :shell, :inline => $vbox_script
end
if !FORWARD_DOCKER_PORTS.nil?
Vagrant::VERSION < "1.1.0" and Vagrant::Config.run do |config|
(49000..49900).each do |port|
config.vm.forward_port port, port
end
end
Vagrant::VERSION >= "1.1.0" and Vagrant.configure("2") do |config|
(49000..49900).each do |port|
config.vm.network :forwarded_port, :host => port, :guest => port
end
end
end

639
api.go

File diff suppressed because it is too large Load Diff

View File

@@ -1,88 +1,148 @@
package docker
type APIHistory struct {
ID string `json:"Id"`
Tags []string `json:",omitempty"`
Created int64
CreatedBy string `json:",omitempty"`
import "strings"
type (
APIHistory struct {
ID string `json:"Id"`
Tags []string `json:",omitempty"`
Created int64
CreatedBy string `json:",omitempty"`
Size int64
}
APIImages struct {
ID string `json:"Id"`
RepoTags []string `json:",omitempty"`
Created int64
Size int64
VirtualSize int64
ParentId string `json:",omitempty"`
}
APIImagesOld struct {
Repository string `json:",omitempty"`
Tag string `json:",omitempty"`
ID string `json:"Id"`
Created int64
Size int64
VirtualSize int64
}
APIInfo struct {
Debug bool
Containers int
Images int
NFd int `json:",omitempty"`
NGoroutines int `json:",omitempty"`
MemoryLimit bool `json:",omitempty"`
SwapLimit bool `json:",omitempty"`
IPv4Forwarding bool `json:",omitempty"`
LXCVersion string `json:",omitempty"`
NEventsListener int `json:",omitempty"`
KernelVersion string `json:",omitempty"`
IndexServerAddress string `json:",omitempty"`
}
APITop struct {
Titles []string
Processes [][]string
}
APIRmi struct {
Deleted string `json:",omitempty"`
Untagged string `json:",omitempty"`
}
APIContainers struct {
ID string `json:"Id"`
Image string
Command string
Created int64
Status string
Ports []APIPort
SizeRw int64
SizeRootFs int64
Names []string
}
APIContainersOld struct {
ID string `json:"Id"`
Image string
Command string
Created int64
Status string
Ports string
SizeRw int64
SizeRootFs int64
}
APIID struct {
ID string `json:"Id"`
}
APIRun struct {
ID string `json:"Id"`
Warnings []string `json:",omitempty"`
}
APIPort struct {
PrivatePort int64
PublicPort int64
Type string
IP string
}
APIVersion struct {
Version string
GitCommit string `json:",omitempty"`
GoVersion string `json:",omitempty"`
}
APIWait struct {
StatusCode int
}
APIAuth struct {
Status string
}
APIImageConfig struct {
ID string `json:"Id"`
*Config
}
APICopy struct {
Resource string
HostPath string
}
)
func (api APIImages) ToLegacy() []APIImagesOld {
outs := []APIImagesOld{}
for _, repotag := range api.RepoTags {
components := strings.SplitN(repotag, ":", 2)
outs = append(outs, APIImagesOld{
ID: api.ID,
Repository: components[0],
Tag: components[1],
Created: api.Created,
Size: api.Size,
VirtualSize: api.VirtualSize,
})
}
return outs
}
type APIImages struct {
Repository string `json:",omitempty"`
Tag string `json:",omitempty"`
ID string `json:"Id"`
Created int64
Size int64
VirtualSize int64
}
type APIInfo struct {
Debug bool
Containers int
Images int
NFd int `json:",omitempty"`
NGoroutines int `json:",omitempty"`
MemoryLimit bool `json:",omitempty"`
SwapLimit bool `json:",omitempty"`
LXCVersion string `json:",omitempty"`
NEventsListener int `json:",omitempty"`
KernelVersion string `json:",omitempty"`
}
type APITop struct {
Titles []string
Processes [][]string
}
type APIRmi struct {
Deleted string `json:",omitempty"`
Untagged string `json:",omitempty"`
}
type APIContainers struct {
ID string `json:"Id"`
Image string
Command string
Created int64
Status string
Ports string
SizeRw int64
SizeRootFs int64
}
type APISearch struct {
Name string
Description string
}
type APIID struct {
ID string `json:"Id"`
}
type APIRun struct {
ID string `json:"Id"`
Warnings []string `json:",omitempty"`
}
type APIPort struct {
Port string
}
type APIVersion struct {
Version string
GitCommit string `json:",omitempty"`
GoVersion string `json:",omitempty"`
}
type APIWait struct {
StatusCode int
}
type APIAuth struct {
Status string
}
type APIImageConfig struct {
ID string `json:"Id"`
*Config
func (api APIContainers) ToLegacy() *APIContainersOld {
return &APIContainersOld{
ID: api.ID,
Image: api.Image,
Command: api.Command,
Created: api.Created,
Status: api.Status,
Ports: displayablePorts(api.Ports),
SizeRw: api.SizeRw,
SizeRootFs: api.SizeRootFs,
}
}

File diff suppressed because it is too large Load Diff

19
api_unit_test.go Normal file
View File

@@ -0,0 +1,19 @@
package docker
import (
"testing"
)
func TestJsonContentType(t *testing.T) {
if !matchesContentType("application/json", "application/json") {
t.Fail()
}
if !matchesContentType("application/json; charset=utf-8", "application/json") {
t.Fail()
}
if matchesContentType("dockerapplication/json", "application/json") {
t.Fail()
}
}

1
archive/MAINTAINERS Normal file
View File

@@ -0,0 +1 @@
Michael Crosby <michael@crosbymichael.com> (@crosbymichael)

View File

@@ -1,4 +1,4 @@
package docker
package archive
import (
"archive/tar"
@@ -98,7 +98,7 @@ func TarFilter(path string, compression Compression, filter []string) (io.Reader
// Untar reads a stream of bytes from `archive`, parses it as a tar archive,
// and unpacks it into the directory at `path`.
// The archive may be compressed with one of the following algorithgms:
// The archive may be compressed with one of the following algorithms:
// identity (uncompressed), gzip, bzip2, xz.
// FIXME: specify behavior when target path exists vs. doesn't exist.
func Untar(archive io.Reader, path string) error {
@@ -109,16 +109,17 @@ func Untar(archive io.Reader, path string) error {
buf := make([]byte, 10)
totalN := 0
for totalN < 10 {
if n, err := archive.Read(buf[totalN:]); err != nil {
n, err := archive.Read(buf[totalN:])
if err != nil {
if err == io.EOF {
return fmt.Errorf("Tarball too short")
}
return err
} else {
totalN += n
utils.Debugf("[tar autodetect] n: %d", n)
}
totalN += n
utils.Debugf("[tar autodetect] n: %d", n)
}
compression := DetectCompression(buf)
utils.Debugf("Archive compression detected: %s", compression.Extension())
@@ -173,7 +174,7 @@ func CopyWithTar(src, dst string) error {
}
// Create dst, copy src's content into it
utils.Debugf("Creating dest directory: %s", dst)
if err := os.MkdirAll(dst, 0700); err != nil && !os.IsExist(err) {
if err := os.MkdirAll(dst, 0755); err != nil && !os.IsExist(err) {
return err
}
utils.Debugf("Calling TarUntar(%s, %s)", src, dst)

View File

@@ -1,4 +1,4 @@
package docker
package archive
import (
"bytes"

View File

@@ -1 +0,0 @@
../registry/MAINTAINERS

3
auth/MAINTAINERS Normal file
View File

@@ -0,0 +1,3 @@
Sam Alba <sam@dotcloud.com> (@samalba)
Joffrey Fuhrer <joffrey@dotcloud.com> (@shin-)
Ken Cochrane <ken@dotcloud.com> (@kencochrane)

View File

@@ -5,6 +5,7 @@ import (
"encoding/json"
"errors"
"fmt"
"github.com/dotcloud/docker/utils"
"io/ioutil"
"net/http"
"os"
@@ -18,17 +19,18 @@ const CONFIGFILE = ".dockercfg"
// Only used for user auth + account creation
const INDEXSERVER = "https://index.docker.io/v1/"
//const INDEXSERVER = "http://indexstaging-docker.dotcloud.com/"
//const INDEXSERVER = "https://indexstaging-docker.dotcloud.com/v1/"
var (
ErrConfigFileMissing = errors.New("The Auth config file is missing")
)
type AuthConfig struct {
Username string `json:"username,omitempty"`
Password string `json:"password,omitempty"`
Auth string `json:"auth"`
Email string `json:"email"`
Username string `json:"username,omitempty"`
Password string `json:"password,omitempty"`
Auth string `json:"auth"`
Email string `json:"email"`
ServerAddress string `json:"serveraddress,omitempty"`
}
type ConfigFile struct {
@@ -75,35 +77,43 @@ func LoadConfig(rootPath string) (*ConfigFile, error) {
configFile := ConfigFile{Configs: make(map[string]AuthConfig), rootPath: rootPath}
confFile := path.Join(rootPath, CONFIGFILE)
if _, err := os.Stat(confFile); err != nil {
return &configFile, ErrConfigFileMissing
return &configFile, nil //missing file is not an error
}
b, err := ioutil.ReadFile(confFile)
if err != nil {
return nil, err
return &configFile, err
}
if err := json.Unmarshal(b, &configFile.Configs); err != nil {
arr := strings.Split(string(b), "\n")
if len(arr) < 2 {
return nil, fmt.Errorf("The Auth config file is empty")
return &configFile, fmt.Errorf("The Auth config file is empty")
}
authConfig := AuthConfig{}
origAuth := strings.Split(arr[0], " = ")
if len(origAuth) != 2 {
return &configFile, fmt.Errorf("Invalid Auth config file")
}
authConfig.Username, authConfig.Password, err = decodeAuth(origAuth[1])
if err != nil {
return nil, err
return &configFile, err
}
origEmail := strings.Split(arr[1], " = ")
if len(origEmail) != 2 {
return &configFile, fmt.Errorf("Invalid Auth config file")
}
authConfig.Email = origEmail[1]
authConfig.ServerAddress = IndexServerAddress()
configFile.Configs[IndexServerAddress()] = authConfig
} else {
for k, authConfig := range configFile.Configs {
authConfig.Username, authConfig.Password, err = decodeAuth(authConfig.Auth)
if err != nil {
return nil, err
return &configFile, err
}
authConfig.Auth = ""
configFile.Configs[k] = authConfig
authConfig.ServerAddress = k
}
}
return &configFile, nil
@@ -124,7 +134,7 @@ func SaveConfig(configFile *ConfigFile) error {
authCopy.Auth = encodeAuth(&authCopy)
authCopy.Username = ""
authCopy.Password = ""
authCopy.ServerAddress = ""
configs[k] = authCopy
}
@@ -140,19 +150,31 @@ func SaveConfig(configFile *ConfigFile) error {
}
// try to register/login to the registry server
func Login(authConfig *AuthConfig) (string, error) {
func Login(authConfig *AuthConfig, factory *utils.HTTPRequestFactory) (string, error) {
client := &http.Client{}
reqStatusCode := 0
var status string
var reqBody []byte
jsonBody, err := json.Marshal(authConfig)
serverAddress := authConfig.ServerAddress
if serverAddress == "" {
serverAddress = IndexServerAddress()
}
loginAgainstOfficialIndex := serverAddress == IndexServerAddress()
// to avoid sending the server address to the server it should be removed before marshalled
authCopy := *authConfig
authCopy.ServerAddress = ""
jsonBody, err := json.Marshal(authCopy)
if err != nil {
return "", fmt.Errorf("Config Error: %s", err)
}
// using `bytes.NewReader(jsonBody)` here causes the server to respond with a 411 status.
b := strings.NewReader(string(jsonBody))
req1, err := http.Post(IndexServerAddress()+"users/", "application/json; charset=utf-8", b)
req1, err := http.Post(serverAddress+"users/", "application/json; charset=utf-8", b)
if err != nil {
return "", fmt.Errorf("Server Error: %s", err)
}
@@ -164,14 +186,22 @@ func Login(authConfig *AuthConfig) (string, error) {
}
if reqStatusCode == 201 {
status = "Account created. Please use the confirmation link we sent" +
" to your e-mail to activate it."
if loginAgainstOfficialIndex {
status = "Account created. Please use the confirmation link we sent" +
" to your e-mail to activate it."
} else {
status = "Account created. Please see the documentation of the registry " + serverAddress + " for instructions how to activate it."
}
} else if reqStatusCode == 403 {
if loginAgainstOfficialIndex {
return "", fmt.Errorf("Login: Your account hasn't been activated. " +
"Please check your e-mail for a confirmation link.")
}
return "", fmt.Errorf("Login: Your account hasn't been activated. " +
"Please check your e-mail for a confirmation link.")
"Please see the documentation of the registry " + serverAddress + " for instructions how to activate it.")
} else if reqStatusCode == 400 {
if string(reqBody) == "\"Username or email already exists\"" {
req, err := http.NewRequest("GET", IndexServerAddress()+"users/", nil)
req, err := factory.NewRequest("GET", serverAddress+"users/", nil)
req.SetBasicAuth(authConfig.Username, authConfig.Password)
resp, err := client.Do(req)
if err != nil {
@@ -198,3 +228,52 @@ func Login(authConfig *AuthConfig) (string, error) {
}
return status, nil
}
// this method matches a auth configuration to a server address or a url
func (config *ConfigFile) ResolveAuthConfig(registry string) AuthConfig {
if registry == IndexServerAddress() || len(registry) == 0 {
// default to the index server
return config.Configs[IndexServerAddress()]
}
// if its not the index server there are three cases:
//
// 1. this is a full config url -> it should be used as is
// 2. it could be a full url, but with the wrong protocol
// 3. it can be the hostname optionally with a port
//
// as there is only one auth entry which is fully qualified we need to start
// parsing and matching
swapProtocol := func(url string) string {
if strings.HasPrefix(url, "http:") {
return strings.Replace(url, "http:", "https:", 1)
}
if strings.HasPrefix(url, "https:") {
return strings.Replace(url, "https:", "http:", 1)
}
return url
}
resolveIgnoringProtocol := func(url string) AuthConfig {
if c, found := config.Configs[url]; found {
return c
}
registrySwappedProtocol := swapProtocol(url)
// now try to match with the different protocol
if c, found := config.Configs[registrySwappedProtocol]; found {
return c
}
return AuthConfig{}
}
// match both protocols as it could also be a server name like httpfoo
if strings.HasPrefix(registry, "http:") || strings.HasPrefix(registry, "https:") {
return resolveIgnoringProtocol(registry)
}
url := "https://" + registry
if !strings.Contains(registry, "/") {
url = url + "/v1/"
}
return resolveIgnoringProtocol(url)
}

View File

@@ -1,11 +1,8 @@
package auth
import (
"crypto/rand"
"encoding/hex"
"io/ioutil"
"os"
"strings"
"testing"
)
@@ -29,68 +26,34 @@ func TestEncodeAuth(t *testing.T) {
}
}
func TestLogin(t *testing.T) {
os.Setenv("DOCKER_INDEX_URL", "https://indexstaging-docker.dotcloud.com")
defer os.Setenv("DOCKER_INDEX_URL", "")
authConfig := &AuthConfig{Username: "unittester", Password: "surlautrerivejetattendrai", Email: "noise+unittester@dotcloud.com"}
status, err := Login(authConfig)
func setupTempConfigFile() (*ConfigFile, error) {
root, err := ioutil.TempDir("", "docker-test-auth")
if err != nil {
t.Fatal(err)
}
if status != "Login Succeeded" {
t.Fatalf("Expected status \"Login Succeeded\", found \"%s\" instead", status)
}
}
func TestCreateAccount(t *testing.T) {
os.Setenv("DOCKER_INDEX_URL", "https://indexstaging-docker.dotcloud.com")
defer os.Setenv("DOCKER_INDEX_URL", "")
tokenBuffer := make([]byte, 16)
_, err := rand.Read(tokenBuffer)
if err != nil {
t.Fatal(err)
}
token := hex.EncodeToString(tokenBuffer)[:12]
username := "ut" + token
authConfig := &AuthConfig{Username: username, Password: "test42", Email: "docker-ut+" + token + "@example.com"}
status, err := Login(authConfig)
if err != nil {
t.Fatal(err)
}
expectedStatus := "Account created. Please use the confirmation link we sent" +
" to your e-mail to activate it."
if status != expectedStatus {
t.Fatalf("Expected status: \"%s\", found \"%s\" instead.", expectedStatus, status)
}
status, err = Login(authConfig)
if err == nil {
t.Fatalf("Expected error but found nil instead")
}
expectedError := "Login: Account is not Active"
if !strings.Contains(err.Error(), expectedError) {
t.Fatalf("Expected message \"%s\" but found \"%s\" instead", expectedError, err)
}
}
func TestSameAuthDataPostSave(t *testing.T) {
root, err := ioutil.TempDir("", "docker-test")
if err != nil {
t.Fatal(err)
return nil, err
}
configFile := &ConfigFile{
rootPath: root,
Configs: make(map[string]AuthConfig, 1),
Configs: make(map[string]AuthConfig),
}
configFile.Configs["testIndex"] = AuthConfig{
Username: "docker-user",
Password: "docker-pass",
Email: "docker@docker.io",
for _, registry := range []string{"testIndex", IndexServerAddress()} {
configFile.Configs[registry] = AuthConfig{
Username: "docker-user",
Password: "docker-pass",
Email: "docker@docker.io",
}
}
return configFile, nil
}
func TestSameAuthDataPostSave(t *testing.T) {
configFile, err := setupTempConfigFile()
if err != nil {
t.Fatal(err)
}
defer os.RemoveAll(configFile.rootPath)
err = SaveConfig(configFile)
if err != nil {
t.Fatal(err)
@@ -110,3 +73,70 @@ func TestSameAuthDataPostSave(t *testing.T) {
t.Fail()
}
}
func TestResolveAuthConfigIndexServer(t *testing.T) {
configFile, err := setupTempConfigFile()
if err != nil {
t.Fatal(err)
}
defer os.RemoveAll(configFile.rootPath)
for _, registry := range []string{"", IndexServerAddress()} {
resolved := configFile.ResolveAuthConfig(registry)
if resolved != configFile.Configs[IndexServerAddress()] {
t.Fail()
}
}
}
func TestResolveAuthConfigFullURL(t *testing.T) {
configFile, err := setupTempConfigFile()
if err != nil {
t.Fatal(err)
}
defer os.RemoveAll(configFile.rootPath)
registryAuth := AuthConfig{
Username: "foo-user",
Password: "foo-pass",
Email: "foo@example.com",
}
localAuth := AuthConfig{
Username: "bar-user",
Password: "bar-pass",
Email: "bar@example.com",
}
configFile.Configs["https://registry.example.com/v1/"] = registryAuth
configFile.Configs["http://localhost:8000/v1/"] = localAuth
validRegistries := map[string][]string{
"https://registry.example.com/v1/": {
"https://registry.example.com/v1/",
"http://registry.example.com/v1/",
"registry.example.com",
"registry.example.com/v1/",
},
"http://localhost:8000/v1/": {
"https://localhost:8000/v1/",
"http://localhost:8000/v1/",
"localhost:8000",
"localhost:8000/v1/",
},
}
for configKey, registries := range validRegistries {
for _, registry := range registries {
var (
configured AuthConfig
ok bool
)
resolved := configFile.ResolveAuthConfig(registry)
if configured, ok = configFile.Configs[configKey]; !ok {
t.Fail()
}
if resolved.Email != configured.Email {
t.Errorf("%s -> %q != %q\n", registry, resolved.Email, configured.Email)
}
}
}
}

View File

@@ -1,147 +0,0 @@
package docker
import (
"fmt"
"github.com/dotcloud/docker/utils"
"os"
"path"
"time"
)
var defaultDns = []string{"8.8.8.8", "8.8.4.4"}
type Builder struct {
runtime *Runtime
repositories *TagStore
graph *Graph
config *Config
image *Image
}
func NewBuilder(runtime *Runtime) *Builder {
return &Builder{
runtime: runtime,
graph: runtime.graph,
repositories: runtime.repositories,
}
}
func (builder *Builder) Create(config *Config) (*Container, error) {
// Lookup image
img, err := builder.repositories.LookupImage(config.Image)
if err != nil {
return nil, err
}
if img.Config != nil {
MergeConfig(config, img.Config)
}
if config.Cmd == nil || len(config.Cmd) == 0 {
return nil, fmt.Errorf("No command specified")
}
// Generate id
id := GenerateID()
// Generate default hostname
// FIXME: the lxc template no longer needs to set a default hostname
if config.Hostname == "" {
config.Hostname = id[:12]
}
var args []string
var entrypoint string
if len(config.Entrypoint) != 0 {
entrypoint = config.Entrypoint[0]
args = append(config.Entrypoint[1:], config.Cmd...)
} else {
entrypoint = config.Cmd[0]
args = config.Cmd[1:]
}
container := &Container{
// FIXME: we should generate the ID here instead of receiving it as an argument
ID: id,
Created: time.Now(),
Path: entrypoint,
Args: args, //FIXME: de-duplicate from config
Config: config,
Image: img.ID, // Always use the resolved image id
NetworkSettings: &NetworkSettings{},
// FIXME: do we need to store this in the container?
SysInitPath: sysInitPath,
}
container.root = builder.runtime.containerRoot(container.ID)
// Step 1: create the container directory.
// This doubles as a barrier to avoid race conditions.
if err := os.Mkdir(container.root, 0700); err != nil {
return nil, err
}
if len(config.Dns) == 0 && len(builder.runtime.Dns) == 0 && utils.CheckLocalDns() {
//"WARNING: Docker detected local DNS server on resolv.conf. Using default external servers: %v", defaultDns
builder.runtime.Dns = defaultDns
}
// If custom dns exists, then create a resolv.conf for the container
if len(config.Dns) > 0 || len(builder.runtime.Dns) > 0 {
var dns []string
if len(config.Dns) > 0 {
dns = config.Dns
} else {
dns = builder.runtime.Dns
}
container.ResolvConfPath = path.Join(container.root, "resolv.conf")
f, err := os.Create(container.ResolvConfPath)
if err != nil {
return nil, err
}
defer f.Close()
for _, dns := range dns {
if _, err := f.Write([]byte("nameserver " + dns + "\n")); err != nil {
return nil, err
}
}
} else {
container.ResolvConfPath = "/etc/resolv.conf"
}
// Step 2: save the container json
if err := container.ToDisk(); err != nil {
return nil, err
}
// Step 3: register the container
if err := builder.runtime.Register(container); err != nil {
return nil, err
}
return container, nil
}
// Commit creates a new filesystem image from the current state of a container.
// The image can optionally be tagged into a repository
func (builder *Builder) Commit(container *Container, repository, tag, comment, author string, config *Config) (*Image, error) {
// FIXME: freeze the container before copying it to avoid data corruption?
// FIXME: this shouldn't be in commands.
if err := container.EnsureMounted(); err != nil {
return nil, err
}
rwTar, err := container.ExportRw()
if err != nil {
return nil, err
}
// Create a new image from the container's base layers + a new layer from container changes
img, err := builder.graph.Create(rwTar, container, comment, author, config)
if err != nil {
return nil, err
}
// Register the image if needed
if repository != "" {
if err := builder.repositories.Set(repository, tag, img.ID, true); err != nil {
return img, err
}
}
return img, nil
}

View File

@@ -1,9 +1,9 @@
package docker
import (
"bufio"
"encoding/json"
"fmt"
"github.com/dotcloud/docker/archive"
"github.com/dotcloud/docker/utils"
"io"
"io/ioutil"
@@ -23,14 +23,15 @@ type BuildFile interface {
type buildFile struct {
runtime *Runtime
builder *Builder
srv *Server
image string
maintainer string
config *Config
context string
verbose bool
image string
maintainer string
config *Config
context string
verbose bool
utilizeCache bool
rm bool
tmpContainers map[string]struct{}
tmpImages map[string]struct{}
@@ -38,15 +39,11 @@ type buildFile struct {
out io.Writer
}
func (b *buildFile) clearTmp(containers, images map[string]struct{}) {
func (b *buildFile) clearTmp(containers map[string]struct{}) {
for c := range containers {
tmp := b.runtime.Get(c)
b.runtime.Destroy(tmp)
utils.Debugf("Removing container %s", c)
}
for i := range images {
b.runtime.graph.Delete(i)
utils.Debugf("Removing image %s", i)
fmt.Fprintf(b.out, "Removing intermediate container %s\n", utils.TruncateID(c))
}
}
@@ -55,7 +52,7 @@ func (b *buildFile) CmdFrom(name string) error {
if err != nil {
if b.runtime.graph.IsNotExist(err) {
remote, tag := utils.ParseRepositoryTag(name)
if err := b.srv.ImagePull(remote, tag, b.out, utils.NewStreamFormatter(false), nil); err != nil {
if err := b.srv.ImagePull(remote, tag, b.out, utils.NewStreamFormatter(false), nil, nil, true); err != nil {
return err
}
image, err = b.runtime.repositories.LookupImage(name)
@@ -68,6 +65,9 @@ func (b *buildFile) CmdFrom(name string) error {
}
b.image = image.ID
b.config = &Config{}
if image.Config != nil {
b.config = image.Config
}
if b.config.Env == nil || len(b.config.Env) == 0 {
b.config.Env = append(b.config.Env, "HOME=/", "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin")
}
@@ -92,17 +92,21 @@ func (b *buildFile) CmdRun(args string) error {
b.config.Cmd = nil
MergeConfig(b.config, config)
defer func(cmd []string) { b.config.Cmd = cmd }(cmd)
utils.Debugf("Command to be executed: %v", b.config.Cmd)
if cache, err := b.srv.ImageGetCached(b.image, b.config); err != nil {
return err
} else if cache != nil {
fmt.Fprintf(b.out, " ---> Using cache\n")
utils.Debugf("[BUILDER] Use cached version")
b.image = cache.ID
return nil
} else {
utils.Debugf("[BUILDER] Cache miss")
if b.utilizeCache {
if cache, err := b.srv.ImageGetCached(b.image, b.config); err != nil {
return err
} else if cache != nil {
fmt.Fprintf(b.out, " ---> Using cache\n")
utils.Debugf("[BUILDER] Use cached version")
b.image = cache.ID
return nil
} else {
utils.Debugf("[BUILDER] Cache miss")
}
}
cid, err := b.run()
@@ -112,7 +116,7 @@ func (b *buildFile) CmdRun(args string) error {
if err := b.commit(cid, cmd, "run"); err != nil {
return err
}
b.config.Cmd = cmd
return nil
}
@@ -192,6 +196,11 @@ func (b *buildFile) CmdExpose(args string) error {
return b.commit("", b.config.Cmd, fmt.Sprintf("EXPOSE %v", ports))
}
func (b *buildFile) CmdUser(args string) error {
b.config.User = args
return b.commit("", b.config.Cmd, fmt.Sprintf("USER %v", args))
}
func (b *buildFile) CmdInsert(args string) error {
return fmt.Errorf("INSERT has been deprecated. Please use ADD instead")
}
@@ -217,6 +226,11 @@ func (b *buildFile) CmdEntrypoint(args string) error {
return nil
}
func (b *buildFile) CmdWorkdir(workdir string) error {
b.config.WorkingDir = workdir
return b.commit("", b.config.Cmd, fmt.Sprintf("WORKDIR %v", workdir))
}
func (b *buildFile) CmdVolume(args string) error {
if args == "" {
return fmt.Errorf("Volume cannot be empty")
@@ -278,20 +292,20 @@ func (b *buildFile) addContext(container *Container, orig, dest string) error {
}
fi, err := os.Stat(origPath)
if err != nil {
return err
return fmt.Errorf("%s: no such file or directory", orig)
}
if fi.IsDir() {
if err := CopyWithTar(origPath, destPath); err != nil {
if err := archive.CopyWithTar(origPath, destPath); err != nil {
return err
}
// First try to unpack the source as an archive
} else if err := UntarPath(origPath, destPath); err != nil {
} else if err := archive.UntarPath(origPath, destPath); err != nil {
utils.Debugf("Couldn't untar %s to %s: %s", origPath, destPath, err)
// If that fails, just copy it as a regular file
if err := os.MkdirAll(path.Dir(destPath), 0755); err != nil {
return err
}
if err := CopyWithTar(origPath, destPath); err != nil {
if err := archive.CopyWithTar(origPath, destPath); err != nil {
return err
}
}
@@ -322,7 +336,7 @@ func (b *buildFile) CmdAdd(args string) error {
b.config.Image = b.image
// Create the container and start it
container, err := b.builder.Create(b.config)
container, _, err := b.runtime.Create(b.config, "")
if err != nil {
return err
}
@@ -357,7 +371,7 @@ func (b *buildFile) run() (string, error) {
b.config.Image = b.image
// Create the container and start it
c, err := b.builder.Create(b.config)
c, _, err := b.runtime.Create(b.config, "")
if err != nil {
return "", err
}
@@ -368,15 +382,21 @@ func (b *buildFile) run() (string, error) {
c.Path = b.config.Cmd[0]
c.Args = b.config.Cmd[1:]
var errCh chan error
if b.verbose {
errCh = utils.Go(func() error {
return <-c.Attach(nil, nil, b.out, b.out)
})
}
//start the container
hostConfig := &HostConfig{}
if err := c.Start(hostConfig); err != nil {
if err := c.Start(); err != nil {
return "", err
}
if b.verbose {
err = <-c.Attach(nil, nil, b.out, b.out)
if err != nil {
if errCh != nil {
if err := <-errCh; err != nil {
return "", err
}
}
@@ -400,20 +420,26 @@ func (b *buildFile) commit(id string, autoCmd []string, comment string) error {
b.config.Cmd = []string{"/bin/sh", "-c", "#(nop) " + comment}
defer func(cmd []string) { b.config.Cmd = cmd }(cmd)
if cache, err := b.srv.ImageGetCached(b.image, b.config); err != nil {
return err
} else if cache != nil {
fmt.Fprintf(b.out, " ---> Using cache\n")
utils.Debugf("[BUILDER] Use cached version")
b.image = cache.ID
return nil
} else {
utils.Debugf("[BUILDER] Cache miss")
if b.utilizeCache {
if cache, err := b.srv.ImageGetCached(b.image, b.config); err != nil {
return err
} else if cache != nil {
fmt.Fprintf(b.out, " ---> Using cache\n")
utils.Debugf("[BUILDER] Use cached version")
b.image = cache.ID
return nil
} else {
utils.Debugf("[BUILDER] Cache miss")
}
}
container, err := b.builder.Create(b.config)
container, warnings, err := b.runtime.Create(b.config, "")
if err != nil {
return err
}
for _, warning := range warnings {
fmt.Fprintf(b.out, " ---> [Warning] %s\n", warning)
}
b.tmpContainers[container.ID] = struct{}{}
fmt.Fprintf(b.out, " ---> Running in %s\n", utils.TruncateID(container.ID))
id = container.ID
@@ -432,7 +458,7 @@ func (b *buildFile) commit(id string, autoCmd []string, comment string) error {
autoConfig := *b.config
autoConfig.Cmd = autoCmd
// Commit the container
image, err := b.builder.Commit(container, "", "", "", b.maintainer, &autoConfig)
image, err := b.runtime.Commit(container, "", "", "", b.maintainer, &autoConfig)
if err != nil {
return err
}
@@ -441,34 +467,32 @@ func (b *buildFile) commit(id string, autoCmd []string, comment string) error {
return nil
}
// Long lines can be split with a backslash
var lineContinuation = regexp.MustCompile(`\s*\\\s*\n`)
func (b *buildFile) Build(context io.Reader) (string, error) {
// FIXME: @creack any reason for using /tmp instead of ""?
// FIXME: @creack "name" is a terrible variable name
name, err := ioutil.TempDir("/tmp", "docker-build")
name, err := ioutil.TempDir("", "docker-build")
if err != nil {
return "", err
}
if err := Untar(context, name); err != nil {
if err := archive.Untar(context, name); err != nil {
return "", err
}
defer os.RemoveAll(name)
b.context = name
dockerfile, err := os.Open(path.Join(name, "Dockerfile"))
if err != nil {
filename := path.Join(name, "Dockerfile")
if _, err := os.Stat(filename); os.IsNotExist(err) {
return "", fmt.Errorf("Can't build a directory with no Dockerfile")
}
// FIXME: "file" is also a terrible variable name ;)
file := bufio.NewReader(dockerfile)
fileBytes, err := ioutil.ReadFile(filename)
if err != nil {
return "", err
}
dockerfile := string(fileBytes)
dockerfile = lineContinuation.ReplaceAllString(dockerfile, "")
stepN := 0
for {
line, err := file.ReadString('\n')
if err != nil {
if err == io.EOF && line == "" {
break
} else if err != io.EOF {
return "", err
}
}
for _, line := range strings.Split(dockerfile, "\n") {
line = strings.Trim(strings.Replace(line, "\t", " ", -1), " \t\r\n")
// Skip comments and empty line
if len(line) == 0 || line[0] == '#' {
@@ -480,15 +504,16 @@ func (b *buildFile) Build(context io.Reader) (string, error) {
}
instruction := strings.ToLower(strings.Trim(tmp[0], " "))
arguments := strings.Trim(tmp[1], " ")
stepN += 1
// FIXME: only count known instructions as build steps
fmt.Fprintf(b.out, "Step %d : %s %s\n", stepN, strings.ToUpper(instruction), arguments)
method, exists := reflect.TypeOf(b).MethodByName("Cmd" + strings.ToUpper(instruction[:1]) + strings.ToLower(instruction[1:]))
if !exists {
fmt.Fprintf(b.out, "# Skipping unknown instruction %s\n", strings.ToUpper(instruction))
continue
}
stepN += 1
fmt.Fprintf(b.out, "Step %d : %s %s\n", stepN, strings.ToUpper(instruction), arguments)
ret := method.Func.Call([]reflect.Value{reflect.ValueOf(b), reflect.ValueOf(arguments)})[0].Interface()
if ret != nil {
return "", ret.(error)
@@ -498,14 +523,16 @@ func (b *buildFile) Build(context io.Reader) (string, error) {
}
if b.image != "" {
fmt.Fprintf(b.out, "Successfully built %s\n", utils.TruncateID(b.image))
if b.rm {
b.clearTmp(b.tmpContainers)
}
return b.image, nil
}
return "", fmt.Errorf("An error occured during the build\n")
return "", fmt.Errorf("An error occurred during the build\n")
}
func NewBuildFile(srv *Server, out io.Writer, verbose bool) BuildFile {
func NewBuildFile(srv *Server, out io.Writer, verbose, utilizeCache, rm bool) BuildFile {
return &buildFile{
builder: NewBuilder(srv.runtime),
runtime: srv.runtime,
srv: srv,
config: &Config{},
@@ -513,5 +540,7 @@ func NewBuildFile(srv *Server, out io.Writer, verbose bool) BuildFile {
tmpContainers: make(map[string]struct{}),
tmpImages: make(map[string]struct{}),
verbose: verbose,
utilizeCache: utilizeCache,
rm: rm,
}
}

View File

@@ -99,7 +99,7 @@ func Changes(layers []string, rw string) ([]Change, error) {
changes = append(changes, change)
return nil
})
if err != nil {
if err != nil && !os.IsNotExist(err) {
return nil, err
}
return changes, nil

File diff suppressed because it is too large Load Diff

View File

@@ -1,380 +0,0 @@
package docker
import (
"bufio"
"fmt"
"github.com/dotcloud/docker/utils"
"io"
"io/ioutil"
"strings"
"testing"
"time"
)
func closeWrap(args ...io.Closer) error {
e := false
ret := fmt.Errorf("Error closing elements")
for _, c := range args {
if err := c.Close(); err != nil {
e = true
ret = fmt.Errorf("%s\n%s", ret, err)
}
}
if e {
return ret
}
return nil
}
func setTimeout(t *testing.T, msg string, d time.Duration, f func()) {
c := make(chan bool)
// Make sure we are not too long
go func() {
time.Sleep(d)
c <- true
}()
go func() {
f()
c <- false
}()
if <-c && msg != "" {
t.Fatal(msg)
}
}
func assertPipe(input, output string, r io.Reader, w io.Writer, count int) error {
for i := 0; i < count; i++ {
if _, err := w.Write([]byte(input)); err != nil {
return err
}
o, err := bufio.NewReader(r).ReadString('\n')
if err != nil {
return err
}
if strings.Trim(o, " \r\n") != output {
return fmt.Errorf("Unexpected output. Expected [%s], received [%s]", output, o)
}
}
return nil
}
// TestRunHostname checks that 'docker run -h' correctly sets a custom hostname
func TestRunHostname(t *testing.T) {
stdout, stdoutPipe := io.Pipe()
cli := NewDockerCli(nil, stdoutPipe, ioutil.Discard, testDaemonProto, testDaemonAddr)
defer cleanup(globalRuntime)
c := make(chan struct{})
go func() {
defer close(c)
if err := cli.CmdRun("-h", "foobar", unitTestImageID, "hostname"); err != nil {
t.Fatal(err)
}
}()
setTimeout(t, "Reading command output time out", 2*time.Second, func() {
cmdOutput, err := bufio.NewReader(stdout).ReadString('\n')
if err != nil {
t.Fatal(err)
}
if cmdOutput != "foobar\n" {
t.Fatalf("'hostname' should display '%s', not '%s'", "foobar\n", cmdOutput)
}
})
setTimeout(t, "CmdRun timed out", 5*time.Second, func() {
<-c
})
}
func TestRunExit(t *testing.T) {
stdin, stdinPipe := io.Pipe()
stdout, stdoutPipe := io.Pipe()
cli := NewDockerCli(stdin, stdoutPipe, ioutil.Discard, testDaemonProto, testDaemonAddr)
defer cleanup(globalRuntime)
c1 := make(chan struct{})
go func() {
cli.CmdRun("-i", unitTestImageID, "/bin/cat")
close(c1)
}()
setTimeout(t, "Read/Write assertion timed out", 2*time.Second, func() {
if err := assertPipe("hello\n", "hello", stdout, stdinPipe, 15); err != nil {
t.Fatal(err)
}
})
container := globalRuntime.List()[0]
// Closing /bin/cat stdin, expect it to exit
if err := stdin.Close(); err != nil {
t.Fatal(err)
}
// as the process exited, CmdRun must finish and unblock. Wait for it
setTimeout(t, "Waiting for CmdRun timed out", 10*time.Second, func() {
<-c1
go func() {
cli.CmdWait(container.ID)
}()
if _, err := bufio.NewReader(stdout).ReadString('\n'); err != nil {
t.Fatal(err)
}
})
// Make sure that the client has been disconnected
setTimeout(t, "The client should have been disconnected once the remote process exited.", 2*time.Second, func() {
// Expecting pipe i/o error, just check that read does not block
stdin.Read([]byte{})
})
// Cleanup pipes
if err := closeWrap(stdin, stdinPipe, stdout, stdoutPipe); err != nil {
t.Fatal(err)
}
}
// Expected behaviour: the process dies when the client disconnects
func TestRunDisconnect(t *testing.T) {
stdin, stdinPipe := io.Pipe()
stdout, stdoutPipe := io.Pipe()
cli := NewDockerCli(stdin, stdoutPipe, ioutil.Discard, testDaemonProto, testDaemonAddr)
defer cleanup(globalRuntime)
c1 := make(chan struct{})
go func() {
// We're simulating a disconnect so the return value doesn't matter. What matters is the
// fact that CmdRun returns.
cli.CmdRun("-i", unitTestImageID, "/bin/cat")
close(c1)
}()
setTimeout(t, "Read/Write assertion timed out", 2*time.Second, func() {
if err := assertPipe("hello\n", "hello", stdout, stdinPipe, 15); err != nil {
t.Fatal(err)
}
})
// Close pipes (simulate disconnect)
if err := closeWrap(stdin, stdinPipe, stdout, stdoutPipe); err != nil {
t.Fatal(err)
}
// as the pipes are close, we expect the process to die,
// therefore CmdRun to unblock. Wait for CmdRun
setTimeout(t, "Waiting for CmdRun timed out", 2*time.Second, func() {
<-c1
})
// Client disconnect after run -i should cause stdin to be closed, which should
// cause /bin/cat to exit.
setTimeout(t, "Waiting for /bin/cat to exit timed out", 2*time.Second, func() {
container := globalRuntime.List()[0]
container.Wait()
if container.State.Running {
t.Fatalf("/bin/cat is still running after closing stdin")
}
})
}
// Expected behaviour: the process dies when the client disconnects
func TestRunDisconnectTty(t *testing.T) {
stdin, stdinPipe := io.Pipe()
stdout, stdoutPipe := io.Pipe()
cli := NewDockerCli(stdin, stdoutPipe, ioutil.Discard, testDaemonProto, testDaemonAddr)
defer cleanup(globalRuntime)
c1 := make(chan struct{})
go func() {
// We're simulating a disconnect so the return value doesn't matter. What matters is the
// fact that CmdRun returns.
if err := cli.CmdRun("-i", "-t", unitTestImageID, "/bin/cat"); err != nil {
utils.Debugf("Error CmdRun: %s\n", err)
}
close(c1)
}()
setTimeout(t, "Waiting for the container to be started timed out", 10*time.Second, func() {
for {
// Client disconnect after run -i should keep stdin out in TTY mode
l := globalRuntime.List()
if len(l) == 1 && l[0].State.Running {
break
}
time.Sleep(10 * time.Millisecond)
}
})
// Client disconnect after run -i should keep stdin out in TTY mode
container := globalRuntime.List()[0]
setTimeout(t, "Read/Write assertion timed out", 2000*time.Second, func() {
if err := assertPipe("hello\n", "hello", stdout, stdinPipe, 15); err != nil {
t.Fatal(err)
}
})
// Close pipes (simulate disconnect)
if err := closeWrap(stdin, stdinPipe, stdout, stdoutPipe); err != nil {
t.Fatal(err)
}
// In tty mode, we expect the process to stay alive even after client's stdin closes.
// Do not wait for run to finish
// Give some time to monitor to do his thing
container.WaitTimeout(500 * time.Millisecond)
if !container.State.Running {
t.Fatalf("/bin/cat should still be running after closing stdin (tty mode)")
}
}
// TestAttachStdin checks attaching to stdin without stdout and stderr.
// 'docker run -i -a stdin' should sends the client's stdin to the command,
// then detach from it and print the container id.
func TestRunAttachStdin(t *testing.T) {
stdin, stdinPipe := io.Pipe()
stdout, stdoutPipe := io.Pipe()
cli := NewDockerCli(stdin, stdoutPipe, ioutil.Discard, testDaemonProto, testDaemonAddr)
defer cleanup(globalRuntime)
ch := make(chan struct{})
go func() {
defer close(ch)
cli.CmdRun("-i", "-a", "stdin", unitTestImageID, "sh", "-c", "echo hello && cat")
}()
// Send input to the command, close stdin
setTimeout(t, "Write timed out", 10*time.Second, func() {
if _, err := stdinPipe.Write([]byte("hi there\n")); err != nil {
t.Fatal(err)
}
if err := stdinPipe.Close(); err != nil {
t.Fatal(err)
}
})
container := globalRuntime.List()[0]
// Check output
setTimeout(t, "Reading command output time out", 10*time.Second, func() {
cmdOutput, err := bufio.NewReader(stdout).ReadString('\n')
if err != nil {
t.Fatal(err)
}
if cmdOutput != container.ShortID()+"\n" {
t.Fatalf("Wrong output: should be '%s', not '%s'\n", container.ShortID()+"\n", cmdOutput)
}
})
// wait for CmdRun to return
setTimeout(t, "Waiting for CmdRun timed out", 5*time.Second, func() {
// Unblock hijack end
stdout.Read([]byte{})
<-ch
})
setTimeout(t, "Waiting for command to exit timed out", 5*time.Second, func() {
container.Wait()
})
// Check logs
if cmdLogs, err := container.ReadLog("json"); err != nil {
t.Fatal(err)
} else {
if output, err := ioutil.ReadAll(cmdLogs); err != nil {
t.Fatal(err)
} else {
expectedLogs := []string{"{\"log\":\"hello\\n\",\"stream\":\"stdout\"", "{\"log\":\"hi there\\n\",\"stream\":\"stdout\""}
for _, expectedLog := range expectedLogs {
if !strings.Contains(string(output), expectedLog) {
t.Fatalf("Unexpected logs: should contains '%s', it is not '%s'\n", expectedLog, output)
}
}
}
}
}
// Expected behaviour, the process stays alive when the client disconnects
func TestAttachDisconnect(t *testing.T) {
stdin, stdinPipe := io.Pipe()
stdout, stdoutPipe := io.Pipe()
cli := NewDockerCli(stdin, stdoutPipe, ioutil.Discard, testDaemonProto, testDaemonAddr)
defer cleanup(globalRuntime)
go func() {
// Start a process in daemon mode
if err := cli.CmdRun("-d", "-i", unitTestImageID, "/bin/cat"); err != nil {
utils.Debugf("Error CmdRun: %s\n", err)
}
}()
setTimeout(t, "Waiting for CmdRun timed out", 10*time.Second, func() {
if _, err := bufio.NewReader(stdout).ReadString('\n'); err != nil {
t.Fatal(err)
}
})
setTimeout(t, "Waiting for the container to be started timed out", 10*time.Second, func() {
for {
l := globalRuntime.List()
if len(l) == 1 && l[0].State.Running {
break
}
time.Sleep(10 * time.Millisecond)
}
})
container := globalRuntime.List()[0]
// Attach to it
c1 := make(chan struct{})
go func() {
// We're simulating a disconnect so the return value doesn't matter. What matters is the
// fact that CmdAttach returns.
cli.CmdAttach(container.ID)
close(c1)
}()
setTimeout(t, "First read/write assertion timed out", 2*time.Second, func() {
if err := assertPipe("hello\n", "hello", stdout, stdinPipe, 15); err != nil {
t.Fatal(err)
}
})
// Close pipes (client disconnects)
if err := closeWrap(stdin, stdinPipe, stdout, stdoutPipe); err != nil {
t.Fatal(err)
}
// Wait for attach to finish, the client disconnected, therefore, Attach finished his job
setTimeout(t, "Waiting for CmdAttach timed out", 2*time.Second, func() {
<-c1
})
// We closed stdin, expect /bin/cat to still be running
// Wait a little bit to make sure container.monitor() did his thing
err := container.WaitTimeout(500 * time.Millisecond)
if err == nil || !container.State.Running {
t.Fatalf("/bin/cat is not running after closing stdin")
}
// Try to avoid the timeoout in destroy. Best effort, don't check error
cStdin, _ := container.StdinPipe()
cStdin.Close()
container.Wait()
}

41
config.go Normal file
View File

@@ -0,0 +1,41 @@
package docker
import (
"github.com/dotcloud/docker/engine"
"net"
)
// FIXME: separate runtime configuration from http api configuration
type DaemonConfig struct {
Pidfile string
Root string
AutoRestart bool
EnableCors bool
Dns []string
EnableIptables bool
BridgeIface string
DefaultIp net.IP
InterContainerCommunication bool
}
// ConfigFromJob creates and returns a new DaemonConfig object
// by parsing the contents of a job's environment.
func ConfigFromJob(job *engine.Job) *DaemonConfig {
var config DaemonConfig
config.Pidfile = job.Getenv("Pidfile")
config.Root = job.Getenv("Root")
config.AutoRestart = job.GetenvBool("AutoRestart")
config.EnableCors = job.GetenvBool("EnableCors")
if dns := job.Getenv("Dns"); dns != "" {
config.Dns = []string{dns}
}
config.EnableIptables = job.GetenvBool("EnableIptables")
if br := job.Getenv("BridgeIface"); br != "" {
config.BridgeIface = br
} else {
config.BridgeIface = DefaultNetworkBridge
}
config.DefaultIp = net.ParseIP(job.Getenv("DefaultIp"))
config.InterContainerCommunication = job.GetenvBool("InterContainerCommunication")
return &config
}

149
config_test.go Normal file
View File

@@ -0,0 +1,149 @@
package docker
import (
"testing"
)
func TestCompareConfig(t *testing.T) {
volumes1 := make(map[string]struct{})
volumes1["/test1"] = struct{}{}
config1 := Config{
Dns: []string{"1.1.1.1", "2.2.2.2"},
PortSpecs: []string{"1111:1111", "2222:2222"},
Env: []string{"VAR1=1", "VAR2=2"},
VolumesFrom: "11111111",
Volumes: volumes1,
}
config2 := Config{
Dns: []string{"0.0.0.0", "2.2.2.2"},
PortSpecs: []string{"1111:1111", "2222:2222"},
Env: []string{"VAR1=1", "VAR2=2"},
VolumesFrom: "11111111",
Volumes: volumes1,
}
config3 := Config{
Dns: []string{"1.1.1.1", "2.2.2.2"},
PortSpecs: []string{"0000:0000", "2222:2222"},
Env: []string{"VAR1=1", "VAR2=2"},
VolumesFrom: "11111111",
Volumes: volumes1,
}
config4 := Config{
Dns: []string{"1.1.1.1", "2.2.2.2"},
PortSpecs: []string{"0000:0000", "2222:2222"},
Env: []string{"VAR1=1", "VAR2=2"},
VolumesFrom: "22222222",
Volumes: volumes1,
}
volumes2 := make(map[string]struct{})
volumes2["/test2"] = struct{}{}
config5 := Config{
Dns: []string{"1.1.1.1", "2.2.2.2"},
PortSpecs: []string{"0000:0000", "2222:2222"},
Env: []string{"VAR1=1", "VAR2=2"},
VolumesFrom: "11111111",
Volumes: volumes2,
}
if CompareConfig(&config1, &config2) {
t.Fatalf("CompareConfig should return false, Dns are different")
}
if CompareConfig(&config1, &config3) {
t.Fatalf("CompareConfig should return false, PortSpecs are different")
}
if CompareConfig(&config1, &config4) {
t.Fatalf("CompareConfig should return false, VolumesFrom are different")
}
if CompareConfig(&config1, &config5) {
t.Fatalf("CompareConfig should return false, Volumes are different")
}
if !CompareConfig(&config1, &config1) {
t.Fatalf("CompareConfig should return true")
}
}
func TestMergeConfig(t *testing.T) {
volumesImage := make(map[string]struct{})
volumesImage["/test1"] = struct{}{}
volumesImage["/test2"] = struct{}{}
configImage := &Config{
Dns: []string{"1.1.1.1", "2.2.2.2"},
PortSpecs: []string{"1111:1111", "2222:2222"},
Env: []string{"VAR1=1", "VAR2=2"},
VolumesFrom: "1111",
Volumes: volumesImage,
}
volumesUser := make(map[string]struct{})
volumesUser["/test3"] = struct{}{}
configUser := &Config{
Dns: []string{"3.3.3.3"},
PortSpecs: []string{"3333:2222", "3333:3333"},
Env: []string{"VAR2=3", "VAR3=3"},
Volumes: volumesUser,
}
if err := MergeConfig(configUser, configImage); err != nil {
t.Error(err)
}
if len(configUser.Dns) != 3 {
t.Fatalf("Expected 3 dns, 1.1.1.1, 2.2.2.2 and 3.3.3.3, found %d", len(configUser.Dns))
}
for _, dns := range configUser.Dns {
if dns != "1.1.1.1" && dns != "2.2.2.2" && dns != "3.3.3.3" {
t.Fatalf("Expected 1.1.1.1 or 2.2.2.2 or 3.3.3.3, found %s", dns)
}
}
if len(configUser.ExposedPorts) != 3 {
t.Fatalf("Expected 3 ExposedPorts, 1111, 2222 and 3333, found %d", len(configUser.ExposedPorts))
}
for portSpecs := range configUser.ExposedPorts {
if portSpecs.Port() != "1111" && portSpecs.Port() != "2222" && portSpecs.Port() != "3333" {
t.Fatalf("Expected 1111 or 2222 or 3333, found %s", portSpecs)
}
}
if len(configUser.Env) != 3 {
t.Fatalf("Expected 3 env var, VAR1=1, VAR2=3 and VAR3=3, found %d", len(configUser.Env))
}
for _, env := range configUser.Env {
if env != "VAR1=1" && env != "VAR2=3" && env != "VAR3=3" {
t.Fatalf("Expected VAR1=1 or VAR2=3 or VAR3=3, found %s", env)
}
}
if len(configUser.Volumes) != 3 {
t.Fatalf("Expected 3 volumes, /test1, /test2 and /test3, found %d", len(configUser.Volumes))
}
for v := range configUser.Volumes {
if v != "/test1" && v != "/test2" && v != "/test3" {
t.Fatalf("Expected /test1 or /test2 or /test3, found %s", v)
}
}
if configUser.VolumesFrom != "1111" {
t.Fatalf("Expected VolumesFrom to be 1111, found %s", configUser.VolumesFrom)
}
ports, _, err := parsePortSpecs([]string{"0000"})
if err != nil {
t.Error(err)
}
configImage2 := &Config{
ExposedPorts: ports,
}
if err := MergeConfig(configUser, configImage2); err != nil {
t.Error(err)
}
if len(configUser.ExposedPorts) != 4 {
t.Fatalf("Expected 4 ExposedPorts, 0000, 1111, 2222 and 3333, found %d", len(configUser.ExposedPorts))
}
for portSpecs := range configUser.ExposedPorts {
if portSpecs.Port() != "0000" && portSpecs.Port() != "1111" && portSpecs.Port() != "2222" && portSpecs.Port() != "3333" {
t.Fatalf("Expected 0000 or 1111 or 2222 or 3333, found %s", portSpecs)
}
}
}

File diff suppressed because it is too large Load Diff

161
container_unit_test.go Normal file
View File

@@ -0,0 +1,161 @@
package docker
import (
"testing"
)
func TestParseLxcConfOpt(t *testing.T) {
opts := []string{"lxc.utsname=docker", "lxc.utsname = docker "}
for _, o := range opts {
k, v, err := parseLxcOpt(o)
if err != nil {
t.FailNow()
}
if k != "lxc.utsname" {
t.Fail()
}
if v != "docker" {
t.Fail()
}
}
}
func TestParseNetworkOptsPrivateOnly(t *testing.T) {
ports, bindings, err := parsePortSpecs([]string{"192.168.1.100::80"})
if err != nil {
t.Fatal(err)
}
if len(ports) != 1 {
t.Logf("Expected 1 got %d", len(ports))
t.FailNow()
}
if len(bindings) != 1 {
t.Logf("Expected 1 got %d", len(bindings))
t.FailNow()
}
for k := range ports {
if k.Proto() != "tcp" {
t.Logf("Expected tcp got %s", k.Proto())
t.Fail()
}
if k.Port() != "80" {
t.Logf("Expected 80 got %s", k.Port())
t.Fail()
}
b, exists := bindings[k]
if !exists {
t.Log("Binding does not exist")
t.FailNow()
}
if len(b) != 1 {
t.Logf("Expected 1 got %d", len(b))
t.FailNow()
}
s := b[0]
if s.HostPort != "" {
t.Logf("Expected \"\" got %s", s.HostPort)
t.Fail()
}
if s.HostIp != "192.168.1.100" {
t.Fail()
}
}
}
func TestParseNetworkOptsPublic(t *testing.T) {
ports, bindings, err := parsePortSpecs([]string{"192.168.1.100:8080:80"})
if err != nil {
t.Fatal(err)
}
if len(ports) != 1 {
t.Logf("Expected 1 got %d", len(ports))
t.FailNow()
}
if len(bindings) != 1 {
t.Logf("Expected 1 got %d", len(bindings))
t.FailNow()
}
for k := range ports {
if k.Proto() != "tcp" {
t.Logf("Expected tcp got %s", k.Proto())
t.Fail()
}
if k.Port() != "80" {
t.Logf("Expected 80 got %s", k.Port())
t.Fail()
}
b, exists := bindings[k]
if !exists {
t.Log("Binding does not exist")
t.FailNow()
}
if len(b) != 1 {
t.Logf("Expected 1 got %d", len(b))
t.FailNow()
}
s := b[0]
if s.HostPort != "8080" {
t.Logf("Expected 8080 got %s", s.HostPort)
t.Fail()
}
if s.HostIp != "192.168.1.100" {
t.Fail()
}
}
}
func TestParseNetworkOptsUdp(t *testing.T) {
ports, bindings, err := parsePortSpecs([]string{"192.168.1.100::6000/udp"})
if err != nil {
t.Fatal(err)
}
if len(ports) != 1 {
t.Logf("Expected 1 got %d", len(ports))
t.FailNow()
}
if len(bindings) != 1 {
t.Logf("Expected 1 got %d", len(bindings))
t.FailNow()
}
for k := range ports {
if k.Proto() != "udp" {
t.Logf("Expected udp got %s", k.Proto())
t.Fail()
}
if k.Port() != "6000" {
t.Logf("Expected 6000 got %s", k.Port())
t.Fail()
}
b, exists := bindings[k]
if !exists {
t.Log("Binding does not exist")
t.FailNow()
}
if len(b) != 1 {
t.Logf("Expected 1 got %d", len(b))
t.FailNow()
}
s := b[0]
if s.HostPort != "" {
t.Logf("Expected \"\" got %s", s.HostPort)
t.Fail()
}
if s.HostIp != "192.168.1.100" {
t.Fail()
}
}
}
func TestGetFullName(t *testing.T) {
name, err := getFullName("testing")
if err != nil {
t.Fatal(err)
}
if name != "/testing" {
t.Fatalf("Expected /testing got %s", name)
}
if _, err := getFullName(""); err == nil {
t.Fatal("Error should not be nil")
}
}

View File

@@ -0,0 +1,23 @@
# [PackageDev] target_format: plist, ext: tmLanguage
---
name: Dockerfile
scopeName: source.dockerfile
uuid: a39d8795-59d2-49af-aa00-fe74ee29576e
patterns:
# Keywords
- name: keyword.control.dockerfile
match: ^\s*(FROM|MAINTAINER|RUN|CMD|EXPOSE|ENV|ADD)\s
- name: keyword.operator.dockerfile
match: ^\s*(ENTRYPOINT|VOLUME|USER|WORKDIR)\s
# String
- name: string.quoted.double.dockerfile
begin: "\""
end: "\""
patterns:
- name: constant.character.escaped.dockerfile
match: \\.
# Comment
- name: comment.block.dockerfile
match: ^\s*#.*$
...

View File

@@ -0,0 +1,50 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>name</key>
<string>Dockerfile</string>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>^\s*(FROM|MAINTAINER|RUN|CMD|EXPOSE|ENV|ADD)\s</string>
<key>name</key>
<string>keyword.control.dockerfile</string>
</dict>
<dict>
<key>match</key>
<string>^\s*(ENTRYPOINT|VOLUME|USER|WORKDIR)\s</string>
<key>name</key>
<string>keyword.operator.dockerfile</string>
</dict>
<dict>
<key>begin</key>
<string>"</string>
<key>end</key>
<string>"</string>
<key>name</key>
<string>string.quoted.double.dockerfile</string>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>\\.</string>
<key>name</key>
<string>constant.character.escaped.dockerfile</string>
</dict>
</array>
</dict>
<dict>
<key>match</key>
<string>^\s*#.*$</string>
<key>name</key>
<string>comment.block.dockerfile</string>
</dict>
</array>
<key>scopeName</key>
<string>source.dockerfile</string>
<key>uuid</key>
<string>a39d8795-59d2-49af-aa00-fe74ee29576e</string>
</dict>
</plist>

View File

@@ -0,0 +1 @@
Asbjorn Enge <asbjorn@hanafjedle.net> (@asbjornenge)

View File

@@ -0,0 +1,9 @@
# Dockerfile.tmLanguage
Pretty basic Dockerfile.tmLanguage for Sublime Text syntax highlighting.
PR's with syntax updates, suggestions etc. are all very much appreciated!
I'll get to making this installable via Package Control soon!
enjoy.

View File

@@ -1 +1 @@
# Maintainer wanted! Enroll on #docker@freenode
Tianon Gravi <admwiggin@gmail.com> (@tianon)

543
contrib/completion/bash/docker Executable file
View File

@@ -0,0 +1,543 @@
#!bash
#
# bash completion file for core docker commands
#
# This script provides supports completion of:
# - commands and their options
# - container ids
# - image repos and tags
# - filepaths
#
# To enable the completions either:
# - place this file in /etc/bash_completion.d
# or
# - copy this file and add the line below to your .bashrc after
# bash completion features are loaded
# . docker.bash
#
# Note:
# Currently, the completions will not work if the docker daemon is not
# bound to the default communication port/socket
# If the docker daemon is using a unix socket for communication your user
# must have access to the socket for the completions to function correctly
__docker_containers_all()
{
local containers
containers="$( docker ps -a -q )"
COMPREPLY=( $( compgen -W "$containers" -- "$cur" ) )
}
__docker_containers_running()
{
local containers
containers="$( docker ps -q )"
COMPREPLY=( $( compgen -W "$containers" -- "$cur" ) )
}
__docker_containers_stopped()
{
local containers
containers="$( comm -13 <(docker ps -q | sort -u) <(docker ps -a -q | sort -u) )"
COMPREPLY=( $( compgen -W "$containers" -- "$cur" ) )
}
__docker_image_repos()
{
local repos
repos="$( docker images | awk 'NR>1{print $1}' )"
COMPREPLY=( $( compgen -W "$repos" -- "$cur" ) )
}
__docker_images()
{
local images
images="$( docker images | awk 'NR>1{print $1":"$2}' )"
COMPREPLY=( $( compgen -W "$images" -- "$cur" ) )
__ltrim_colon_completions "$cur"
}
__docker_image_repos_and_tags()
{
local repos images
repos="$( docker images | awk 'NR>1{print $1}' )"
images="$( docker images | awk 'NR>1{print $1":"$2}' )"
COMPREPLY=( $( compgen -W "$repos $images" -- "$cur" ) )
__ltrim_colon_completions "$cur"
}
__docker_containers_and_images()
{
local containers images
containers="$( docker ps -a -q )"
images="$( docker images | awk 'NR>1{print $1":"$2}' )"
COMPREPLY=( $( compgen -W "$images $containers" -- "$cur" ) )
__ltrim_colon_completions "$cur"
}
_docker_docker()
{
case "$prev" in
-H)
return
;;
*)
;;
esac
case "$cur" in
-*)
COMPREPLY=( $( compgen -W "-H" -- "$cur" ) )
;;
*)
COMPREPLY=( $( compgen -W "$commands help" -- "$cur" ) )
;;
esac
}
_docker_attach()
{
if [ $cpos -eq $cword ]; then
__docker_containers_running
fi
}
_docker_build()
{
case "$prev" in
-t)
return
;;
*)
;;
esac
case "$cur" in
-*)
COMPREPLY=( $( compgen -W "-no-cache -t -q -rm" -- "$cur" ) )
;;
*)
_filedir
;;
esac
}
_docker_commit()
{
case "$prev" in
-author|-m|-run)
return
;;
*)
;;
esac
case "$cur" in
-*)
COMPREPLY=( $( compgen -W "-author -m -run" -- "$cur" ) )
;;
*)
local counter=$cpos
while [ $counter -le $cword ]; do
case "${words[$counter]}" in
-author|-m|-run)
(( counter++ ))
;;
-*)
;;
*)
break
;;
esac
(( counter++ ))
done
if [ $counter -eq $cword ]; then
__docker_containers_all
fi
;;
esac
}
_docker_cp()
{
if [ $cpos -eq $cword ]; then
__docker_containers_all
else
_filedir
fi
}
_docker_diff()
{
if [ $cpos -eq $cword ]; then
__docker_containers_all
fi
}
_docker_events()
{
case "$prev" in
-since)
return
;;
*)
;;
esac
case "$cur" in
-*)
COMPREPLY=( $( compgen -W "-since" -- "$cur" ) )
;;
*)
;;
esac
}
_docker_export()
{
if [ $cpos -eq $cword ]; then
__docker_containers_all
fi
}
_docker_help()
{
if [ $cpos -eq $cword ]; then
COMPREPLY=( $( compgen -W "$commands" -- "$cur" ) )
fi
}
_docker_history()
{
if [ $cpos -eq $cword ]; then
__docker_image_repos_and_tags
fi
}
_docker_images()
{
case "$cur" in
-*)
COMPREPLY=( $( compgen -W "-a -notrunc -q -viz" -- "$cur" ) )
;;
*)
local counter=$cpos
while [ $counter -le $cword ]; do
case "${words[$counter]}" in
-*)
;;
*)
break
;;
esac
(( counter++ ))
done
if [ $counter -eq $cword ]; then
__docker_image_repos
fi
;;
esac
}
_docker_import()
{
return
}
_docker_info()
{
return
}
_docker_insert()
{
if [ $cpos -eq $cword ]; then
__docker_image_repos_and_tags
fi
}
_docker_inspect()
{
__docker_containers_and_images
}
_docker_kill()
{
__docker_containers_running
}
_docker_login()
{
case "$prev" in
-e|-p|-u)
return
;;
*)
;;
esac
case "$cur" in
-*)
COMPREPLY=( $( compgen -W "-e -p -u" -- "$cur" ) )
;;
*)
;;
esac
}
_docker_logs()
{
if [ $cpos -eq $cword ]; then
__docker_containers_all
fi
}
_docker_port()
{
if [ $cpos -eq $cword ]; then
__docker_containers_all
fi
}
_docker_ps()
{
case "$prev" in
-beforeId|-n|-sinceId)
return
;;
*)
;;
esac
case "$cur" in
-*)
COMPREPLY=( $( compgen -W "-a -beforeId -l -n -notrunc -q -s -sinceId" -- "$cur" ) )
;;
*)
;;
esac
}
_docker_pull()
{
case "$prev" in
-t)
return
;;
*)
;;
esac
case "$cur" in
-*)
COMPREPLY=( $( compgen -W "-t" -- "$cur" ) )
;;
*)
;;
esac
}
_docker_push()
{
__docker_image_repos
}
_docker_restart()
{
case "$prev" in
-t)
return
;;
*)
;;
esac
case "$cur" in
-*)
COMPREPLY=( $( compgen -W "-t" -- "$cur" ) )
;;
*)
__docker_containers_all
;;
esac
}
_docker_rm()
{
case "$cur" in
-*)
COMPREPLY=( $( compgen -W "-v" -- "$cur" ) )
;;
*)
__docker_containers_stopped
;;
esac
}
_docker_rmi()
{
__docker_image_repos_and_tags
}
_docker_run()
{
case "$prev" in
-cidfile)
_filedir
;;
-volumes-from)
__docker_containers_all
;;
-a|-c|-dns|-e|-entrypoint|-h|-lxc-conf|-m|-p|-u|-v|-w)
return
;;
*)
;;
esac
case "$cur" in
-*)
COMPREPLY=( $( compgen -W "-a -c -cidfile -d -dns -e -entrypoint -h -i -lxc-conf -m -n -p -privileged -t -u -v -volumes-from -w" -- "$cur" ) )
;;
*)
local counter=$cpos
while [ $counter -le $cword ]; do
case "${words[$counter]}" in
-a|-c|-cidfile|-dns|-e|-entrypoint|-h|-lxc-conf|-m|-p|-u|-v|-volumes-from|-w)
(( counter++ ))
;;
-*)
;;
*)
break
;;
esac
(( counter++ ))
done
if [ $counter -eq $cword ]; then
__docker_image_repos_and_tags
fi
;;
esac
}
_docker_search()
{
COMPREPLY=( $( compgen -W "-notrunc" "-stars" "-trusted" -- "$cur" ) )
}
_docker_start()
{
__docker_containers_stopped
}
_docker_stop()
{
case "$prev" in
-t)
return
;;
*)
;;
esac
case "$cur" in
-*)
COMPREPLY=( $( compgen -W "-t" -- "$cur" ) )
;;
*)
__docker_containers_running
;;
esac
}
_docker_tag()
{
COMPREPLY=( $( compgen -W "-f" -- "$cur" ) )
}
_docker_top()
{
if [ $cpos -eq $cword ]; then
__docker_containers_running
fi
}
_docker_version()
{
return
}
_docker_wait()
{
__docker_containers_all
}
_docker()
{
local cur prev words cword command="docker" counter=1 word cpos
local commands="
attach
build
commit
cp
diff
events
export
history
images
import
info
insert
inspect
kill
login
logs
port
ps
pull
push
restart
rm
rmi
run
search
start
stop
tag
top
version
wait
"
COMPREPLY=()
_get_comp_words_by_ref -n : cur prev words cword
while [ $counter -lt $cword ]; do
word="${words[$counter]}"
case "$word" in
-H)
(( counter++ ))
;;
-*)
;;
*)
command="$word"
cpos=$counter
(( cpos++ ))
break
;;
esac
(( counter++ ))
done
local completions_func=_docker_${command}
declare -F $completions_func >/dev/null && $completions_func
return 0
}
complete -F _docker docker

242
contrib/completion/zsh/_docker Executable file
View File

@@ -0,0 +1,242 @@
#compdef docker
#
# zsh completion for docker (http://docker.io)
#
# version: 0.2.2
# author: Felix Riedel
# license: BSD License
# github: https://github.com/felixr/docker-zsh-completion
#
__parse_docker_list() {
sed -e '/^ID/d' -e 's/[ ]\{2,\}/|/g' -e 's/ \([hdwm]\)\(inutes\|ays\|ours\|eeks\)/\1/' | awk ' BEGIN {FS="|"} { printf("%s:%7s, %s\n", $1, $4, $2)}'
}
__docker_stoppedcontainers() {
local expl
declare -a stoppedcontainers
stoppedcontainers=(${(f)"$(docker ps -a | grep --color=never 'Exit' | __parse_docker_list )"})
_describe -t containers-stopped "Stopped Containers" stoppedcontainers
}
__docker_runningcontainers() {
local expl
declare -a containers
containers=(${(f)"$(docker ps | __parse_docker_list)"})
_describe -t containers-active "Running Containers" containers
}
__docker_containers () {
__docker_stoppedcontainers
__docker_runningcontainers
}
__docker_images () {
local expl
declare -a images
images=(${(f)"$(docker images | awk '(NR > 1){printf("%s\\:%s\n", $1,$2)}')"})
images=($images ${(f)"$(docker images | awk '(NR > 1){printf("%s:%-15s in %s\n", $3,$2,$1)}')"})
_describe -t docker-images "Images" images
}
__docker_tags() {
local expl
declare -a tags
tags=(${(f)"$(docker images | awk '(NR>1){print $2}'| sort | uniq)"})
_describe -t docker-tags "tags" tags
}
__docker_search() {
# declare -a dockersearch
local cache_policy
zstyle -s ":completion:${curcontext}:" cache-policy cache_policy
if [[ -z "$cache_policy" ]]; then
zstyle ":completion:${curcontext}:" cache-policy __docker_caching_policy
fi
local searchterm cachename
searchterm="${words[$CURRENT]%/}"
cachename=_docker-search-$searchterm
local expl
local -a result
if ( [[ ${(P)+cachename} -eq 0 ]] || _cache_invalid ${cachename#_} ) \
&& ! _retrieve_cache ${cachename#_}; then
_message "Searching for ${searchterm}..."
result=(${(f)"$(docker search ${searchterm} | awk '(NR>2){print $1}')"})
_store_cache ${cachename#_} result
fi
_wanted dockersearch expl 'Available images' compadd -a result
}
__docker_caching_policy()
{
# oldp=( "$1"(Nmh+24) ) # 24 hour
oldp=( "$1"(Nmh+1) ) # 24 hour
(( $#oldp ))
}
__docker_repositories () {
local expl
declare -a repos
repos=(${(f)"$(docker images | sed -e '1d' -e 's/[ ].*//' | sort | uniq)"})
_describe -t docker-repos "Repositories" repos
}
__docker_commands () {
# local -a _docker_subcommands
local cache_policy
zstyle -s ":completion:${curcontext}:" cache-policy cache_policy
if [[ -z "$cache_policy" ]]; then
zstyle ":completion:${curcontext}:" cache-policy __docker_caching_policy
fi
if ( [[ ${+_docker_subcommands} -eq 0 ]] || _cache_invalid docker_subcommands) \
&& ! _retrieve_cache docker_subcommands;
then
_docker_subcommands=(${${(f)"$(_call_program commands
docker 2>&1 | sed -e '1,6d' -e '/^[ ]*$/d' -e 's/[ ]*\([^ ]\+\)\s*\([^ ].*\)/\1:\2/' )"}})
_docker_subcommands=($_docker_subcommands 'help:Show help for a command')
_store_cache docker_subcommands _docker_subcommands
fi
_describe -t docker-commands "docker command" _docker_subcommands
}
__docker_subcommand () {
local -a _command_args
case "$words[1]" in
(attach|wait)
_arguments ':containers:__docker_runningcontainers'
;;
(build)
_arguments \
'-t=-:repository:__docker_repositories' \
':path or URL:_directories'
;;
(commit)
_arguments \
':container:__docker_containers' \
':repository:__docker_repositories' \
':tag: '
;;
(diff|export|logs)
_arguments '*:containers:__docker_containers'
;;
(history)
_arguments '*:images:__docker_images'
;;
(images)
_arguments \
'-a[Show all images]' \
':repository:__docker_repositories'
;;
(inspect)
_arguments '*:containers:__docker_containers'
;;
(history)
_arguments ':images:__docker_images'
;;
(insert)
_arguments '1:containers:__docker_containers' \
'2:URL:(http:// file://)' \
'3:file:_files'
;;
(kill)
_arguments '*:containers:__docker_runningcontainers'
;;
(port)
_arguments '1:containers:__docker_runningcontainers'
;;
(start)
_arguments '*:containers:__docker_stoppedcontainers'
;;
(rm)
_arguments '-v[Remove the volumes associated to the container]' \
'*:containers:__docker_stoppedcontainers'
;;
(rmi)
_arguments '-v[Remove the volumes associated to the container]' \
'*:images:__docker_images'
;;
(top)
_arguments '1:containers:__docker_runningcontainers'
;;
(restart|stop)
_arguments '-t=-[Number of seconds to try to stop for before killing the container]:seconds to before killing:(1 5 10 30 60)' \
'*:containers:__docker_runningcontainers'
;;
(top)
_arguments ':containers:__docker_runningcontainers'
;;
(ps)
_arguments '-a[Show all containers. Only running containers are shown by default]' \
'-h[Show help]' \
'-beforeId=-[Show only container created before Id, include non-running one]:containers:__docker_containers' \
'-n=-[Show n last created containers, include non-running one]:n:(1 5 10 25 50)'
;;
(tag)
_arguments \
'-f[force]'\
':image:__docker_images'\
':repository:__docker_repositories' \
':tag:__docker_tags'
;;
(run)
_arguments \
'-a=-[Attach to stdin, stdout or stderr]:toggle:(true false)' \
'-c=-[CPU shares (relative weight)]:CPU shares: ' \
'-d[Detached mode: leave the container running in the background]' \
'*-dns=[Set custom dns servers]:dns server: ' \
'*-e=[Set environment variables]:environment variable: ' \
'-entrypoint=-[Overwrite the default entrypoint of the image]:entry point: ' \
'-h=-[Container host name]:hostname:_hosts' \
'-i[Keep stdin open even if not attached]' \
'-m=-[Memory limit (in bytes)]:limit: ' \
'*-p=-[Expose a container''s port to the host]:port:_ports' \
'-t=-[Allocate a pseudo-tty]:toggle:(true false)' \
'-u=-[Username or UID]:user:_users' \
'*-v=-[Bind mount a volume (e.g. from the host: -v /host:/container, from docker: -v /container)]:volume: '\
'-volumes-from=-[Mount volumes from the specified container]:volume: ' \
'(-):images:__docker_images' \
'(-):command: _command_names -e' \
'*::arguments: _normal'
;;
(pull|search)
_arguments ':name:__docker_search'
;;
(help)
_arguments ':subcommand:__docker_commands'
;;
(*)
_message 'Unknown sub command'
esac
}
_docker () {
local curcontext="$curcontext" state line
typeset -A opt_args
_arguments -C \
'-H=-[tcp://host:port to bind/connect to]:socket: ' \
'(-): :->command' \
'(-)*:: :->option-or-argument'
if (( CURRENT == 1 )); then
fi
case $state in
(command)
__docker_commands
;;
(option-or-argument)
curcontext=${curcontext%:*:*}:docker-$words[1]:
__docker_subcommand
;;
esac
}
_docker "$@"

View File

@@ -77,7 +77,7 @@ func crashTest() error {
stop = false
for i := 0; i < 100 && !stop; {
func() error {
cmd := exec.Command(DOCKERPATH, "run", "base", "echo", fmt.Sprintf("%d", totalTestCount))
cmd := exec.Command(DOCKERPATH, "run", "ubuntu", "echo", fmt.Sprintf("%d", totalTestCount))
i++
totalTestCount++
outPipe, err := cmd.StdoutPipe()

View File

@@ -0,0 +1,11 @@
Desktop Integration
===================
The ./contrib/desktop-integration contains examples of typical dockerized
desktop applications.
Examples
========
* Data container: ./data/Dockerfile creates a data image sharing /data volume
* Firefox: ./firefox/Dockerfile shows a way to dockerize a common multimedia application

View File

@@ -0,0 +1,38 @@
# VERSION: 0.1
# DESCRIPTION: Create data image sharing /data volume
# AUTHOR: Daniel Mizyrycki <daniel@dotcloud.com>
# COMMENTS:
# This image is used as base for all data containers.
# /data volume is owned by sysadmin.
# USAGE:
# # Download data Dockerfile
# wget http://raw.github.com/dotcloud/docker/master/contrib/desktop-integration/data/Dockerfile
#
# # Build data image
# docker build -t data -rm .
#
# # Create a data container. (eg: firefox-data)
# docker run -name firefox-data data true
#
# # List data from it
# docker run -volumes-from firefox-data busybox ls -al /data
docker-version 0.6.5
# Smallest base image, just to launch a container
from busybox
maintainer Daniel Mizyrycki <daniel@docker.com>
# Create a regular user
run echo 'sysadmin:x:1000:1000::/data:/bin/sh' >> /etc/passwd
run echo 'sysadmin:x:1000:' >> /etc/group
# Create directory for that user
run mkdir /data
run chown sysadmin.sysadmin /data
# Add content to /data. This will keep sysadmin ownership
run touch /data/init_volume
# Create /data volume
VOLUME /data

View File

@@ -0,0 +1,49 @@
# VERSION: 0.7
# DESCRIPTION: Create firefox container with its dependencies
# AUTHOR: Daniel Mizyrycki <daniel@dotcloud.com>
# COMMENTS:
# This file describes how to build a Firefox container with all
# dependencies installed. It uses native X11 unix socket and alsa
# sound devices. Tested on Debian 7.2
# USAGE:
# # Download Firefox Dockerfile
# wget http://raw.github.com/dotcloud/docker/master/contrib/desktop-integration/firefox/Dockerfile
#
# # Build firefox image
# docker build -t firefox -rm .
#
# # Run stateful data-on-host firefox. For ephemeral, remove -v /data/firefox:/data
# docker run -v /data/firefox:/data -v /tmp/.X11-unix:/tmp/.X11-unix \
# -v /dev/snd:/dev/snd -lxc-conf='lxc.cgroup.devices.allow = c 116:* rwm' \
# -e DISPLAY=unix$DISPLAY firefox
#
# # To run stateful dockerized data containers
# docker run -volumes-from firefox-data -v /tmp/.X11-unix:/tmp/.X11-unix \
# -v /dev/snd:/dev/snd -lxc-conf='lxc.cgroup.devices.allow = c 116:* rwm' \
# -e DISPLAY=unix$DISPLAY firefox
docker-version 0.6.5
# Base docker image
from tianon/debian:wheezy
maintainer Daniel Mizyrycki <daniel@docker.com>
# Install firefox dependencies
run echo "deb http://ftp.debian.org/debian/ wheezy main contrib" > /etc/apt/sources.list
run apt-get update
run DEBIAN_FRONTEND=noninteractive apt-get install -y libXrender1 libasound2 \
libdbus-glib-1-2 libgtk2.0-0 libpango1.0-0 libxt6 wget bzip2 sudo
# Install Firefox
run mkdir /application
run cd /application; wget -O - \
http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/25.0/linux-x86_64/en-US/firefox-25.0.tar.bz2 | tar jx
# create sysadmin account
run useradd -m -d /data -p saIVpsc0EVTwA sysadmin
run sed -Ei 's/sudo:x:27:/sudo:x:27:sysadmin/' /etc/group
run sed -Ei 's/(\%sudo\s+ALL=\(ALL\:ALL\) )ALL/\1 NOPASSWD:ALL/' /etc/sudoers
# Autorun firefox. -no-remote is necessary to create a new container, as firefox
# appears to communicate with itself through X11.
cmd ["/bin/sh", "-c", "/usr/bin/sudo -u sysadmin -H -E /application/firefox/firefox -no-remote"]

View File

@@ -0,0 +1,27 @@
#
# This Dockerfile will create an image that allows to generate upstart and
# systemd scripts (more to come)
#
# docker-version 0.6.2
#
FROM ubuntu:12.10
MAINTAINER Guillaume J. Charmes <guillaume@dotcloud.com>
RUN apt-get update && apt-get install -y wget git mercurial
# Install Go
RUN wget --no-check-certificate https://go.googlecode.com/files/go1.1.2.linux-amd64.tar.gz -O go-1.1.2.tar.gz
RUN tar -xzvf go-1.1.2.tar.gz && mv /go /goroot
RUN mkdir /go
ENV GOROOT /goroot
ENV GOPATH /go
ENV PATH $GOROOT/bin:$PATH
RUN go get github.com/dotcloud/docker && cd /go/src/github.com/dotcloud/docker && git checkout v0.6.3
ADD manager.go /manager/
RUN cd /manager && go build -o /usr/bin/manager
ENTRYPOINT ["/usr/bin/manager"]

View File

@@ -0,0 +1,4 @@
FROM busybox
MAINTAINER Guillaume J. Charmes <guillaume@dotcloud.com>
ADD manager /usr/bin/
ENTRYPOINT ["/usr/bin/manager"]

View File

@@ -0,0 +1,130 @@
package main
import (
"bytes"
"encoding/json"
"flag"
"fmt"
"github.com/dotcloud/docker"
"os"
"strings"
"text/template"
)
var templates = map[string]string{
"upstart": `description "{{.description}}"
author "{{.author}}"
start on filesystem and started lxc-net and started docker
stop on runlevel [!2345]
respawn
exec /home/vagrant/goroot/bin/docker start -a {{.container_id}}
`,
"systemd": `[Unit]
Description={{.description}}
Author={{.author}}
After=docker.service
[Service]
Restart=always
ExecStart=/usr/bin/docker start -a {{.container_id}}
ExecStop=/usr/bin/docker stop -t 2 {{.container_id}}
[Install]
WantedBy=local.target
`,
}
func main() {
// Parse command line for custom options
kind := flag.String("t", "upstart", "Type of manager requested")
author := flag.String("a", "<none>", "Author of the image")
description := flag.String("d", "<none>", "Description of the image")
flag.Usage = func() {
fmt.Fprintf(os.Stderr, "\nUsage: manager <container id>\n\n")
flag.PrintDefaults()
}
flag.Parse()
// We require at least the container ID
if flag.NArg() != 1 {
println(flag.NArg())
flag.Usage()
return
}
// Check that the requested process manager is supported
if _, exists := templates[*kind]; !exists {
panic("Unkown script template")
}
// Load the requested template
tpl, err := template.New("processManager").Parse(templates[*kind])
if err != nil {
panic(err)
}
// Create stdout/stderr buffers
bufOut := bytes.NewBuffer(nil)
bufErr := bytes.NewBuffer(nil)
// Instanciate the Docker CLI
cli := docker.NewDockerCli(nil, bufOut, bufErr, "unix", "/var/run/docker.sock")
// Retrieve the container info
if err := cli.CmdInspect(flag.Arg(0)); err != nil {
// As of docker v0.6.3, CmdInspect always returns nil
panic(err)
}
// If there is nothing in the error buffer, then the Docker daemon is there and the container has been found
if bufErr.Len() == 0 {
// Unmarshall the resulting container data
c := []*docker.Container{{}}
if err := json.Unmarshal(bufOut.Bytes(), &c); err != nil {
panic(err)
}
// Reset the buffers
bufOut.Reset()
bufErr.Reset()
// Retrieve the info of the linked image
if err := cli.CmdInspect(c[0].Image); err != nil {
panic(err)
}
// If there is nothing in the error buffer, then the image has been found.
if bufErr.Len() == 0 {
// Unmarshall the resulting image data
img := []*docker.Image{{}}
if err := json.Unmarshal(bufOut.Bytes(), &img); err != nil {
panic(err)
}
// If no author has been set, use the one from the image
if *author == "<none>" && img[0].Author != "" {
*author = strings.Replace(img[0].Author, "\"", "", -1)
}
// If no description has been set, use the comment from the image
if *description == "<none>" && img[0].Comment != "" {
*description = strings.Replace(img[0].Comment, "\"", "", -1)
}
}
}
/// Old version: Wrtie the resulting script to file
// f, err := os.OpenFile(kind, os.O_CREATE|os.O_WRONLY, 0755)
// if err != nil {
// panic(err)
// }
// defer f.Close()
// Create a map with needed data
data := map[string]string{
"author": *author,
"description": *description,
"container_id": flag.Arg(0),
}
// Process the template and output it on Stdout
if err := tpl.Execute(os.Stdout, data); err != nil {
panic(err)
}
}

View File

@@ -0,0 +1,53 @@
#!/bin/sh
set -e
usage() {
echo >&2 "usage: $0 [-a author] [-d description] container [manager]"
echo >&2 " ie: $0 -a 'John Smith' 4ec9612a37cd systemd"
echo >&2 " ie: $0 -d 'Super Cool System' 4ec9612a37cd # defaults to upstart"
exit 1
}
auth='<none>'
desc='<none>'
have_auth=
have_desc=
while getopts a:d: opt; do
case "$opt" in
a)
auth="$OPTARG"
have_auth=1
;;
d)
desc="$OPTARG"
have_desc=1
;;
esac
done
shift $(($OPTIND - 1))
[ $# -ge 1 -a $# -le 2 ] || usage
cid="$1"
script="${2:-upstart}"
if [ ! -e "manager/$script" ]; then
echo >&2 "Error: manager type '$script' is unknown (PRs always welcome!)."
echo >&2 'The currently supported types are:'
echo >&2 " $(cd manager && echo *)"
exit 1
fi
# TODO https://github.com/dotcloud/docker/issues/734 (docker inspect formatting)
#if command -v docker > /dev/null 2>&1; then
# image="$(docker inspect -f '{{.Image}}' "$cid")"
# if [ "$image" ]; then
# if [ -z "$have_auth" ]; then
# auth="$(docker inspect -f '{{.Author}}' "$image")"
# fi
# if [ -z "$have_desc" ]; then
# desc="$(docker inspect -f '{{.Comment}}' "$image")"
# fi
# fi
#fi
exec "manager/$script" "$cid" "$auth" "$desc"

View File

@@ -0,0 +1,20 @@
#!/bin/sh
set -e
cid="$1"
auth="$2"
desc="$3"
cat <<-EOF
[Unit]
Description=$desc
Author=$auth
After=docker.service
[Service]
ExecStart=/usr/bin/docker start -a $cid
ExecStop=/usr/bin/docker stop -t 2 $cid
[Install]
WantedBy=local.target
EOF

View File

@@ -0,0 +1,15 @@
#!/bin/sh
set -e
cid="$1"
auth="$2"
desc="$3"
cat <<-EOF
description "$(echo "$desc" | sed 's/"/\\"/g')"
author "$(echo "$auth" | sed 's/"/\\"/g')"
start on filesystem and started lxc-net and started docker
stop on runlevel [!2345]
respawn
exec /usr/bin/docker start -a "$cid"
EOF

View File

@@ -0,0 +1,13 @@
# /etc/conf.d/docker: config file for /etc/init.d/docker
# where the docker daemon output gets piped
#DOCKER_LOGFILE="/var/log/docker.log"
# where docker's pid get stored
#DOCKER_PIDFILE="/run/docker.pid"
# where the docker daemon itself is run from
#DOCKER_BINARY="/usr/bin/docker"
# any other random options you want to pass to docker
DOCKER_OPTS=""

View File

@@ -0,0 +1,31 @@
#!/sbin/runscript
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
DOCKER_LOGFILE=${DOCKER_LOGFILE:-/var/log/${SVCNAME}.log}
DOCKER_PIDFILE=${DOCKER_PIDFILE:-/run/${SVCNAME}.pid}
DOCKER_BINARY=${DOCKER_BINARY:-/usr/bin/docker}
DOCKER_OPTS=${DOCKER_OPTS:-}
start() {
checkpath -f -m 0644 -o root:docker "$DOCKER_LOGFILE"
ebegin "Starting docker daemon"
start-stop-daemon --start --background \
--exec "$DOCKER_BINARY" \
--pidfile "$DOCKER_PIDFILE" \
--stdout "$DOCKER_LOGFILE" \
--stderr "$DOCKER_LOGFILE" \
-- -d -p "$DOCKER_PIDFILE" \
$DOCKER_OPTS
eend $?
}
stop() {
ebegin "Stopping docker daemon"
start-stop-daemon --stop \
--exec "$DOCKER_BINARY" \
--pidfile "$DOCKER_PIDFILE"
eend $?
}

View File

@@ -0,0 +1,13 @@
[Unit]
Description=Docker Application Container Engine
Documentation=http://docs.docker.io
Requires=network.target
After=multi-user.target
[Service]
Type=simple
ExecStartPre=/bin/mount --make-rprivate /
ExecStart=/usr/bin/docker -d
[Install]
WantedBy=multi-user.target

96
contrib/init/sysvinit/docker Executable file
View File

@@ -0,0 +1,96 @@
#!/bin/sh
### BEGIN INIT INFO
# Provides: docker
# Required-Start: $syslog $remote_fs
# Required-Stop: $syslog $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Create lightweight, portable, self-sufficient containers.
# Description:
# Docker is an open-source project to easily create lightweight, portable,
# self-sufficient containers from any application. The same container that a
# developer builds and tests on a laptop can run at scale, in production, on
# VMs, bare metal, OpenStack clusters, public clouds and more.
### END INIT INFO
BASE=$(basename $0)
DOCKER=/usr/bin/$BASE
DOCKER_PIDFILE=/var/run/$BASE.pid
DOCKER_OPTS=
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
# Get lsb functions
. /lib/lsb/init-functions
if [ -f /etc/default/$BASE ]; then
. /etc/default/$BASE
fi
# see also init_is_upstart in /lib/lsb/init-functions (which isn't available in Ubuntu 12.04, or we'd use it)
if [ -x /sbin/initctl ] && /sbin/initctl version 2>/dev/null | /bin/grep -q upstart; then
log_failure_msg "Docker is managed via upstart, try using service $BASE $1"
exit 1
fi
# Check docker is present
if [ ! -x $DOCKER ]; then
log_failure_msg "$DOCKER not present or not executable"
exit 1
fi
fail_unless_root() {
if [ "$(id -u)" != '0' ]; then
log_failure_msg "Docker must be run as root"
exit 1
fi
}
case "$1" in
start)
fail_unless_root
log_begin_msg "Starting Docker: $BASE"
mount | grep cgroup >/dev/null || mount -t cgroup none /sys/fs/cgroup 2>/dev/null
start-stop-daemon --start --background \
--exec "$DOCKER" \
--pidfile "$DOCKER_PIDFILE" \
-- -d -p "$DOCKER_PIDFILE" \
$DOCKER_OPTS
log_end_msg $?
;;
stop)
fail_unless_root
log_begin_msg "Stopping Docker: $BASE"
start-stop-daemon --stop \
--pidfile "$DOCKER_PIDFILE"
log_end_msg $?
;;
restart)
fail_unless_root
docker_pid=`cat "$DOCKER_PIDFILE" 2>/dev/null`
[ -n "$docker_pid" ] \
&& ps -p $docker_pid > /dev/null 2>&1 \
&& $0 stop
$0 start
;;
force-reload)
fail_unless_root
$0 restart
;;
status)
status_of_proc -p "$DOCKER_PIDFILE" "$DOCKER" docker
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
exit 1
;;
esac
exit 0

View File

@@ -0,0 +1,15 @@
description "Docker daemon"
start on filesystem and started lxc-net
stop on runlevel [!2345]
respawn
script
DOCKER=/usr/bin/$UPSTART_JOB
DOCKER_OPTS=
if [ -f /etc/default/$UPSTART_JOB ]; then
. /etc/default/$UPSTART_JOB
fi
"$DOCKER" -d $DOCKER_OPTS
end script

View File

@@ -1,55 +0,0 @@
#!/bin/sh
# This script is meant for quick & easy install via 'curl URL-OF-SCRIPT | sh'
# Original version by Jeff Lindsay <progrium@gmail.com>
# Revamped by Jerome Petazzoni <jerome@dotcloud.com>
#
# This script canonical location is http://get.docker.io/; to update it, run:
# s3cmd put -m text/x-shellscript -P install.sh s3://get.docker.io/index
echo "Ensuring basic dependencies are installed..."
apt-get -qq update
apt-get -qq install lxc wget
echo "Looking in /proc/filesystems to see if we have AUFS support..."
if grep -q aufs /proc/filesystems
then
echo "Found."
else
echo "Ahem, it looks like the current kernel does not support AUFS."
echo "Let's see if we can load the AUFS module with modprobe..."
if modprobe aufs
then
echo "Module loaded."
else
echo "Ahem, things didn't turn out as expected."
KPKG=linux-image-extra-$(uname -r)
echo "Trying to install $KPKG..."
if apt-get -qq install $KPKG
then
echo "Installed."
else
echo "Oops, we couldn't install the -extra kernel."
echo "Are you sure you are running a supported version of Ubuntu?"
echo "Proceeding anyway, but Docker will probably NOT WORK!"
fi
fi
fi
echo "Downloading docker binary and uncompressing into /usr/local/bin..."
curl -s http://get.docker.io/builds/$(uname -s)/$(uname -m)/docker-latest.tgz |
tar -C /usr/local/bin --strip-components=1 -zxf- \
docker-latest/docker
if [ -f /etc/init/dockerd.conf ]
then
echo "Upstart script already exists."
else
echo "Creating /etc/init/dockerd.conf..."
echo "exec env LANG=\"en_US.UTF-8\" /usr/local/bin/docker -d" > /etc/init/dockerd.conf
fi
echo "Starting dockerd..."
start dockerd > /dev/null
echo "Done."
echo

67
contrib/mkimage-arch.sh Executable file
View File

@@ -0,0 +1,67 @@
#!/bin/bash
# Generate a minimal filesystem for archlinux and load it into the local
# docker as "archlinux"
# requires root
set -e
PACSTRAP=$(which pacstrap)
[ "$PACSTRAP" ] || {
echo "Could not find pacstrap. Run pacman -S arch-install-scripts"
exit 1
}
EXPECT=$(which expect)
[ "$EXPECT" ] || {
echo "Could not find expect. Run pacman -S expect"
exit 1
}
ROOTFS=~/rootfs-arch-$$-$RANDOM
mkdir $ROOTFS
#packages to ignore for space savings
PKGIGNORE=linux,jfsutils,lvm2,cryptsetup,groff,man-db,man-pages,mdadm,pciutils,pcmciautils,reiserfsprogs,s-nail,xfsprogs
expect <<EOF
set timeout 60
set send_slow {1 1}
spawn pacstrap -c -d -G -i $ROOTFS base haveged --ignore $PKGIGNORE
expect {
"Install anyway?" { send n\r; exp_continue }
"(default=all)" { send \r; exp_continue }
"Proceed with installation?" { send "\r"; exp_continue }
"skip the above package" {send "y\r"; exp_continue }
"checking" { exp_continue }
"loading" { exp_continue }
"installing" { exp_continue }
}
EOF
arch-chroot $ROOTFS /bin/sh -c "haveged -w 1024; pacman-key --init; pkill haveged; pacman -Rs --noconfirm haveged; pacman-key --populate archlinux"
arch-chroot $ROOTFS /bin/sh -c "ln -s /usr/share/zoneinfo/UTC /etc/localtime"
cat > $ROOTFS/etc/locale.gen <<DELIM
en_US.UTF-8 UTF-8
en_US ISO-8859-1
DELIM
arch-chroot $ROOTFS locale-gen
arch-chroot $ROOTFS /bin/sh -c 'echo "Server = http://mirrors.kernel.org/archlinux/\$repo/os/\$arch" > /etc/pacman.d/mirrorlist'
# udev doesn't work in containers, rebuild /dev
DEV=${ROOTFS}/dev
mv ${DEV} ${DEV}.old
mkdir -p ${DEV}
mknod -m 666 ${DEV}/null c 1 3
mknod -m 666 ${DEV}/zero c 1 5
mknod -m 666 ${DEV}/random c 1 8
mknod -m 666 ${DEV}/urandom c 1 9
mkdir -m 755 ${DEV}/pts
mkdir -m 1777 ${DEV}/shm
mknod -m 666 ${DEV}/tty c 5 0
mknod -m 600 ${DEV}/console c 5 1
mknod -m 666 ${DEV}/tty0 c 4 0
mknod -m 666 ${DEV}/full c 1 7
mknod -m 600 ${DEV}/initctl p
mknod -m 666 ${DEV}/ptmx c 5 2
tar --numeric-owner -C $ROOTFS -c . | docker import - archlinux
docker run -i -t archlinux echo Success.
rm -rf $ROOTFS

View File

@@ -35,5 +35,5 @@ do
cp -a /dev/$X dev
done
tar -cf- . | docker import - busybox
tar --numeric-owner -cf- . | docker import - busybox
docker run -i -u root busybox /bin/echo Success.

15
contrib/mkimage-centos.sh Executable file
View File

@@ -0,0 +1,15 @@
#!/bin/bash
# Create a CentOS base image for Docker
# From unclejack https://github.com/dotcloud/docker/issues/290
set -e
MIRROR_URL="http://centos.netnitco.net/6.4/os/x86_64/"
MIRROR_URL_UPDATES="http://centos.netnitco.net/6.4/updates/x86_64/"
yum install -y febootstrap xz
febootstrap -i bash -i coreutils -i tar -i bzip2 -i gzip -i vim-minimal -i wget -i patch -i diffutils -i iproute -i yum centos centos64 $MIRROR_URL -u $MIRROR_URL_UPDATES
touch centos64/etc/resolv.conf
touch centos64/sbin/init
tar --numeric-owner -Jcpf centos-64.tar.xz -C centos64 .

View File

@@ -1,55 +0,0 @@
#!/bin/bash
set -e
# these should match the names found at http://www.debian.org/releases/
stableSuite='wheezy'
testingSuite='jessie'
unstableSuite='sid'
variant='minbase'
include='iproute,iputils-ping'
repo="$1"
suite="${2:-$stableSuite}"
mirror="${3:-}" # stick to the default debootstrap mirror if one is not provided
if [ ! "$repo" ]; then
echo >&2 "usage: $0 repo [suite [mirror]]"
echo >&2 " ie: $0 tianon/debian squeeze"
exit 1
fi
target="/tmp/docker-rootfs-debian-$suite-$$-$RANDOM"
cd "$(dirname "$(readlink -f "$BASH_SOURCE")")"
returnTo="$(pwd -P)"
set -x
# bootstrap
mkdir -p "$target"
sudo debootstrap --verbose --variant="$variant" --include="$include" "$suite" "$target" "$mirror"
cd "$target"
# create the image
img=$(sudo tar -c . | docker import -)
# tag suite
docker tag $img $repo $suite
# test the image
docker run -i -t $repo:$suite echo success
if [ "$suite" = "$stableSuite" -o "$suite" = 'stable' ]; then
# tag latest
docker tag $img $repo latest
# tag the specific debian release version
ver=$(docker run $repo:$suite cat /etc/debian_version)
docker tag $img $repo $ver
fi
# cleanup
cd "$returnTo"
sudo rm -rf "$target"

233
contrib/mkimage-debootstrap.sh Executable file
View File

@@ -0,0 +1,233 @@
#!/bin/bash
set -e
variant='minbase'
include='iproute,iputils-ping'
arch='amd64' # intentionally undocumented for now
skipDetection=
strictDebootstrap=
justTar=
usage() {
echo >&2
echo >&2 "usage: $0 [options] repo suite [mirror]"
echo >&2
echo >&2 'options: (not recommended)'
echo >&2 " -p set an http_proxy for debootstrap"
echo >&2 " -v $variant # change default debootstrap variant"
echo >&2 " -i $include # change default package includes"
echo >&2 " -d # strict debootstrap (do not apply any docker-specific tweaks)"
echo >&2 " -s # skip version detection and tagging (ie, precise also tagged as 12.04)"
echo >&2 " # note that this will also skip adding universe and/or security/updates to sources.list"
echo >&2 " -t # just create a tarball, especially for dockerbrew (uses repo as tarball name)"
echo >&2
echo >&2 " ie: $0 username/debian squeeze"
echo >&2 " $0 username/debian squeeze http://ftp.uk.debian.org/debian/"
echo >&2
echo >&2 " ie: $0 username/ubuntu precise"
echo >&2 " $0 username/ubuntu precise http://mirrors.melbourne.co.uk/ubuntu/"
echo >&2
echo >&2 " ie: $0 -t precise.tar.bz2 precise"
echo >&2 " $0 -t wheezy.tgz wheezy"
echo >&2 " $0 -t wheezy-uk.tar.xz wheezy http://ftp.uk.debian.org/debian/"
echo >&2
}
# these should match the names found at http://www.debian.org/releases/
debianStable=wheezy
debianUnstable=sid
# this should match the name found at http://releases.ubuntu.com/
ubuntuLatestLTS=precise
while getopts v:i:a:p:dst name; do
case "$name" in
p)
http_proxy="$OPTARG"
;;
v)
variant="$OPTARG"
;;
i)
include="$OPTARG"
;;
a)
arch="$OPTARG"
;;
d)
strictDebootstrap=1
;;
s)
skipDetection=1
;;
t)
justTar=1
;;
?)
usage
exit 0
;;
esac
done
shift $(($OPTIND - 1))
repo="$1"
suite="$2"
mirror="${3:-}" # stick to the default debootstrap mirror if one is not provided
if [ ! "$repo" ] || [ ! "$suite" ]; then
usage
exit 1
fi
# some rudimentary detection for whether we need to "sudo" our docker calls
docker=''
if docker version > /dev/null 2>&1; then
docker='docker'
elif sudo docker version > /dev/null 2>&1; then
docker='sudo docker'
elif command -v docker > /dev/null 2>&1; then
docker='docker'
else
echo >&2 "warning: either docker isn't installed, or your current user cannot run it;"
echo >&2 " this script is not likely to work as expected"
sleep 3
docker='docker' # give us a command-not-found later
fi
# make sure we have an absolute path to our final tarball so we can still reference it properly after we change directory
if [ "$justTar" ]; then
if [ ! -d "$(dirname "$repo")" ]; then
echo >&2 "error: $(dirname "$repo") does not exist"
exit 1
fi
repo="$(cd "$(dirname "$repo")" && pwd -P)/$(basename "$repo")"
fi
# will be filled in later, if [ -z "$skipDetection" ]
lsbDist=''
target="/tmp/docker-rootfs-debootstrap-$suite-$$-$RANDOM"
cd "$(dirname "$(readlink -f "$BASH_SOURCE")")"
returnTo="$(pwd -P)"
set -x
# bootstrap
mkdir -p "$target"
sudo http_proxy=$http_proxy debootstrap --verbose --variant="$variant" --include="$include" --arch="$arch" "$suite" "$target" "$mirror"
cd "$target"
if [ -z "$strictDebootstrap" ]; then
# prevent init scripts from running during install/update
# policy-rc.d (for most scripts)
echo $'#!/bin/sh\nexit 101' | sudo tee usr/sbin/policy-rc.d > /dev/null
sudo chmod +x usr/sbin/policy-rc.d
# initctl (for some pesky upstart scripts)
sudo chroot . dpkg-divert --local --rename --add /sbin/initctl
sudo ln -sf /bin/true sbin/initctl
# see https://github.com/dotcloud/docker/issues/446#issuecomment-16953173
# shrink the image, since apt makes us fat (wheezy: ~157.5MB vs ~120MB)
sudo chroot . apt-get clean
# while we're at it, apt is unnecessarily slow inside containers
# this forces dpkg not to call sync() after package extraction and speeds up install
# the benefit is huge on spinning disks, and the penalty is nonexistent on SSD or decent server virtualization
echo 'force-unsafe-io' | sudo tee etc/dpkg/dpkg.cfg.d/02apt-speedup > /dev/null
# we want to effectively run "apt-get clean" after every install to keep images small
echo 'DPkg::Post-Invoke {"/bin/rm -f /var/cache/apt/archives/*.deb || true";};' | sudo tee etc/apt/apt.conf.d/no-cache > /dev/null
# helpful undo lines for each the above tweaks (for lack of a better home to keep track of them):
# rm /usr/sbin/policy-rc.d
# rm /sbin/initctl; dpkg-divert --rename --remove /sbin/initctl
# rm /etc/dpkg/dpkg.cfg.d/02apt-speedup
# rm /etc/apt/apt.conf.d/no-cache
if [ -z "$skipDetection" ]; then
# see also rudimentary platform detection in hack/install.sh
lsbDist=''
if [ -r etc/lsb-release ]; then
lsbDist="$(. etc/lsb-release && echo "$DISTRIB_ID")"
fi
if [ -z "$lsbDist" ] && [ -r etc/debian_version ]; then
lsbDist='Debian'
fi
case "$lsbDist" in
Debian)
# add the updates and security repositories
if [ "$suite" != "$debianUnstable" -a "$suite" != 'unstable' ]; then
# ${suite}-updates only applies to non-unstable
sudo sed -i "p; s/ $suite main$/ ${suite}-updates main/" etc/apt/sources.list
# same for security updates
echo "deb http://security.debian.org/ $suite/updates main" | sudo tee -a etc/apt/sources.list > /dev/null
fi
;;
Ubuntu)
# add the universe, updates, and security repositories
sudo sed -i "
s/ $suite main$/ $suite main universe/; p;
s/ $suite main/ ${suite}-updates main/; p;
s/ $suite-updates main/ ${suite}-security main/
" etc/apt/sources.list
;;
esac
fi
fi
if [ "$justTar" ]; then
# create the tarball file so it has the right permissions (ie, not root)
touch "$repo"
# fill the tarball
sudo tar --numeric-owner -caf "$repo" .
else
# create the image (and tag $repo:$suite)
sudo tar --numeric-owner -c . | $docker import - $repo:$suite
# test the image
$docker run -i -t $repo:$suite echo success
if [ -z "$skipDetection" ]; then
case "$lsbDist" in
Debian)
if [ "$suite" = "$debianStable" -o "$suite" = 'stable' ] && [ -r etc/debian_version ]; then
# tag latest
$docker tag $repo:$suite $repo:latest
if [ -r etc/debian_version ]; then
# tag the specific debian release version (which is only reasonable to tag on debian stable)
ver=$(cat etc/debian_version)
$docker tag $repo:$suite $repo:$ver
fi
fi
;;
Ubuntu)
if [ "$suite" = "$ubuntuLatestLTS" ]; then
# tag latest
$docker tag $repo:$suite $repo:latest
fi
if [ -r etc/lsb-release ]; then
lsbRelease="$(. etc/lsb-release && echo "$DISTRIB_RELEASE")"
if [ "$lsbRelease" ]; then
# tag specific Ubuntu version number, if available (12.04, etc.)
$docker tag $repo:$suite $repo:$lsbRelease
fi
fi
;;
esac
fi
fi
# cleanup
cd "$returnTo"
sudo rm -rf "$target"

View File

@@ -44,6 +44,6 @@ do
done
chmod 0755 $ROOTFS # See #486
tar -cf- . | docker import - docker-ut
tar --numeric-owner -cf- . | docker import - docker-ut
docker run -i -u root docker-ut /bin/echo Success.
rm -rf $ROOTFS

View File

@@ -1,3 +1,19 @@
# Vagrant-docker
# Vagrant integration
This is a placeholder for the official vagrant-docker, a plugin for Vagrant (http://vagrantup.com) which exposes Docker as a provider.
Currently there are at least 4 different projects that we are aware of that deals
with integration with [Vagrant](http://vagrantup.com/) at different levels. One
approach is to use Docker as a [provisioner](http://docs.vagrantup.com/v2/provisioning/index.html)
which means you can create containers and pull base images on VMs using Docker's
CLI and the other is to use Docker as a [provider](http://docs.vagrantup.com/v2/providers/index.html),
meaning you can use Vagrant to control Docker containers.
### Provisioners
* [Vocker](https://github.com/fgrehm/vocker)
* [Ventriloquist](https://github.com/fgrehm/ventriloquist)
### Providers
* [docker-provider](https://github.com/fgrehm/docker-provider)
* [vagrant-shell](https://github.com/destructuring/vagrant-shell)

View File

@@ -0,0 +1,22 @@
Copyright (c) 2013 Honza Pokorny
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

View File

@@ -0,0 +1,23 @@
dockerfile.vim
==============
Syntax highlighting for Dockerfiles
Installation
------------
Via pathogen, the usual way...
Features
--------
The syntax highlighting includes:
* The directives (e.g. `FROM`)
* Strings
* Comments
License
-------
BSD, short and sweet

View File

@@ -0,0 +1,18 @@
*dockerfile.txt* Syntax highlighting for Dockerfiles
Author: Honza Pokorny <http://honza.ca>
License: BSD
INSTALLATION *installation*
Drop it on your Pathogen path and you're all set.
FEATURES *features*
The syntax highlighting includes:
* The directives (e.g. FROM)
* Strings
* Comments
vim:tw=78:et:ft=help:norl:

View File

@@ -0,0 +1 @@
au BufNewFile,BufRead Dockerfile set filetype=dockerfile

View File

@@ -0,0 +1,24 @@
" dockerfile.vim - Syntax highlighting for Dockerfiles
" Maintainer: Honza Pokorny <http://honza.ca>
" Version: 0.5
if exists("b:current_syntax")
finish
endif
let b:current_syntax = "dockerfile"
syntax case ignore
syntax match dockerfileKeyword /\v^\s*(FROM|MAINTAINER|RUN|CMD|EXPOSE|ENV|ADD)\s/
syntax match dockerfileKeyword /\v^\s*(ENTRYPOINT|VOLUME|USER|WORKDIR)\s/
highlight link dockerfileKeyword Keyword
syntax region dockerfileString start=/\v"/ skip=/\v\\./ end=/\v"/
highlight link dockerfileString String
syntax match dockerfileComment "\v^\s*#.*$"
highlight link dockerfileComment Comment
set commentstring=#\ %s

View File

@@ -4,147 +4,107 @@ import (
"flag"
"fmt"
"github.com/dotcloud/docker"
"github.com/dotcloud/docker/engine"
"github.com/dotcloud/docker/sysinit"
"github.com/dotcloud/docker/utils"
"io/ioutil"
"log"
"os"
"os/signal"
"strconv"
"strings"
"syscall"
)
var (
GITCOMMIT string
VERSION string
)
func main() {
if utils.SelfPath() == "/sbin/init" {
if selfPath := utils.SelfPath(); selfPath == "/sbin/init" || selfPath == "/.dockerinit" {
// Running in init mode
docker.SysInit()
sysinit.SysInit()
return
}
// FIXME: Switch d and D ? (to be more sshd like)
flVersion := flag.Bool("v", false, "Print version information and quit")
flDaemon := flag.Bool("d", false, "Daemon mode")
flDebug := flag.Bool("D", false, "Debug mode")
flAutoRestart := flag.Bool("r", false, "Restart previously running containers")
flAutoRestart := flag.Bool("r", true, "Restart previously running containers")
bridgeName := flag.String("b", "", "Attach containers to a pre-existing network bridge. Use 'none' to disable container networking")
pidfile := flag.String("p", "/var/run/docker.pid", "File containing process PID")
flGraphPath := flag.String("g", "/var/lib/docker", "Path to graph storage base dir.")
flRoot := flag.String("g", "/var/lib/docker", "Path to use as the root of the docker runtime.")
flEnableCors := flag.Bool("api-enable-cors", false, "Enable CORS requests in the remote api.")
flDns := flag.String("dns", "", "Set custom dns servers")
flHosts := docker.ListOpts{fmt.Sprintf("unix://%s", docker.DEFAULTUNIXSOCKET)}
flHosts := utils.ListOpts{fmt.Sprintf("unix://%s", docker.DEFAULTUNIXSOCKET)}
flag.Var(&flHosts, "H", "tcp://host:port to bind/connect to or unix://path/to/socket to use")
flEnableIptables := flag.Bool("iptables", true, "Disable iptables within docker")
flDefaultIp := flag.String("ip", "0.0.0.0", "Default ip address to use when binding a containers ports")
flInterContainerComm := flag.Bool("icc", true, "Enable inter-container communication")
flag.Parse()
if *flVersion {
showVersion()
return
}
if len(flHosts) > 1 {
flHosts = flHosts[1:] //trick to display a nice defaul value in the usage
flHosts = flHosts[1:] //trick to display a nice default value in the usage
}
for i, flHost := range flHosts {
flHosts[i] = utils.ParseHost(docker.DEFAULTHTTPHOST, docker.DEFAULTHTTPPORT, flHost)
host, err := utils.ParseHost(docker.DEFAULTHTTPHOST, docker.DEFAULTHTTPPORT, flHost)
if err == nil {
flHosts[i] = host
} else {
log.Fatal(err)
}
}
if *bridgeName != "" {
docker.NetworkBridgeIface = *bridgeName
} else {
docker.NetworkBridgeIface = docker.DefaultNetworkBridge
}
if *flDebug {
os.Setenv("DEBUG", "1")
}
docker.GITCOMMIT = GITCOMMIT
docker.VERSION = VERSION
if *flDaemon {
if flag.NArg() != 0 {
flag.Usage()
return
}
if err := daemon(*pidfile, *flGraphPath, flHosts, *flAutoRestart, *flEnableCors, *flDns); err != nil {
eng, err := engine.New(*flRoot)
if err != nil {
log.Fatal(err)
}
// Load plugin: httpapi
job := eng.Job("initapi")
job.Setenv("Pidfile", *pidfile)
job.Setenv("Root", *flRoot)
job.SetenvBool("AutoRestart", *flAutoRestart)
job.SetenvBool("EnableCors", *flEnableCors)
job.Setenv("Dns", *flDns)
job.SetenvBool("EnableIptables", *flEnableIptables)
job.Setenv("BridgeIface", *bridgeName)
job.Setenv("DefaultIp", *flDefaultIp)
job.SetenvBool("InterContainerCommunication", *flInterContainerComm)
if err := job.Run(); err != nil {
log.Fatal(err)
}
// Serve api
job = eng.Job("serveapi", flHosts...)
job.SetenvBool("Logging", true)
if err := job.Run(); err != nil {
log.Fatal(err)
os.Exit(-1)
}
} else {
if len(flHosts) > 1 {
log.Fatal("Please specify only one -H")
return
}
protoAddrParts := strings.SplitN(flHosts[0], "://", 2)
if err := docker.ParseCommands(protoAddrParts[0], protoAddrParts[1], flag.Args()...); err != nil {
if sterr, ok := err.(*utils.StatusError); ok {
os.Exit(sterr.Status)
}
log.Fatal(err)
os.Exit(-1)
}
}
}
func createPidFile(pidfile string) error {
if pidString, err := ioutil.ReadFile(pidfile); err == nil {
pid, err := strconv.Atoi(string(pidString))
if err == nil {
if _, err := os.Stat(fmt.Sprintf("/proc/%d/", pid)); err == nil {
return fmt.Errorf("pid file found, ensure docker is not running or delete %s", pidfile)
}
}
}
file, err := os.Create(pidfile)
if err != nil {
return err
}
defer file.Close()
_, err = fmt.Fprintf(file, "%d", os.Getpid())
return err
}
func removePidFile(pidfile string) {
if err := os.Remove(pidfile); err != nil {
log.Printf("Error removing %s: %s", pidfile, err)
}
}
func daemon(pidfile string, flGraphPath string, protoAddrs []string, autoRestart, enableCors bool, flDns string) error {
if err := createPidFile(pidfile); err != nil {
log.Fatal(err)
}
defer removePidFile(pidfile)
c := make(chan os.Signal, 1)
signal.Notify(c, os.Interrupt, os.Kill, os.Signal(syscall.SIGTERM))
go func() {
sig := <-c
log.Printf("Received signal '%v', exiting\n", sig)
removePidFile(pidfile)
os.Exit(0)
}()
var dns []string
if flDns != "" {
dns = []string{flDns}
}
server, err := docker.NewServer(flGraphPath, autoRestart, enableCors, dns)
if err != nil {
return err
}
chErrors := make(chan error, len(protoAddrs))
for _, protoAddr := range protoAddrs {
protoAddrParts := strings.SplitN(protoAddr, "://", 2)
if protoAddrParts[0] == "unix" {
syscall.Unlink(protoAddrParts[1])
} else if protoAddrParts[0] == "tcp" {
if !strings.HasPrefix(protoAddrParts[1], "127.0.0.1") {
log.Println("/!\\ DON'T BIND ON ANOTHER IP ADDRESS THAN 127.0.0.1 IF YOU DON'T KNOW WHAT YOU'RE DOING /!\\")
}
} else {
log.Fatal("Invalid protocol format.")
os.Exit(-1)
}
go func() {
chErrors <- docker.ListenAndServe(protoAddrParts[0], protoAddrParts[1], server, true)
}()
}
for i := 0; i < len(protoAddrs); i += 1 {
err := <-chErrors
if err != nil {
return err
}
}
return nil
func showVersion() {
fmt.Printf("Docker version %s, build %s\n", VERSION, GITCOMMIT)
}

16
dockerinit/dockerinit.go Normal file
View File

@@ -0,0 +1,16 @@
package main
import (
"github.com/dotcloud/docker/sysinit"
)
var (
GITCOMMIT string
VERSION string
)
func main() {
// Running in init mode
sysinit.SysInit()
return
}

20
docs/Dockerfile Normal file
View File

@@ -0,0 +1,20 @@
from ubuntu:12.04
maintainer Nick Stinemates
#
# docker build -t docker:docs . && docker run -p 8000:8000 docker:docs
#
run apt-get update
run apt-get install -y python-setuptools make
run easy_install pip
#from docs/requirements.txt, but here to increase cacheability
run pip install Sphinx==1.1.3
run pip install sphinxcontrib-httpdomain==1.1.8
add . /docs
run cd /docs; make docs
expose 8000
workdir /docs/_build/html
entrypoint ["python", "-m", "SimpleHTTPServer"]

View File

@@ -1,2 +1,2 @@
Andy Rothfusz <andy@dotcloud.com>
Ken Cochrane <ken@dotcloud.com>
Andy Rothfusz <andy@dotcloud.com> (@metalivedev)
Ken Cochrane <ken@dotcloud.com> (@kencochrane)

View File

@@ -31,7 +31,7 @@ help:
# @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
# @echo " latexpdf to make LaTeX files and run them through pdflatex"
# @echo " text to make text files"
# @echo " man to make manual pages"
@echo " man to make a manual page"
# @echo " texinfo to make Texinfo files"
# @echo " info to make Texinfo files and run them through makeinfo"
# @echo " gettext to make PO message catalogs"

View File

@@ -1,53 +1,103 @@
Docker documentation and website
================================
Docker Documentation
====================
Documentation
-------------
This is your definite place to contribute to the docker documentation. The documentation is generated from the
.rst files under sources.
Overview
--------
The folder also contains the other files to create the http://docker.io website, but you can generally ignore
most of those.
The source for Docker documentation is here under ``sources/`` in the
form of .rst files. These files use
[reStructuredText](http://docutils.sourceforge.net/rst.html)
formatting with [Sphinx](http://sphinx-doc.org/) extensions for
structure, cross-linking and indexing.
The HTML files are built and hosted on
[readthedocs.org](https://readthedocs.org/projects/docker/), appearing
via proxy on https://docs.docker.io. The HTML files update
automatically after each change to the master or release branch of the
[docker files on GitHub](https://github.com/dotcloud/docker) thanks to
post-commit hooks. The "release" branch maps to the "latest"
documentation and the "master" branch maps to the "master"
documentation.
Installation
------------
**Warning**: The "master" documentation may include features not yet
part of any official docker release. "Master" docs should be used only
for understanding bleeding-edge development and "latest" should be
used for the latest official release.
If you need to manually trigger a build of an existing branch, then
you can do that through the [readthedocs
interface](https://readthedocs.org/builds/docker/). If you would like
to add new build targets, including new branches or tags, then you
must contact one of the existing maintainers and get your
readthedocs.org account added to the maintainers list, or just file an
issue on GitHub describing the branch/tag and why it needs to be added
to the docs, and one of the maintainers will add it for you.
Getting Started
---------------
To edit and test the docs, you'll need to install the Sphinx tool and
its dependencies. There are two main ways to install this tool:
###Native Installation
* Work in your own fork of the code, we accept pull requests.
* Install sphinx: `pip install sphinx`
* Mac OS X: `[sudo] pip-2.7 install sphinx`)
* Mac OS X: `[sudo] pip-2.7 install sphinx`
* Install sphinx httpdomain contrib package: `pip install sphinxcontrib-httpdomain`
* Mac OS X: `[sudo] pip-2.7 install sphinxcontrib-httpdomain`
* If pip is not available you can probably install it using your favorite package manager as **python-pip**
###Alternative Installation: Docker Container
If you're running ``docker`` on your development machine then you may
find it easier and cleaner to use the Dockerfile. This installs Sphinx
in a container, adds the local ``docs/`` directory and builds the HTML
docs inside the container, even starting a simple HTTP server on port
8000 so that you can connect and see your changes. Just run ``docker
build .`` and run the resulting image. This is the equivalent to
``make clean server`` since each container starts clean.
In the ``docs/`` directory, run:
```docker build -t docker:docs . && docker run -p 8000:8000 docker:docs```
Usage
-----
* Change the `.rst` files with your favorite editor to your liking.
* Run `make docs` to clean up old files and generate new ones.
* Your static website can now be found in the `_build` directory.
* To preview what you have generated run `make server` and open <http://localhost:8000/> in your favorite browser.
* Follow the contribution guidelines (``../CONTRIBUTING.md``)
* Work in your own fork of the code, we accept pull requests.
* Change the ``.rst`` files with your favorite editor -- try to keep the
lines short and respect RST and Sphinx conventions.
* Run ``make clean docs`` to clean up old files and generate new ones,
or just ``make docs`` to update after small changes.
* Your static website can now be found in the ``_build`` directory.
* To preview what you have generated run ``make server`` and open
http://localhost:8000/ in your favorite browser.
``make clean docs`` must complete without any warnings or errors.
Working using GitHub's file editor
----------------------------------
Alternatively, for small changes and typo's you might want to use GitHub's built in file editor. It allows
you to preview your changes right online. Just be carefull not to create many commits.
Alternatively, for small changes and typos you might want to use
GitHub's built in file editor. It allows you to preview your changes
right online (though there can be some differences between GitHub
markdown and Sphinx RST). Just be careful not to create many commits.
Images
------
When you need to add images, try to make them as small as possible (e.g. as gif).
When you need to add images, try to make them as small as possible
(e.g. as gif). Usually images should go in the same directory as the
.rst file which references them, or in a subdirectory if one already
exists.
Notes
-----
* The index.html and gettingstarted.html files are copied from the source dir to the output dir without modification.
So changes to those pages should be made directly in html
* For the template the css is compiled from less. When changes are needed they can be compiled using
lessc ``lessc main.less`` or watched using watch-lessc ``watch-lessc -i main.less -o main.css``
Guides on using sphinx
----------------------
* To make links to certain pages create a link target like so:
* To make links to certain sections create a link target like so:
```
.. _hello_world:
@@ -58,7 +108,10 @@ Guides on using sphinx
This is.. (etc.)
```
The ``_hello_world:`` will make it possible to link to this position (page and marker) from all other pages.
The ``_hello_world:`` will make it possible to link to this position
(page and section heading) from all other pages. See the [Sphinx
docs](http://sphinx-doc.org/markup/inline.html#role-ref) for more
information and examples.
* Notes, warnings and alarms
@@ -74,4 +127,17 @@ Guides on using sphinx
* Code examples
Start without $, so it's easy to copy and paste.
* Start without $, so it's easy to copy and paste.
* Use "sudo" with docker to ensure that your command is runnable
even if they haven't [used the *docker*
group](http://docs.docker.io/en/latest/use/basics/#why-sudo).
Manpages
--------
* To make the manpages, run ``make man``. Please note there is a bug
in spinx 1.1.3 which makes this fail. Upgrade to the latest version
of Sphinx.
* Then preview the manpage by running ``man _build/man/docker.1``,
where ``_build/man/docker.1`` is the path to the generated manfile

View File

@@ -1,2 +1,2 @@
Sphinx==1.1.3
sphinxcontrib-httpdomain==1.1.8
sphinxcontrib-httpdomain==1.1.9

View File

@@ -1 +1 @@
Solomon Hykes <solomon@dotcloud.com>
Solomon Hykes <solomon@dotcloud.com> (@shykes)

View File

@@ -9,13 +9,13 @@
Docker Remote API
=================
.. contents:: Table of Contents
1. Brief introduction
=====================
- The Remote API is replacing rcli
- By default the Docker daemon listens on unix:///var/run/docker.sock and the client must have root access to interact with the daemon
- If a group named *docker* exists on your system, docker will apply ownership of the socket to the group
- The API tends to be REST, but for some complex commands, like attach
or pull, the HTTP connection is hijacked to transport stdout stdin
and stderr
@@ -26,29 +26,198 @@ Docker Remote API
2. Versions
===========
The current verson of the API is 1.4
The current version of the API is 1.7
Calling /images/<name>/insert is the same as calling
/v1.4/images/<name>/insert
/v1.7/images/<name>/insert
You can still call an old version of the api using
/v1.0/images/<name>/insert
:doc:`docker_remote_api_v1.4`
*****************************
v1.7
****
Full Documentation
------------------
:doc:`docker_remote_api_v1.7`
What's new
----------
.. http:get:: /images/json
The format of the json returned from this uri changed. Instead of an entry
for each repo/tag on an image, each image is only represented once, with a
nested attribute indicating the repo/tags that apply to that image.
Instead of:
.. sourcecode:: http
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"VirtualSize": 131506275,
"Size": 131506275,
"Created": 1365714795,
"Id": "8dbd9e392a964056420e5d58ca5cc376ef18e2de93b5cc90e868a1bbc8318c1c",
"Tag": "12.04",
"Repository": "ubuntu"
},
{
"VirtualSize": 131506275,
"Size": 131506275,
"Created": 1365714795,
"Id": "8dbd9e392a964056420e5d58ca5cc376ef18e2de93b5cc90e868a1bbc8318c1c",
"Tag": "latest",
"Repository": "ubuntu"
},
{
"VirtualSize": 131506275,
"Size": 131506275,
"Created": 1365714795,
"Id": "8dbd9e392a964056420e5d58ca5cc376ef18e2de93b5cc90e868a1bbc8318c1c",
"Tag": "precise",
"Repository": "ubuntu"
},
{
"VirtualSize": 180116135,
"Size": 24653,
"Created": 1364102658,
"Id": "b750fe79269d2ec9a3c593ef05b4332b1d1a02a62b4accb2c21d589ff2f5f2dc",
"Tag": "12.10",
"Repository": "ubuntu"
},
{
"VirtualSize": 180116135,
"Size": 24653,
"Created": 1364102658,
"Id": "b750fe79269d2ec9a3c593ef05b4332b1d1a02a62b4accb2c21d589ff2f5f2dc",
"Tag": "quantal",
"Repository": "ubuntu"
}
]
The returned json looks like this:
.. sourcecode:: http
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"RepoTag": [
"ubuntu:12.04",
"ubuntu:precise",
"ubuntu:latest"
],
"Id": "8dbd9e392a964056420e5d58ca5cc376ef18e2de93b5cc90e868a1bbc8318c1c",
"Created": 1365714795,
"Size": 131506275,
"VirtualSize": 131506275
},
{
"RepoTag": [
"ubuntu:12.10",
"ubuntu:quantal"
],
"ParentId": "27cf784147099545",
"Id": "b750fe79269d2ec9a3c593ef05b4332b1d1a02a62b4accb2c21d589ff2f5f2dc",
"Created": 1364102658,
"Size": 24653,
"VirtualSize": 180116135
}
]
.. http:get:: /images/viz
This URI no longer exists. The ``images -viz`` output is now generated in
the client, using the ``/images/json`` data.
v1.6
****
Full Documentation
------------------
:doc:`docker_remote_api_v1.6`
What's new
----------
.. http:post:: /containers/(id)/attach
**New!** You can now split stderr from stdout. This is done by prefixing
a header to each transmition. See :http:post:`/containers/(id)/attach`.
The WebSocket attach is unchanged.
Note that attach calls on the previous API version didn't change. Stdout and
stderr are merged.
v1.5
****
Full Documentation
------------------
:doc:`docker_remote_api_v1.5`
What's new
----------
.. http:post:: /images/create
**New!** You can now pass registry credentials (via an AuthConfig object)
through the `X-Registry-Auth` header
.. http:post:: /images/(name)/push
**New!** The AuthConfig object now needs to be passed through
the `X-Registry-Auth` header
.. http:get:: /containers/json
**New!** The format of the `Ports` entry has been changed to a list of
dicts each containing `PublicPort`, `PrivatePort` and `Type` describing a
port mapping.
v1.4
****
Full Documentation
------------------
:doc:`docker_remote_api_v1.4`
What's new
----------
.. http:post:: /images/create
**New!** When pulling a repo, all images are now downloaded in parallel.
.. http:get:: /containers/(id)/top
**New!** You can now use ps args with docker top, like `docker top <container_id> aux`
:doc:`docker_remote_api_v1.3`
*****************************
.. http:get:: /events:
**New!** Image's name added in the events
v1.3
****
docker v0.5.0 51f6c4a_
Full Documentation
------------------
:doc:`docker_remote_api_v1.3`
What's new
----------
@@ -81,11 +250,16 @@ Start containers (/containers/<id>/start):
- You can now pass host-specific configuration (e.g. bind mounts) in
the POST body for start calls
:doc:`docker_remote_api_v1.2`
*****************************
v1.2
****
docker v0.4.2 2e7649b_
Full Documentation
------------------
:doc:`docker_remote_api_v1.2`
What's new
----------
@@ -103,7 +277,7 @@ The client should send it's authConfig as POST on each call of
Only checks the configuration but doesn't store it on the server
Deleting an image is now improved, will only untag the image if it
has chidren and remove all the untagged parents if has any.
has children and remove all the untagged parents if has any.
.. http:post:: /images/<name>/delete
@@ -111,11 +285,16 @@ The client should send it's authConfig as POST on each call of
deleted/untagged.
:doc:`docker_remote_api_v1.1`
*****************************
v1.1
****
docker v0.4.0 a8ae398_
Full Documentation
------------------
:doc:`docker_remote_api_v1.1`
What's new
----------
@@ -135,12 +314,16 @@ What's new
{"error":"Invalid..."}
...
:doc:`docker_remote_api_v1.0`
*****************************
v1.0
****
docker v0.3.4 8d73740_
Full Documentation
------------------
:doc:`docker_remote_api_v1.0`
What's new
----------
@@ -151,32 +334,3 @@ Initial version
.. _8d73740: https://github.com/dotcloud/docker/commit/8d73740343778651c09160cde9661f5f387b36f4
.. _2e7649b: https://github.com/dotcloud/docker/commit/2e7649beda7c820793bd46766cbc2cfeace7b168
.. _51f6c4a: https://github.com/dotcloud/docker/commit/51f6c4a7372450d164c61e0054daf0223ddbd909
==================================
Docker Remote API Client Libraries
==================================
These libraries have been not tested by the Docker Maintainers for
compatibility. Please file issues with the library owners. If you
find more library implementations, please list them in Docker doc bugs
and we will add the libraries here.
+----------------------+----------------+--------------------------------------------+
| Language/Framework | Name | Repository |
+======================+================+============================================+
| Python | docker-py | https://github.com/dotcloud/docker-py |
+----------------------+----------------+--------------------------------------------+
| Ruby | docker-ruby | https://github.com/ActiveState/docker-ruby |
+----------------------+----------------+--------------------------------------------+
| Ruby | docker-client | https://github.com/geku/docker-client |
+----------------------+----------------+--------------------------------------------+
| Ruby | docker-api | https://github.com/swipely/docker-api |
+----------------------+----------------+--------------------------------------------+
| Javascript | docker-js | https://github.com/dgoujard/docker-js |
+----------------------+----------------+--------------------------------------------+
| Javascript (Angular) | dockerui | https://github.com/crosbymichael/dockerui |
| **WebUI** | | |
+----------------------+----------------+--------------------------------------------+
| Java | docker-java | https://github.com/kpelykh/docker-java |
+----------------------+----------------+--------------------------------------------+

View File

@@ -17,7 +17,7 @@ Docker Remote API v1.0
=====================
- The Remote API is replacing rcli
- Default port in the docker deamon is 4243
- Default port in the docker daemon is 4243
- The API tends to be REST, but for some complex commands, like attach or pull, the HTTP connection is hijacked to transport stdout stdin and stderr
2. Endpoints
@@ -49,28 +49,28 @@ List containers
[
{
"Id": "8dfafdbc3a40",
"Image": "base:latest",
"Image": "ubuntu:latest",
"Command": "echo 1",
"Created": 1367854155,
"Status": "Exit 0"
},
{
"Id": "9cd87474be90",
"Image": "base:latest",
"Image": "ubuntu:latest",
"Command": "echo 222222",
"Created": 1367854155,
"Status": "Exit 0"
},
{
"Id": "3176a2479c92",
"Image": "base:latest",
"Image": "centos:latest",
"Command": "echo 3333333333333333",
"Created": 1367854154,
"Status": "Exit 0"
},
{
"Id": "4cb07b47f9fb",
"Image": "base:latest",
"Image": "fedora:latest",
"Command": "echo 444444444444444444444444444444444",
"Created": 1367854152,
"Status": "Exit 0"
@@ -117,7 +117,7 @@ Create a container
"date"
],
"Dns":null,
"Image":"base",
"Image":"ubuntu",
"Volumes":{},
"VolumesFrom":""
}
@@ -183,7 +183,7 @@ Inspect a container
"date"
],
"Dns": null,
"Image": "base",
"Image": "ubuntu",
"Volumes": {},
"VolumesFrom": ""
},
@@ -490,14 +490,14 @@ List Images
[
{
"Repository":"base",
"Tag":"ubuntu-12.10",
"Repository":"ubuntu",
"Tag":"precise",
"Id":"b750fe79269d",
"Created":1364102658
},
{
"Repository":"base",
"Tag":"ubuntu-quantal",
"Repository":"ubuntu",
"Tag":"12.04",
"Id":"b750fe79269d",
"Created":1364102658
}
@@ -529,9 +529,9 @@ List Images
"d6434d954665" -> "d82cbacda43a"
base -> "e9aa60c60128" [style=invis]
"074be284591f" -> "f71189fff3de"
"b750fe79269d" [label="b750fe79269d\nbase",shape=box,fillcolor="paleturquoise",style="filled,rounded"];
"e9aa60c60128" [label="e9aa60c60128\nbase2",shape=box,fillcolor="paleturquoise",style="filled,rounded"];
"9a33b36209ed" [label="9a33b36209ed\ntest",shape=box,fillcolor="paleturquoise",style="filled,rounded"];
"b750fe79269d" [label="b750fe79269d\nubuntu",shape=box,fillcolor="paleturquoise",style="filled,rounded"];
"e9aa60c60128" [label="e9aa60c60128\ncentos",shape=box,fillcolor="paleturquoise",style="filled,rounded"];
"9a33b36209ed" [label="9a33b36209ed\nfedora",shape=box,fillcolor="paleturquoise",style="filled,rounded"];
base [style=invisible]
}
@@ -552,7 +552,7 @@ Create an image
.. sourcecode:: http
POST /images/create?fromImage=base HTTP/1.1
POST /images/create?fromImage=ubuntu HTTP/1.1
**Example response**:
@@ -572,8 +572,8 @@ Create an image
:statuscode 500: server error
Insert a file in a image
************************
Insert a file in an image
*************************
.. http:post:: /images/(name)/insert
@@ -608,7 +608,7 @@ Inspect an image
.. sourcecode:: http
GET /images/base/json HTTP/1.1
GET /images/centos/json HTTP/1.1
**Example response**:
@@ -638,7 +638,7 @@ Inspect an image
"Env":null,
"Cmd": ["/bin/bash"]
,"Dns":null,
"Image":"base",
"Image":"centos",
"Volumes":null,
"VolumesFrom":""
}
@@ -660,7 +660,7 @@ Get the history of an image
.. sourcecode:: http
GET /images/base/history HTTP/1.1
GET /images/fedora/history HTTP/1.1
**Example response**:
@@ -832,7 +832,7 @@ Build an image from Dockerfile via stdin
{{ STREAM }}
:query t: tag to be applied to the resulting image in case of success
:query t: repository name to be applied to the resulting image in case of success
:statuscode 200: no error
:statuscode 500: server error
@@ -970,28 +970,33 @@ Create a new image from a container's changes
**Example request**:
.. sourcecode:: http
.. sourcecode:: http
POST /commit?container=44c004db4b17&m=message&repo=myrepo HTTP/1.1
POST /commit?container=44c004db4b17&m=message&repo=myrepo HTTP/1.1
Content-Type: application/json
{
"Cmd": ["cat", "/world"],
"PortSpecs":["22"]
}
**Example response**:
**Example response**:
.. sourcecode:: http
.. sourcecode:: http
HTTP/1.1 201 OK
Content-Type: application/vnd.docker.raw-stream
HTTP/1.1 201 OK
Content-Type: application/vnd.docker.raw-stream
{"Id":"596069db4bf5"}
{"Id":"596069db4bf5"}
:query container: source container
:query repo: repository
:query tag: tag
:query m: commit message
:query author: author (eg. "John Hannibal Smith <hannibal@a-team.com>")
:query run: config automatically applied when the image is run. (ex: {"Cmd": ["cat", "/world"], "PortSpecs":["22"]})
:statuscode 201: no error
:statuscode 404: no such container
:statuscode 500: server error
:query container: source container
:query repo: repository
:query tag: tag
:query m: commit message
:query author: author (eg. "John Hannibal Smith <hannibal@a-team.com>")
:statuscode 201: no error
:statuscode 404: no such container
:statuscode 500: server error
3. Going further

View File

@@ -17,7 +17,7 @@ Docker Remote API v1.1
=====================
- The Remote API is replacing rcli
- Default port in the docker deamon is 4243
- Default port in the docker daemon is 4243
- The API tends to be REST, but for some complex commands, like attach or pull, the HTTP connection is hijacked to transport stdout stdin and stderr
2. Endpoints
@@ -49,28 +49,28 @@ List containers
[
{
"Id": "8dfafdbc3a40",
"Image": "base:latest",
"Image": "ubuntu:latest",
"Command": "echo 1",
"Created": 1367854155,
"Status": "Exit 0"
},
{
"Id": "9cd87474be90",
"Image": "base:latest",
"Image": "ubuntu:latest",
"Command": "echo 222222",
"Created": 1367854155,
"Status": "Exit 0"
},
{
"Id": "3176a2479c92",
"Image": "base:latest",
"Image": "centos:latest",
"Command": "echo 3333333333333333",
"Created": 1367854154,
"Status": "Exit 0"
},
{
"Id": "4cb07b47f9fb",
"Image": "base:latest",
"Image": "fedora:latest",
"Command": "echo 444444444444444444444444444444444",
"Created": 1367854152,
"Status": "Exit 0"
@@ -117,7 +117,7 @@ Create a container
"date"
],
"Dns":null,
"Image":"base",
"Image":"ubuntu",
"Volumes":{},
"VolumesFrom":""
}
@@ -183,7 +183,7 @@ Inspect a container
"date"
],
"Dns": null,
"Image": "base",
"Image": "ubuntu",
"Volumes": {},
"VolumesFrom": ""
},
@@ -305,8 +305,8 @@ Start a container
:statuscode 500: server error
Stop a contaier
***************
Stop a container
****************
.. http:post:: /containers/(id)/stop
@@ -490,14 +490,14 @@ List Images
[
{
"Repository":"base",
"Tag":"ubuntu-12.10",
"Repository":"ubuntu",
"Tag":"precise",
"Id":"b750fe79269d",
"Created":1364102658
},
{
"Repository":"base",
"Tag":"ubuntu-quantal",
"Repository":"ubuntu",
"Tag":"12.04",
"Id":"b750fe79269d",
"Created":1364102658
}
@@ -529,9 +529,9 @@ List Images
"d6434d954665" -> "d82cbacda43a"
base -> "e9aa60c60128" [style=invis]
"074be284591f" -> "f71189fff3de"
"b750fe79269d" [label="b750fe79269d\nbase",shape=box,fillcolor="paleturquoise",style="filled,rounded"];
"e9aa60c60128" [label="e9aa60c60128\nbase2",shape=box,fillcolor="paleturquoise",style="filled,rounded"];
"9a33b36209ed" [label="9a33b36209ed\ntest",shape=box,fillcolor="paleturquoise",style="filled,rounded"];
"b750fe79269d" [label="b750fe79269d\nubuntu",shape=box,fillcolor="paleturquoise",style="filled,rounded"];
"e9aa60c60128" [label="e9aa60c60128\ncentos",shape=box,fillcolor="paleturquoise",style="filled,rounded"];
"9a33b36209ed" [label="9a33b36209ed\nfedora",shape=box,fillcolor="paleturquoise",style="filled,rounded"];
base [style=invisible]
}
@@ -552,7 +552,7 @@ Create an image
.. sourcecode:: http
POST /images/create?fromImage=base HTTP/1.1
POST /images/create?fromImage=ubuntu HTTP/1.1
**Example response**:
@@ -575,8 +575,8 @@ Create an image
:statuscode 500: server error
Insert a file in a image
************************
Insert a file in an image
*************************
.. http:post:: /images/(name)/insert
@@ -615,7 +615,7 @@ Inspect an image
.. sourcecode:: http
GET /images/base/json HTTP/1.1
GET /images/centos/json HTTP/1.1
**Example response**:
@@ -645,7 +645,7 @@ Inspect an image
"Env":null,
"Cmd": ["/bin/bash"]
,"Dns":null,
"Image":"base",
"Image":"centos",
"Volumes":null,
"VolumesFrom":""
}
@@ -667,7 +667,7 @@ Get the history of an image
.. sourcecode:: http
GET /images/base/history HTTP/1.1
GET /images/fedora/history HTTP/1.1
**Example response**:
@@ -977,32 +977,37 @@ Create a new image from a container's changes
.. http:post:: /commit
Create a new image from a container's changes
Create a new image from a container's changes
**Example request**:
**Example request**:
.. sourcecode:: http
POST /commit?container=44c004db4b17&m=message&repo=myrepo HTTP/1.1
Content-Type: application/json
{
"Cmd": ["cat", "/world"],
"PortSpecs":["22"]
}
**Example response**:
.. sourcecode:: http
HTTP/1.1 201 OK
Content-Type: application/vnd.docker.raw-stream
.. sourcecode:: http
{"Id":"596069db4bf5"}
POST /commit?container=44c004db4b17&m=message&repo=myrepo HTTP/1.1
**Example response**:
.. sourcecode:: http
HTTP/1.1 201 OK
Content-Type: application/vnd.docker.raw-stream
{"Id":"596069db4bf5"}
:query container: source container
:query repo: repository
:query tag: tag
:query m: commit message
:query author: author (eg. "John Hannibal Smith <hannibal@a-team.com>")
:query run: config automatically applied when the image is run. (ex: {"Cmd": ["cat", "/world"], "PortSpecs":["22"]})
:statuscode 201: no error
:statuscode 404: no such container
:statuscode 500: server error
:query container: source container
:query repo: repository
:query tag: tag
:query m: commit message
:query author: author (eg. "John Hannibal Smith <hannibal@a-team.com>")
:statuscode 201: no error
:statuscode 404: no such container
:statuscode 500: server error
3. Going further

View File

@@ -17,7 +17,7 @@ Docker Remote API v1.2
=====================
- The Remote API is replacing rcli
- Default port in the docker deamon is 4243
- Default port in the docker daemon is 4243
- The API tends to be REST, but for some complex commands, like attach or pull, the HTTP connection is hijacked to transport stdout stdin and stderr
2. Endpoints
@@ -49,7 +49,7 @@ List containers
[
{
"Id": "8dfafdbc3a40",
"Image": "base:latest",
"Image": "ubuntu:latest",
"Command": "echo 1",
"Created": 1367854155,
"Status": "Exit 0",
@@ -59,7 +59,7 @@ List containers
},
{
"Id": "9cd87474be90",
"Image": "base:latest",
"Image": "ubuntu:latest",
"Command": "echo 222222",
"Created": 1367854155,
"Status": "Exit 0",
@@ -69,7 +69,7 @@ List containers
},
{
"Id": "3176a2479c92",
"Image": "base:latest",
"Image": "centos:latest",
"Command": "echo 3333333333333333",
"Created": 1367854154,
"Status": "Exit 0",
@@ -79,7 +79,7 @@ List containers
},
{
"Id": "4cb07b47f9fb",
"Image": "base:latest",
"Image": "fedora:latest",
"Command": "echo 444444444444444444444444444444444",
"Created": 1367854152,
"Status": "Exit 0",
@@ -129,7 +129,7 @@ Create a container
"date"
],
"Dns":null,
"Image":"base",
"Image":"ubuntu",
"Volumes":{},
"VolumesFrom":""
}
@@ -195,7 +195,7 @@ Inspect a container
"date"
],
"Dns": null,
"Image": "base",
"Image": "ubuntu",
"Volumes": {},
"VolumesFrom": ""
},
@@ -317,8 +317,8 @@ Start a container
:statuscode 500: server error
Stop a contaier
***************
Stop a container
****************
.. http:post:: /containers/(id)/stop
@@ -502,16 +502,16 @@ List Images
[
{
"Repository":"base",
"Tag":"ubuntu-12.10",
"Repository":"ubuntu",
"Tag":"precise",
"Id":"b750fe79269d",
"Created":1364102658,
"Size":24653,
"VirtualSize":180116135
},
{
"Repository":"base",
"Tag":"ubuntu-quantal",
"Repository":"ubuntu",
"Tag":"12.04",
"Id":"b750fe79269d",
"Created":1364102658,
"Size":24653,
@@ -545,9 +545,9 @@ List Images
"d6434d954665" -> "d82cbacda43a"
base -> "e9aa60c60128" [style=invis]
"074be284591f" -> "f71189fff3de"
"b750fe79269d" [label="b750fe79269d\nbase",shape=box,fillcolor="paleturquoise",style="filled,rounded"];
"e9aa60c60128" [label="e9aa60c60128\nbase2",shape=box,fillcolor="paleturquoise",style="filled,rounded"];
"9a33b36209ed" [label="9a33b36209ed\ntest",shape=box,fillcolor="paleturquoise",style="filled,rounded"];
"b750fe79269d" [label="b750fe79269d\nubuntu",shape=box,fillcolor="paleturquoise",style="filled,rounded"];
"e9aa60c60128" [label="e9aa60c60128\ncentos",shape=box,fillcolor="paleturquoise",style="filled,rounded"];
"9a33b36209ed" [label="9a33b36209ed\nfedora",shape=box,fillcolor="paleturquoise",style="filled,rounded"];
base [style=invisible]
}
@@ -568,7 +568,7 @@ Create an image
.. sourcecode:: http
POST /images/create?fromImage=base HTTP/1.1
POST /images/create?fromImage=ubuntu HTTP/1.1
**Example response**:
@@ -591,8 +591,8 @@ Create an image
:statuscode 500: server error
Insert a file in a image
************************
Insert a file in an image
*************************
.. http:post:: /images/(name)/insert
@@ -631,7 +631,7 @@ Inspect an image
.. sourcecode:: http
GET /images/base/json HTTP/1.1
GET /images/centos/json HTTP/1.1
**Example response**:
@@ -661,7 +661,7 @@ Inspect an image
"Env":null,
"Cmd": ["/bin/bash"]
,"Dns":null,
"Image":"base",
"Image":"centos",
"Volumes":null,
"VolumesFrom":""
},
@@ -684,7 +684,7 @@ Get the history of an image
.. sourcecode:: http
GET /images/base/history HTTP/1.1
GET /images/fedora/history HTTP/1.1
**Example response**:
@@ -696,7 +696,7 @@ Get the history of an image
[
{
"Id":"b750fe79269d",
"Tag":["base:latest"],
"Tag":["ubuntu:latest"],
"Created":1364102658,
"CreatedBy":"/bin/bash"
},
@@ -870,7 +870,7 @@ Build an image from Dockerfile via stdin
{{ STREAM }}
:query t: tag to be applied to the resulting image in case of success
:query t: repository name to be applied to the resulting image in case of success
:query remote: resource to fetch, as URI
:statuscode 200: no error
:statuscode 500: server error
@@ -985,32 +985,37 @@ Create a new image from a container's changes
.. http:post:: /commit
Create a new image from a container's changes
Create a new image from a container's changes
**Example request**:
**Example request**:
.. sourcecode:: http
.. sourcecode:: http
POST /commit?container=44c004db4b17&m=message&repo=myrepo HTTP/1.1
POST /commit?container=44c004db4b17&m=message&repo=myrepo HTTP/1.1
Content-Type: application/json
{
"Cmd": ["cat", "/world"],
"PortSpecs":["22"]
}
**Example response**:
**Example response**:
.. sourcecode:: http
.. sourcecode:: http
HTTP/1.1 201 OK
HTTP/1.1 201 OK
Content-Type: application/vnd.docker.raw-stream
{"Id":"596069db4bf5"}
{"Id":"596069db4bf5"}
:query container: source container
:query repo: repository
:query tag: tag
:query m: commit message
:query author: author (eg. "John Hannibal Smith <hannibal@a-team.com>")
:query run: config automatically applied when the image is run. (ex: {"Cmd": ["cat", "/world"], "PortSpecs":["22"]})
:statuscode 201: no error
:statuscode 404: no such container
:statuscode 500: server error
:query container: source container
:query repo: repository
:query tag: tag
:query m: commit message
:query author: author (eg. "John Hannibal Smith <hannibal@a-team.com>")
:statuscode 201: no error
:statuscode 404: no such container
:statuscode 500: server error
3. Going further

View File

@@ -17,7 +17,7 @@ Docker Remote API v1.3
=====================
- The Remote API is replacing rcli
- Default port in the docker deamon is 4243
- Default port in the docker daemon is 4243
- The API tends to be REST, but for some complex commands, like attach or pull, the HTTP connection is hijacked to transport stdout stdin and stderr
2. Endpoints
@@ -49,7 +49,7 @@ List containers
[
{
"Id": "8dfafdbc3a40",
"Image": "base:latest",
"Image": "ubuntu:latest",
"Command": "echo 1",
"Created": 1367854155,
"Status": "Exit 0",
@@ -59,7 +59,7 @@ List containers
},
{
"Id": "9cd87474be90",
"Image": "base:latest",
"Image": "ubuntu:latest",
"Command": "echo 222222",
"Created": 1367854155,
"Status": "Exit 0",
@@ -69,7 +69,7 @@ List containers
},
{
"Id": "3176a2479c92",
"Image": "base:latest",
"Image": "centos:latest",
"Command": "echo 3333333333333333",
"Created": 1367854154,
"Status": "Exit 0",
@@ -79,7 +79,7 @@ List containers
},
{
"Id": "4cb07b47f9fb",
"Image": "base:latest",
"Image": "fedora:latest",
"Command": "echo 444444444444444444444444444444444",
"Created": 1367854152,
"Status": "Exit 0",
@@ -130,7 +130,7 @@ Create a container
"date"
],
"Dns":null,
"Image":"base",
"Image":"ubuntu",
"Volumes":{},
"VolumesFrom":""
}
@@ -196,7 +196,7 @@ Inspect a container
"date"
],
"Dns": null,
"Image": "base",
"Image": "ubuntu",
"Volumes": {},
"VolumesFrom": ""
},
@@ -365,8 +365,8 @@ Start a container
:statuscode 500: server error
Stop a contaier
***************
Stop a container
****************
.. http:post:: /containers/(id)/stop
@@ -550,16 +550,16 @@ List Images
[
{
"Repository":"base",
"Tag":"ubuntu-12.10",
"Repository":"ubuntu",
"Tag":"precise",
"Id":"b750fe79269d",
"Created":1364102658,
"Size":24653,
"VirtualSize":180116135
},
{
"Repository":"base",
"Tag":"ubuntu-quantal",
"Repository":"ubuntu",
"Tag":"12.04",
"Id":"b750fe79269d",
"Created":1364102658,
"Size":24653,
@@ -593,9 +593,9 @@ List Images
"d6434d954665" -> "d82cbacda43a"
base -> "e9aa60c60128" [style=invis]
"074be284591f" -> "f71189fff3de"
"b750fe79269d" [label="b750fe79269d\nbase",shape=box,fillcolor="paleturquoise",style="filled,rounded"];
"e9aa60c60128" [label="e9aa60c60128\nbase2",shape=box,fillcolor="paleturquoise",style="filled,rounded"];
"9a33b36209ed" [label="9a33b36209ed\ntest",shape=box,fillcolor="paleturquoise",style="filled,rounded"];
"b750fe79269d" [label="b750fe79269d\nubuntu",shape=box,fillcolor="paleturquoise",style="filled,rounded"];
"e9aa60c60128" [label="e9aa60c60128\ncentos",shape=box,fillcolor="paleturquoise",style="filled,rounded"];
"9a33b36209ed" [label="9a33b36209ed\nfedora",shape=box,fillcolor="paleturquoise",style="filled,rounded"];
base [style=invisible]
}
@@ -616,7 +616,7 @@ Create an image
.. sourcecode:: http
POST /images/create?fromImage=base HTTP/1.1
POST /images/create?fromImage=ubuntu HTTP/1.1
**Example response**:
@@ -639,8 +639,8 @@ Create an image
:statuscode 500: server error
Insert a file in a image
************************
Insert a file in an image
*************************
.. http:post:: /images/(name)/insert
@@ -679,7 +679,7 @@ Inspect an image
.. sourcecode:: http
GET /images/base/json HTTP/1.1
GET /images/centos/json HTTP/1.1
**Example response**:
@@ -709,7 +709,7 @@ Inspect an image
"Env":null,
"Cmd": ["/bin/bash"]
,"Dns":null,
"Image":"base",
"Image":"centos",
"Volumes":null,
"VolumesFrom":""
},
@@ -732,7 +732,7 @@ Get the history of an image
.. sourcecode:: http
GET /images/base/history HTTP/1.1
GET /images/fedora/history HTTP/1.1
**Example response**:
@@ -925,7 +925,7 @@ Build an image from Dockerfile via stdin
The Content-type header should be set to "application/tar".
:query t: tag to be applied to the resulting image in case of success
:query t: repository name (and optionally a tag) to be applied to the resulting image in case of success
:query q: suppress verbose build output
:statuscode 200: no error
:statuscode 500: server error
@@ -1034,32 +1034,37 @@ Create a new image from a container's changes
.. http:post:: /commit
Create a new image from a container's changes
Create a new image from a container's changes
**Example request**:
**Example request**:
.. sourcecode:: http
.. sourcecode:: http
POST /commit?container=44c004db4b17&m=message&repo=myrepo HTTP/1.1
POST /commit?container=44c004db4b17&m=message&repo=myrepo HTTP/1.1
Content-Type: application/json
{
"Cmd": ["cat", "/world"],
"PortSpecs":["22"]
}
**Example response**:
**Example response**:
.. sourcecode:: http
.. sourcecode:: http
HTTP/1.1 201 OK
HTTP/1.1 201 OK
Content-Type: application/vnd.docker.raw-stream
{"Id":"596069db4bf5"}
{"Id":"596069db4bf5"}
:query container: source container
:query repo: repository
:query tag: tag
:query m: commit message
:query author: author (eg. "John Hannibal Smith <hannibal@a-team.com>")
:query run: config automatically applied when the image is run. (ex: {"Cmd": ["cat", "/world"], "PortSpecs":["22"]})
:statuscode 201: no error
:statuscode 404: no such container
:statuscode 500: server error
:query container: source container
:query repo: repository
:query tag: tag
:query m: commit message
:query author: author (eg. "John Hannibal Smith <hannibal@a-team.com>")
:statuscode 201: no error
:statuscode 404: no such container
:statuscode 500: server error
Monitor Docker's events

View File

@@ -2,6 +2,8 @@
:description: API Documentation for Docker
:keywords: API, Docker, rcli, REST, documentation
:orphan:
======================
Docker Remote API v1.4
======================
@@ -12,7 +14,7 @@ Docker Remote API v1.4
=====================
- The Remote API is replacing rcli
- Default port in the docker deamon is 4243
- Default port in the docker daemon is 4243
- The API tends to be REST, but for some complex commands, like attach or pull, the HTTP connection is hijacked to transport stdout stdin and stderr
2. Endpoints
@@ -44,7 +46,7 @@ List containers
[
{
"Id": "8dfafdbc3a40",
"Image": "base:latest",
"Image": "ubuntu:latest",
"Command": "echo 1",
"Created": 1367854155,
"Status": "Exit 0",
@@ -54,7 +56,7 @@ List containers
},
{
"Id": "9cd87474be90",
"Image": "base:latest",
"Image": "ubuntu:latest",
"Command": "echo 222222",
"Created": 1367854155,
"Status": "Exit 0",
@@ -64,7 +66,7 @@ List containers
},
{
"Id": "3176a2479c92",
"Image": "base:latest",
"Image": "centos:latest",
"Command": "echo 3333333333333333",
"Created": 1367854154,
"Status": "Exit 0",
@@ -74,7 +76,7 @@ List containers
},
{
"Id": "4cb07b47f9fb",
"Image": "base:latest",
"Image": "fedora:latest",
"Command": "echo 444444444444444444444444444444444",
"Created": 1367854152,
"Status": "Exit 0",
@@ -117,6 +119,7 @@ Create a container
"AttachStdout":true,
"AttachStderr":true,
"PortSpecs":null,
"Privileged": false,
"Tty":false,
"OpenStdin":false,
"StdinOnce":false,
@@ -125,9 +128,11 @@ Create a container
"date"
],
"Dns":null,
"Image":"base",
"Image":"ubuntu",
"Volumes":{},
"VolumesFrom":""
"VolumesFrom":"",
"WorkingDir":""
}
**Example response**:
@@ -191,9 +196,11 @@ Inspect a container
"date"
],
"Dns": null,
"Image": "base",
"Image": "ubuntu",
"Volumes": {},
"VolumesFrom": ""
"VolumesFrom": "",
"WorkingDir":""
},
"State": {
"Running": false,
@@ -217,6 +224,7 @@ Inspect a container
:statuscode 200: no error
:statuscode 404: no such container
:statuscode 409: conflict between containers and images
:statuscode 500: server error
@@ -350,7 +358,8 @@ Start a container
Content-Type: application/json
{
"Binds":["/tmp:/tmp"]
"Binds":["/tmp:/tmp"],
"LxcConf":[{"Key":"lxc.utsname","Value":"docker"}]
}
**Example response**:
@@ -361,13 +370,13 @@ Start a container
Content-Type: text/plain
:jsonparam hostConfig: the container's host configuration (optional)
:statuscode 200: no error
:statuscode 204: no error
:statuscode 404: no such container
:statuscode 500: server error
Stop a contaier
***************
Stop a container
****************
.. http:post:: /containers/(id)/stop
@@ -526,6 +535,38 @@ Remove a container
:statuscode 500: server error
Copy files or folders from a container
**************************************
.. http:post:: /containers/(id)/copy
Copy files or folders of container ``id``
**Example request**:
.. sourcecode:: http
POST /containers/4fa6e0f0c678/copy HTTP/1.1
Content-Type: application/json
{
"Resource":"test.txt"
}
**Example response**:
.. sourcecode:: http
HTTP/1.1 200 OK
Content-Type: application/octet-stream
{{ STREAM }}
:statuscode 200: no error
:statuscode 404: no such container
:statuscode 500: server error
2.2 Images
----------
@@ -551,16 +592,16 @@ List Images
[
{
"Repository":"base",
"Tag":"ubuntu-12.10",
"Repository":"ubuntu",
"Tag":"precise",
"Id":"b750fe79269d",
"Created":1364102658,
"Size":24653,
"VirtualSize":180116135
},
{
"Repository":"base",
"Tag":"ubuntu-quantal",
"Repository":"ubuntu",
"Tag":"12.04",
"Id":"b750fe79269d",
"Created":1364102658,
"Size":24653,
@@ -594,9 +635,9 @@ List Images
"d6434d954665" -> "d82cbacda43a"
base -> "e9aa60c60128" [style=invis]
"074be284591f" -> "f71189fff3de"
"b750fe79269d" [label="b750fe79269d\nbase",shape=box,fillcolor="paleturquoise",style="filled,rounded"];
"e9aa60c60128" [label="e9aa60c60128\nbase2",shape=box,fillcolor="paleturquoise",style="filled,rounded"];
"9a33b36209ed" [label="9a33b36209ed\ntest",shape=box,fillcolor="paleturquoise",style="filled,rounded"];
"b750fe79269d" [label="b750fe79269d\nubuntu",shape=box,fillcolor="paleturquoise",style="filled,rounded"];
"e9aa60c60128" [label="e9aa60c60128\ncentos",shape=box,fillcolor="paleturquoise",style="filled,rounded"];
"9a33b36209ed" [label="9a33b36209ed\nfedora",shape=box,fillcolor="paleturquoise",style="filled,rounded"];
base [style=invisible]
}
@@ -617,7 +658,7 @@ Create an image
.. sourcecode:: http
POST /images/create?fromImage=base HTTP/1.1
POST /images/create?fromImage=ubuntu HTTP/1.1
**Example response**:
@@ -640,8 +681,8 @@ Create an image
:statuscode 500: server error
Insert a file in a image
************************
Insert a file in an image
*************************
.. http:post:: /images/(name)/insert
@@ -680,7 +721,7 @@ Inspect an image
.. sourcecode:: http
GET /images/base/json HTTP/1.1
GET /images/centos/json HTTP/1.1
**Example response**:
@@ -710,16 +751,18 @@ Inspect an image
"Env":null,
"Cmd": ["/bin/bash"]
,"Dns":null,
"Image":"base",
"Image":"centos",
"Volumes":null,
"VolumesFrom":""
"VolumesFrom":"",
"WorkingDir":""
},
"Size": 6824592
}
:statuscode 200: no error
:statuscode 404: no such image
:statuscode 500: server error
:statuscode 409: conflict between containers and images
:statuscode 500: server error
Get the history of an image
@@ -733,7 +776,7 @@ Get the history of an image
.. sourcecode:: http
GET /images/base/history HTTP/1.1
GET /images/fedora/history HTTP/1.1
**Example response**:
@@ -765,29 +808,29 @@ Push an image on the registry
.. http:post:: /images/(name)/push
Push the image ``name`` on the registry
Push the image ``name`` on the registry
**Example request**:
**Example request**:
.. sourcecode:: http
.. sourcecode:: http
POST /images/test/push HTTP/1.1
{{ authConfig }}
POST /images/test/push HTTP/1.1
{{ authConfig }}
**Example response**:
**Example response**:
.. sourcecode:: http
.. sourcecode:: http
HTTP/1.1 200 OK
Content-Type: application/json
HTTP/1.1 200 OK
Content-Type: application/json
{"status":"Pushing..."}
{"status":"Pushing", "progress":"1/? (n/a)"}
{"error":"Invalid..."}
...
{"status":"Pushing..."}
{"status":"Pushing", "progress":"1/? (n/a)"}
{"error":"Invalid..."}
...
:query registry: the registry you wan to push, optional
:statuscode 200: no error
:query registry: the registry you wan to push, optional
:statuscode 200: no error
:statuscode 404: no such image
:statuscode 500: server error
@@ -900,36 +943,37 @@ Build an image from Dockerfile via stdin
.. http:post:: /build
Build an image from Dockerfile via stdin
Build an image from Dockerfile via stdin
**Example request**:
**Example request**:
.. sourcecode:: http
.. sourcecode:: http
POST /build HTTP/1.1
{{ STREAM }}
POST /build HTTP/1.1
**Example response**:
{{ STREAM }}
.. sourcecode:: http
**Example response**:
HTTP/1.1 200 OK
{{ STREAM }}
.. sourcecode:: http
HTTP/1.1 200 OK
{{ STREAM }}
The stream must be a tar archive compressed with one of the following algorithms:
identity (no compression), gzip, bzip2, xz. The archive must include a file called
`Dockerfile` at its root. It may include any number of other files, which will be
accessible in the build context (See the ADD build command).
The stream must be a tar archive compressed with one of the following algorithms:
identity (no compression), gzip, bzip2, xz. The archive must include a file called
`Dockerfile` at its root. It may include any number of other files, which will be
accessible in the build context (See the ADD build command).
The Content-type header should be set to "application/tar".
The Content-type header should be set to "application/tar".
:query t: tag to be applied to the resulting image in case of success
:query q: suppress verbose build output
:statuscode 200: no error
:statuscode 500: server error
:query t: repository name (and optionally a tag) to be applied to the resulting image in case of success
:query q: suppress verbose build output
:query nocache: do not use the cache when building the image
:statuscode 200: no error
:statuscode 500: server error
Check auth configuration
@@ -949,7 +993,8 @@ Check auth configuration
{
"username":"hannibal",
"password:"xxxx",
"email":"hannibal@a-team.com"
"email":"hannibal@a-team.com",
"serveraddress":"https://index.docker.io/v1/"
}
**Example response**:
@@ -990,7 +1035,8 @@ Display system-wide information
"NFd": 11,
"NGoroutines":21,
"MemoryLimit":true,
"SwapLimit":false
"SwapLimit":false,
"IPv4Forwarding":true
}
:statuscode 200: no error
@@ -1023,8 +1069,8 @@ Show the docker version information
"GoVersion":"go1.0.3"
}
:statuscode 200: no error
:statuscode 500: server error
:statuscode 200: no error
:statuscode 500: server error
Create a new image from a container's changes
@@ -1032,31 +1078,66 @@ Create a new image from a container's changes
.. http:post:: /commit
Create a new image from a container's changes
Create a new image from a container's changes
**Example request**:
.. sourcecode:: http
POST /commit?container=44c004db4b17&m=message&repo=myrepo HTTP/1.1
Content-Type: application/json
{
"Cmd": ["cat", "/world"],
"PortSpecs":["22"]
}
**Example response**:
.. sourcecode:: http
HTTP/1.1 201 OK
Content-Type: application/vnd.docker.raw-stream
{"Id":"596069db4bf5"}
:query container: source container
:query repo: repository
:query tag: tag
:query m: commit message
:query author: author (eg. "John Hannibal Smith <hannibal@a-team.com>")
:statuscode 201: no error
:statuscode 404: no such container
:statuscode 500: server error
Monitor Docker's events
***********************
.. http:get:: /events
Get events from docker, either in real time via streaming, or via polling (using `since`)
**Example request**:
.. sourcecode:: http
.. sourcecode:: http
POST /commit?container=44c004db4b17&m=message&repo=myrepo HTTP/1.1
POST /events?since=1374067924
**Example response**:
.. sourcecode:: http
HTTP/1.1 201 OK
Content-Type: application/vnd.docker.raw-stream
HTTP/1.1 200 OK
Content-Type: application/json
{"Id":"596069db4bf5"}
{"status":"create","id":"dfdf82bd3881","from":"ubuntu:latest","time":1374067924}
{"status":"start","id":"dfdf82bd3881","from":"ubuntu:latest","time":1374067924}
{"status":"stop","id":"dfdf82bd3881","from":"ubuntu:latest","time":1374067966}
{"status":"destroy","id":"dfdf82bd3881","from":"ubuntu:latest","time":1374067970}
:query container: source container
:query repo: repository
:query tag: tag
:query m: commit message
:query author: author (eg. "John Hannibal Smith <hannibal@a-team.com>")
:query run: config automatically applied when the image is run. (ex: {"Cmd": ["cat", "/world"], "PortSpecs":["22"]})
:statuscode 201: no error
:statuscode 404: no such container
:query since: timestamp used for polling
:statuscode 200: no error
:statuscode 500: server error
@@ -1088,6 +1169,8 @@ In this version of the API, /attach, uses hijacking to transport stdin, stdout a
-----------------
To enable cross origin requests to the remote api add the flag "-api-enable-cors" when running docker in daemon mode.
docker -d -H="192.168.1.9:4243" -api-enable-cors
.. code-block:: bash
docker -d -H="192.168.1.9:4243" -api-enable-cors

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -14,5 +14,5 @@ Your programs and scripts can access Docker's functionality via these interfaces
registry_api
index_api
docker_remote_api
remote_api_client_libraries

View File

@@ -6,8 +6,6 @@
Docker Index API
=================
.. contents:: Table of Contents
1. Brief introduction
=====================
@@ -42,7 +40,7 @@ User Repo
Authorization: Basic akmklmasadalkm==
X-Docker-Token: true
[{id: 9e89cc6f0bc3c38722009fe6857087b486531f9a779a0c17e3ed29dae8f12c4f}]
[{"id": "9e89cc6f0bc3c38722009fe6857087b486531f9a779a0c17e3ed29dae8f12c4f"}]
:parameter namespace: the namespace for the repo
:parameter repo_name: the name for the repo
@@ -54,7 +52,8 @@ User Repo
HTTP/1.1 200
Vary: Accept
Content-Type: application/json
WWW-Authenticate: Token signature=123abc,repository=foo/bar,access=write
WWW-Authenticate: Token signature=123abc,repository="foo/bar",access=write
X-Docker-Token: signature=123abc,repository="foo/bar",access=write
X-Docker-Endpoints: registry-1.docker.io [, registry-2.docker.io]
""
@@ -92,7 +91,8 @@ User Repo
HTTP/1.1 202
Vary: Accept
Content-Type: application/json
WWW-Authenticate: Token signature=123abc,repository=foo/bar,access=delete
WWW-Authenticate: Token signature=123abc,repository="foo/bar",access=delete
X-Docker-Token: signature=123abc,repository="foo/bar",access=delete
X-Docker-Endpoints: registry-1.docker.io [, registry-2.docker.io]
""
@@ -124,7 +124,7 @@ Library Repo
Authorization: Basic akmklmasadalkm==
X-Docker-Token: true
[{id: 9e89cc6f0bc3c38722009fe6857087b486531f9a779a0c17e3ed29dae8f12c4f}]
[{"id": "9e89cc6f0bc3c38722009fe6857087b486531f9a779a0c17e3ed29dae8f12c4f"}]
:parameter repo_name: the library name for the repo
@@ -135,7 +135,8 @@ Library Repo
HTTP/1.1 200
Vary: Accept
Content-Type: application/json
WWW-Authenticate: Token signature=123abc,repository=library/foobar,access=write
WWW-Authenticate: Token signature=123abc,repository="library/foobar",access=write
X-Docker-Token: signature=123abc,repository="foo/bar",access=write
X-Docker-Endpoints: registry-1.docker.io [, registry-2.docker.io]
""
@@ -174,7 +175,8 @@ Library Repo
HTTP/1.1 202
Vary: Accept
Content-Type: application/json
WWW-Authenticate: Token signature=123abc,repository=library/foobar,access=delete
WWW-Authenticate: Token signature=123abc,repository="library/foobar",access=delete
X-Docker-Token: signature=123abc,repository="foo/bar",access=delete
X-Docker-Endpoints: registry-1.docker.io [, registry-2.docker.io]
""
@@ -205,8 +207,8 @@ User Repo Images
Content-Type: application/json
Authorization: Basic akmklmasadalkm==
[{id: 9e89cc6f0bc3c38722009fe6857087b486531f9a779a0c17e3ed29dae8f12c4f,
checksum: b486531f9a779a0c17e3ed29dae8f12c4f9e89cc6f0bc3c38722009fe6857087}]
[{"id": "9e89cc6f0bc3c38722009fe6857087b486531f9a779a0c17e3ed29dae8f12c4f",
"checksum": "b486531f9a779a0c17e3ed29dae8f12c4f9e89cc6f0bc3c38722009fe6857087"}]
:parameter namespace: the namespace for the repo
:parameter repo_name: the name for the repo
@@ -250,10 +252,10 @@ User Repo Images
Vary: Accept
Content-Type: application/json
[{id: 9e89cc6f0bc3c38722009fe6857087b486531f9a779a0c17e3ed29dae8f12c4f,
checksum: b486531f9a779a0c17e3ed29dae8f12c4f9e89cc6f0bc3c38722009fe6857087},
{id: ertwetewtwe38722009fe6857087b486531f9a779a0c1dfddgfgsdgdsgds,
checksum: 34t23f23fc17e3ed29dae8f12c4f9e89cc6f0bsdfgfsdgdsgdsgerwgew}]
[{"id": "9e89cc6f0bc3c38722009fe6857087b486531f9a779a0c17e3ed29dae8f12c4f",
"checksum": "b486531f9a779a0c17e3ed29dae8f12c4f9e89cc6f0bc3c38722009fe6857087"},
{"id": "ertwetewtwe38722009fe6857087b486531f9a779a0c1dfddgfgsdgdsgds",
"checksum": "34t23f23fc17e3ed29dae8f12c4f9e89cc6f0bsdfgfsdgdsgdsgerwgew"}]
:statuscode 200: OK
:statuscode 404: Not found
@@ -275,8 +277,8 @@ Library Repo Images
Content-Type: application/json
Authorization: Basic akmklmasadalkm==
[{id: 9e89cc6f0bc3c38722009fe6857087b486531f9a779a0c17e3ed29dae8f12c4f,
checksum: b486531f9a779a0c17e3ed29dae8f12c4f9e89cc6f0bc3c38722009fe6857087}]
[{"id": "9e89cc6f0bc3c38722009fe6857087b486531f9a779a0c17e3ed29dae8f12c4f",
"checksum": "b486531f9a779a0c17e3ed29dae8f12c4f9e89cc6f0bc3c38722009fe6857087"}]
:parameter repo_name: the library name for the repo
@@ -318,10 +320,10 @@ Library Repo Images
Vary: Accept
Content-Type: application/json
[{id: 9e89cc6f0bc3c38722009fe6857087b486531f9a779a0c17e3ed29dae8f12c4f,
checksum: b486531f9a779a0c17e3ed29dae8f12c4f9e89cc6f0bc3c38722009fe6857087},
{id: ertwetewtwe38722009fe6857087b486531f9a779a0c1dfddgfgsdgdsgds,
checksum: 34t23f23fc17e3ed29dae8f12c4f9e89cc6f0bsdfgfsdgdsgdsgerwgew}]
[{"id": "9e89cc6f0bc3c38722009fe6857087b486531f9a779a0c17e3ed29dae8f12c4f",
"checksum": "b486531f9a779a0c17e3ed29dae8f12c4f9e89cc6f0bc3c38722009fe6857087"},
{"id": "ertwetewtwe38722009fe6857087b486531f9a779a0c1dfddgfgsdgdsgds",
"checksum": "34t23f23fc17e3ed29dae8f12c4f9e89cc6f0bsdfgfsdgdsgdsgerwgew"}]
:statuscode 200: OK
:statuscode 404: Not found
@@ -541,10 +543,11 @@ Search
Content-Type: application/json
{"query":"search_term",
"num_results": 2,
"num_results": 3,
"results" : [
{"name": "dotcloud/base", "description": "A base ubuntu64 image..."},
{"name": "base2", "description": "A base ubuntu64 image..."},
{"name": "ubuntu", "description": "An ubuntu image..."},
{"name": "centos", "description": "A centos image..."},
{"name": "fedora", "description": "A fedora image..."}
]
}

View File

@@ -6,7 +6,6 @@
Docker Registry API
===================
.. contents:: Table of Contents
1. Brief introduction
=====================
@@ -61,7 +60,7 @@ Layer
Host: registry-1.docker.io
Accept: application/json
Content-Type: application/json
Authorization: Token akmklmasadalkmsdfgsdgdge33
Authorization: Token signature=123abc,repository="foo/bar",access=read
:parameter image_id: the id for the layer you want to get
@@ -71,39 +70,10 @@ Layer
HTTP/1.1 200
Vary: Accept
Content-Type: application/json
X-Docker-Registry-Version: 0.6.0
Cookie: (Cookie provided by the Registry)
{
id: "088b4505aa3adc3d35e79c031fa126b403200f02f51920fbd9b7c503e87c7a2c",
parent: "aeee6396d62273d180a49c96c62e45438d87c7da4a5cf5d2be6bee4e21bc226f",
created: "2013-04-30T17:46:10.843673+03:00",
container: "8305672a76cc5e3d168f97221106ced35a76ec7ddbb03209b0f0d96bf74f6ef7",
container_config: {
Hostname: "host-test",
User: "",
Memory: 0,
MemorySwap: 0,
AttachStdin: false,
AttachStdout: false,
AttachStderr: false,
PortSpecs: null,
Tty: false,
OpenStdin: false,
StdinOnce: false,
Env: null,
Cmd: [
"/bin/bash",
"-c",
"apt-get -q -yy -f install libevent-dev"
],
Dns: null,
Image: "imagename/blah",
Volumes: { },
VolumesFrom: ""
},
docker_version: "0.1.7"
}
{layer binary data stream}
:statuscode 200: OK
:statuscode 401: Requires authorization
@@ -120,40 +90,10 @@ Layer
PUT /v1/images/088b4505aa3adc3d35e79c031fa126b403200f02f51920fbd9b7c503e87c7a2c/layer HTTP/1.1
Host: registry-1.docker.io
Accept: application/json
Content-Type: application/json
Authorization: Token akmklmasadalkmsdfgsdgdge33
Transfer-Encoding: chunked
Authorization: Token signature=123abc,repository="foo/bar",access=write
{
id: "088b4505aa3adc3d35e79c031fa126b403200f02f51920fbd9b7c503e87c7a2c",
parent: "aeee6396d62273d180a49c96c62e45438d87c7da4a5cf5d2be6bee4e21bc226f",
created: "2013-04-30T17:46:10.843673+03:00",
container: "8305672a76cc5e3d168f97221106ced35a76ec7ddbb03209b0f0d96bf74f6ef7",
container_config: {
Hostname: "host-test",
User: "",
Memory: 0,
MemorySwap: 0,
AttachStdin: false,
AttachStdout: false,
AttachStderr: false,
PortSpecs: null,
Tty: false,
OpenStdin: false,
StdinOnce: false,
Env: null,
Cmd: [
"/bin/bash",
"-c",
"apt-get -q -yy -f install libevent-dev"
],
Dns: null,
Image: "imagename/blah",
Volumes: { },
VolumesFrom: ""
},
docker_version: "0.1.7"
}
{layer binary data stream}
:parameter image_id: the id for the layer you want to get
@@ -165,6 +105,7 @@ Layer
HTTP/1.1 200
Vary: Accept
Content-Type: application/json
X-Docker-Registry-Version: 0.6.0
""
@@ -191,13 +132,38 @@ Image
Cookie: (Cookie provided by the Registry)
{
id: 088b4505aa3adc3d35e79c031fa126b403200f02f51920fbd9b7c503e87c7a2c,
“checksum”: “sha256:b486531f9a779a0c17e3ed29dae8f12c4f9e89cc6f0bc3c38722009fe6857087”
}
id: "088b4505aa3adc3d35e79c031fa126b403200f02f51920fbd9b7c503e87c7a2c",
parent: "aeee6396d62273d180a49c96c62e45438d87c7da4a5cf5d2be6bee4e21bc226f",
created: "2013-04-30T17:46:10.843673+03:00",
container: "8305672a76cc5e3d168f97221106ced35a76ec7ddbb03209b0f0d96bf74f6ef7",
container_config: {
Hostname: "host-test",
User: "",
Memory: 0,
MemorySwap: 0,
AttachStdin: false,
AttachStdout: false,
AttachStderr: false,
PortSpecs: null,
Tty: false,
OpenStdin: false,
StdinOnce: false,
Env: null,
Cmd: [
"/bin/bash",
"-c",
"apt-get -q -yy -f install libevent-dev"
],
Dns: null,
Image: "imagename/blah",
Volumes: { },
VolumesFrom: ""
},
docker_version: "0.1.7"
}
:parameter image_id: the id for the layer you want to get
**Example Response**:
.. sourcecode:: http
@@ -205,6 +171,7 @@ Image
HTTP/1.1 200
Vary: Accept
Content-Type: application/json
X-Docker-Registry-Version: 0.6.0
""
@@ -234,11 +201,40 @@ Image
HTTP/1.1 200
Vary: Accept
Content-Type: application/json
X-Docker-Registry-Version: 0.6.0
X-Docker-Size: 456789
X-Docker-Checksum: b486531f9a779a0c17e3ed29dae8f12c4f9e89cc6f0bc3c38722009fe6857087
{
id: 088b4505aa3adc3d35e79c031fa126b403200f02f51920fbd9b7c503e87c7a2c,
“checksum”: “sha256:b486531f9a779a0c17e3ed29dae8f12c4f9e89cc6f0bc3c38722009fe6857087”
}
id: "088b4505aa3adc3d35e79c031fa126b403200f02f51920fbd9b7c503e87c7a2c",
parent: "aeee6396d62273d180a49c96c62e45438d87c7da4a5cf5d2be6bee4e21bc226f",
created: "2013-04-30T17:46:10.843673+03:00",
container: "8305672a76cc5e3d168f97221106ced35a76ec7ddbb03209b0f0d96bf74f6ef7",
container_config: {
Hostname: "host-test",
User: "",
Memory: 0,
MemorySwap: 0,
AttachStdin: false,
AttachStdout: false,
AttachStderr: false,
PortSpecs: null,
Tty: false,
OpenStdin: false,
StdinOnce: false,
Env: null,
Cmd: [
"/bin/bash",
"-c",
"apt-get -q -yy -f install libevent-dev"
],
Dns: null,
Image: "imagename/blah",
Volumes: { },
VolumesFrom: ""
},
docker_version: "0.1.7"
}
:statuscode 200: OK
:statuscode 401: Requires authorization
@@ -271,6 +267,7 @@ Ancestry
HTTP/1.1 200
Vary: Accept
Content-Type: application/json
X-Docker-Registry-Version: 0.6.0
["088b4502f51920fbd9b7c503e87c7a2c05aa3adc3d35e79c031fa126b403200f",
"aeee63968d87c7da4a5cf5d2be6bee4e21bc226fd62273d180a49c96c62e4543",
@@ -297,6 +294,7 @@ Ancestry
Host: registry-1.docker.io
Accept: application/json
Content-Type: application/json
X-Docker-Registry-Version: 0.6.0
Cookie: (Cookie provided by the Registry)
:parameter namespace: namespace for the repo
@@ -309,10 +307,11 @@ Ancestry
HTTP/1.1 200
Vary: Accept
Content-Type: application/json
X-Docker-Registry-Version: 0.6.0
{
"latest": "9e89cc6f0bc3c38722009fe6857087b486531f9a779a0c17e3ed29dae8f12c4f",
0.1.1: b486531f9a779a0c17e3ed29dae8f12c4f9e89cc6f0bc3c38722009fe6857087
"0.1.1": "b486531f9a779a0c17e3ed29dae8f12c4f9e89cc6f0bc3c38722009fe6857087"
}
:statuscode 200: OK
@@ -332,6 +331,7 @@ Ancestry
Host: registry-1.docker.io
Accept: application/json
Content-Type: application/json
X-Docker-Registry-Version: 0.6.0
Cookie: (Cookie provided by the Registry)
:parameter namespace: namespace for the repo
@@ -345,6 +345,7 @@ Ancestry
HTTP/1.1 200
Vary: Accept
Content-Type: application/json
X-Docker-Registry-Version: 0.6.0
"9e89cc6f0bc3c38722009fe6857087b486531f9a779a0c17e3ed29dae8f12c4f"
@@ -377,6 +378,7 @@ Ancestry
HTTP/1.1 200
Vary: Accept
Content-Type: application/json
X-Docker-Registry-Version: 0.6.0
""
@@ -399,7 +401,7 @@ Ancestry
Content-Type: application/json
Cookie: (Cookie provided by the Registry)
9e89cc6f0bc3c38722009fe6857087b486531f9a779a0c17e3ed29dae8f12c4f
"9e89cc6f0bc3c38722009fe6857087b486531f9a779a0c17e3ed29dae8f12c4f"
:parameter namespace: namespace for the repo
:parameter repository: name for the repo
@@ -412,6 +414,7 @@ Ancestry
HTTP/1.1 200
Vary: Accept
Content-Type: application/json
X-Docker-Registry-Version: 0.6.0
""
@@ -449,6 +452,7 @@ Ancestry
HTTP/1.1 200
Vary: Accept
Content-Type: application/json
X-Docker-Registry-Version: 0.6.0
""
@@ -456,8 +460,41 @@ Ancestry
:statuscode 401: Requires authorization
:statuscode 404: Repository not found
3.0 Authorization
=================
2.4 Status
----------
.. http:get:: /v1/_ping
Check status of the registry. This endpoint is also used to determine if
the registry supports SSL.
**Example Request**:
.. sourcecode:: http
GET /v1/_ping HTTP/1.1
Host: registry-1.docker.io
Accept: application/json
Content-Type: application/json
""
**Example Response**:
.. sourcecode:: http
HTTP/1.1 200
Vary: Accept
Content-Type: application/json
X-Docker-Registry-Version: 0.6.0
""
:statuscode 200: OK
3 Authorization
===============
This is where we describe the authorization process, including the tokens and cookies.
TODO: add more info.

View File

@@ -2,13 +2,12 @@
:description: Documentation for docker Registry and Registry API
:keywords: docker, registry, api, index
.. _registryindexspec:
=====================
Registry & index Spec
Registry & Index Spec
=====================
.. contents:: Table of Contents
1. The 3 roles
===============
@@ -154,7 +153,7 @@ API (pulling repository foo/bar):
.. note::
**Its possible not to use the Index at all!** In this case, a deployed version of the Registry is deployed to store and serve images. Those images are not authentified and the security is not guaranteed.
**Its possible not to use the Index at all!** In this case, a deployed version of the Registry is deployed to store and serve images. Those images are not authenticated and the security is not guaranteed.
.. note::
@@ -563,8 +562,8 @@ Next request::
Cookie: session="wD/J7LqL5ctqw8haL10vgfhrb2Q=?foo=UydiYXInCnAxCi4=&timestamp=RjEzNjYzMTQ5NDcuNDc0NjQzCi4="
7.0 Document Version
---------------------
7 Document Version
====================
- 1.0 : May 6th 2013 : initial release
- 1.1 : June 1st 2013 : Added Delete Repository and way to handle new source namespace.

View File

@@ -0,0 +1,39 @@
:title: Remote API Client Libraries
:description: Various client libraries available to use with the Docker remote API
:keywords: API, Docker, index, registry, REST, documentation, clients, Python, Ruby, Javascript, Erlang, Go
==================================
Docker Remote API Client Libraries
==================================
These libraries have not been tested by the Docker Maintainers for
compatibility. Please file issues with the library owners. If you
find more library implementations, please list them in Docker doc bugs
and we will add the libraries here.
+----------------------+----------------+--------------------------------------------+----------+
| Language/Framework | Name | Repository | Status |
+======================+================+============================================+==========+
| Python | docker-py | https://github.com/dotcloud/docker-py | Active |
+----------------------+----------------+--------------------------------------------+----------+
| Ruby | docker-client | https://github.com/geku/docker-client | Outdated |
+----------------------+----------------+--------------------------------------------+----------+
| Ruby | docker-api | https://github.com/swipely/docker-api | Active |
+----------------------+----------------+--------------------------------------------+----------+
| Javascript (NodeJS) | docker.io | https://github.com/appersonlabs/docker.io | Active |
| | | Install via NPM: `npm install docker.io` | |
+----------------------+----------------+--------------------------------------------+----------+
| Javascript | docker-js | https://github.com/dgoujard/docker-js | Active |
+----------------------+----------------+--------------------------------------------+----------+
| Javascript (Angular) | dockerui | https://github.com/crosbymichael/dockerui | Active |
| **WebUI** | | | |
+----------------------+----------------+--------------------------------------------+----------+
| Java | docker-java | https://github.com/kpelykh/docker-java | Active |
+----------------------+----------------+--------------------------------------------+----------+
| Erlang | erldocker | https://github.com/proger/erldocker | Active |
+----------------------+----------------+--------------------------------------------+----------+
| Go | go-dockerclient| https://github.com/fsouza/go-dockerclient | Active |
+----------------------+----------------+--------------------------------------------+----------+
| PHP | Alvine | http://pear.alvine.io/ (alpha) | Active |
+----------------------+----------------+--------------------------------------------+----------+

File diff suppressed because it is too large Load Diff

View File

@@ -1,13 +0,0 @@
:title: Attach Command
:description: Attach to a running container
:keywords: attach, container, docker, documentation
===========================================
``attach`` -- Attach to a running container
===========================================
::
Usage: docker attach CONTAINER
Attach to a running container

View File

@@ -1,44 +0,0 @@
:title: Build Command
:description: Build a new image from the Dockerfile passed via stdin
:keywords: build, docker, container, documentation
================================================
``build`` -- Build a container from a Dockerfile
================================================
::
Usage: docker build [OPTIONS] PATH | URL | -
Build a new container image from the source code at PATH
-t="": Tag to be applied to the resulting image in case of success.
-q=false: Suppress verbose build output.
When a single Dockerfile is given as URL, then no context is set. When a git repository is set as URL, the repository is used as context
Examples
--------
.. code-block:: bash
docker build .
| This will read the Dockerfile from the current directory. It will also send any other files and directories found in the current directory to the docker daemon.
| The contents of this directory would be used by ADD commands found within the Dockerfile.
| This will send a lot of data to the docker daemon if the current directory contains a lot of data.
| If the absolute path is provided instead of '.', only the files and directories required by the ADD commands from the Dockerfile will be added to the context and transferred to the docker daemon.
|
.. code-block:: bash
docker build - < Dockerfile
| This will read a Dockerfile from Stdin without context. Due to the lack of a context, no contents of any local directory will be sent to the docker daemon.
| ADD doesn't work when running in this mode due to the absence of the context, thus having no source files to copy to the container.
.. code-block:: bash
docker build github.com/creack/docker-firefox
| This will clone the github repository and use it as context. The Dockerfile at the root of the repository is used as Dockerfile.
| Note that you can specify an arbitrary git repository by using the 'git://' schema.

View File

@@ -1,32 +0,0 @@
:title: Commit Command
:description: Create a new image from a container's changes
:keywords: commit, docker, container, documentation
===========================================================
``commit`` -- Create a new image from a container's changes
===========================================================
::
Usage: docker commit [OPTIONS] CONTAINER [REPOSITORY [TAG]]
Create a new image from a container's changes
-m="": Commit message
-author="": Author (eg. "John Hannibal Smith <hannibal@a-team.com>"
-run="": Config automatically applied when the image is run. "+`(ex: {"Cmd": ["cat", "/world"], "PortSpecs": ["22"]}')
Full -run example::
{"Hostname": "",
"User": "",
"CpuShares": 0,
"Memory": 0,
"MemorySwap": 0,
"PortSpecs": ["22", "80", "443"],
"Tty": true,
"OpenStdin": true,
"StdinOnce": true,
"Env": ["FOO=BAR", "FOO2=BAR2"],
"Cmd": ["cat", "-e", "/etc/resolv.conf"],
"Dns": ["8.8.8.8", "8.8.4.4"]}

View File

@@ -1,13 +0,0 @@
:title: Diff Command
:description: Inspect changes on a container's filesystem
:keywords: diff, docker, container, documentation
=======================================================
``diff`` -- Inspect changes on a container's filesystem
=======================================================
::
Usage: docker diff CONTAINER [OPTIONS]
Inspect changes on a container's filesystem

View File

@@ -1,13 +0,0 @@
:title: Export Command
:description: Export the contents of a filesystem as a tar archive
:keywords: export, docker, container, documentation
=================================================================
``export`` -- Stream the contents of a container as a tar archive
=================================================================
::
Usage: docker export CONTAINER
Export the contents of a filesystem as a tar archive

View File

@@ -1,13 +0,0 @@
:title: History Command
:description: Show the history of an image
:keywords: history, docker, container, documentation
===========================================
``history`` -- Show the history of an image
===========================================
::
Usage: docker history [OPTIONS] IMAGE
Show the history of an image

View File

@@ -1,26 +0,0 @@
:title: Images Command
:description: List images
:keywords: images, docker, container, documentation
=========================
``images`` -- List images
=========================
::
Usage: docker images [OPTIONS] [NAME]
List images
-a=false: show all images
-q=false: only show numeric IDs
-viz=false: output in graphviz format
Displaying images visually
--------------------------
::
docker images -viz | dot -Tpng -o docker.png
.. image:: images/docker_images.gif

View File

@@ -1,41 +0,0 @@
:title: Import Command
:description: Create a new filesystem image from the contents of a tarball
:keywords: import, tarball, docker, url, documentation
==========================================================================
``import`` -- Create a new filesystem image from the contents of a tarball
==========================================================================
::
Usage: docker import URL|- [REPOSITORY [TAG]]
Create a new filesystem image from the contents of a tarball
At this time, the URL must start with ``http`` and point to a single file archive
(.tar, .tar.gz, .tgz, .bzip, .tar.xz, .txz)
containing a root filesystem. If you would like to import from a local directory or archive,
you can use the ``-`` parameter to take the data from standard in.
Examples
--------
Import from a remote location
.............................
``$ docker import http://example.com/exampleimage.tgz exampleimagerepo``
Import from a local file
........................
Import to docker via pipe and standard in
``$ cat exampleimage.tgz | docker import - exampleimagelocal``
Import from a local directory
.............................
``$ sudo tar -c . | docker import - exampleimagedir``
Note the ``sudo`` in this example -- you must preserve the ownership of the files (especially root ownership)
during the archiving with tar. If you are not root (or sudo) when you tar, then the ownerships might not get preserved.

View File

@@ -1,13 +0,0 @@
:title: Info Command
:description: Display system-wide information.
:keywords: info, docker, information, documentation
===========================================
``info`` -- Display system-wide information
===========================================
::
Usage: docker info
Display system-wide information.

Some files were not shown because too many files have changed in this diff Show More