# Changelog ## 0.6.5 (2013-10-29) + Runtime: Containers can now be named + Runtime: Containers can now be linked together for service discovery + Runtime: 'run -a', 'start -a' and 'attach' can forward signals to the container for better integration with process supervisors + Runtime: Automatically start crashed containers after a reboot + Runtime: Expose IP, port, and proto as separate environment vars for container links * Runtime: Allow ports to be published to specific ips * Runtime: Prohibit inter-container communication by default * Documentation: Fix the flags for nc in example - Client: Only pass stdin to hijack when needed to avoid closed pipe errors * Testing: Remove warnings and prevent mount issues * Client: Use less reflection in command-line method invocation - Runtime: Ignore ErrClosedPipe for stdin in Container.Attach - Testing: Change logic for tty resize to avoid warning in tests - Client: Monitor the tty size after starting the container, not prior - Hack: Update install.sh with $sh_c to get sudo/su for modprobe - Client: Remove useless os.Exit() calls after log.Fatal * Hack: Update all the mkimage scripts to use --numeric-owner as a tar argument * Hack: Update hack/release.sh process to automatically invoke hack/make.sh and bail on build and test issues + Hack: Add initial init scripts library and a safer Ubuntu packaging script that works for Debian - Runtime: Fix untag during removal of images - Runtime: Remove unused field kernelVersion * Hack: Add -p option to invoke debootstrap with http_proxy - Builder: Fix race condition in docker build with verbose output - Registry: Fix content-type for PushImageJSONIndex method * Runtime: Fix issue when mounting subdirectories of /mnt in container * Runtime: Check return value of syscall.Chdir when changing working directory inside dockerinit * Contrib: Improve helper tools to generate debian and Arch linux server images ## 0.6.4 (2013-10-16) - Runtime: Add cleanup of container when Start() fails - Testing: Catch errClosing error when TCP and UDP proxies are terminated - Testing: Add aggregated docker-ci email report - Testing: Remove a few errors in tests * Contrib: Reorganize contributed completion scripts to add zsh completion * Contrib: Add vim syntax highlighting for Dockerfiles from @honza * Runtime: Add better comments to utils/stdcopy.go - Testing: add cleanup to remove leftover containers * Documentation: Document how to edit and release docs * Documentation: Add initial draft of the Docker infrastructure doc * Contrib: Add mkimage-arch.sh - Builder: Abort build if mergeConfig returns an error and fix duplicate error message - Runtime: Remove error messages which are not actually errors * Testing: Only run certain tests with TESTFLAGS='-run TestName' make.sh * Testing: Prevent docker-ci to test closing PRs - Documentation: Minor updates to postgresql_service.rst * Testing: Add nightly release to docker-ci * Hack: Improve network performance for VirtualBox * Hack: Add vagrant user to the docker group * Runtime: Add utils.Errorf for error logging - Packaging: Remove deprecated packaging directory * Hack: Revamp install.sh to be usable by more people, and to use official install methods whenever possible (apt repo, portage tree, etc.) - Hack: Fix contrib/mkimage-debian.sh apt caching prevention * Documentation: Clarify LGTM process to contributors - Documentation: Small fixes to parameter names in docs for ADD command * Runtime: Record termination time in state. - Registry: Use correct auth config when logging in. - Documentation: Corrected error in the package name * Documentation: Document what `vagrant up` is actually doing - Runtime: Fix `docker rm` with volumes - Runtime: Use empty string so TempDir uses the OS's temp dir automatically - Runtime: Make sure to close the network allocators * Testing: Replace panic by log.Fatal in tests + Documentation: improve doc search results - Runtime: Fix some error cases where a HTTP body might not be closed * Hack: Add proper bash completion for "docker push" * Documentation: Add devenvironment link to CONTRIBUTING.md * Documentation: Cleanup whitespace in API 1.5 docs * Documentation: use angle brackets in MAINTAINER example email - Testing: Increase TestRunDetach timeout * Documentation: Fix help text for -v option + Hack: Added Dockerfile.tmLanguage to contrib + Runtime: Autorestart containers by default * Testing: Adding more tests around auth.ResolveAuthConfig * Hack: Configured FPM to make /etc/init/docker.conf a config file * Hack: Add xz utils as a runtime dep * Documentation: Add `apt-get install curl` to Ubuntu docs * Documentation: Remove Gentoo install notes about #1422 workaround * Documentation: Fix Ping endpoint documentation * Runtime: Bump vendor kr/pty to commit 3b1f6487b (syscall.O_NOCTTY) * Runtime: lxc: Allow set_file_cap capability in container * Documentation: Update archlinux.rst - Documentation: Fix ironic typo in changelog * Documentation: Add explanation for export restrictions * Hack: Add cleanup/refactor portion of #2010 for hack and Dockerfile updates + Documentation: Changes to a new style for the docs. Includes version switcher. * Documentation: Formatting, add information about multiline json + Hack: Add contrib/mkimage-centos.sh back (from #1621), and associated documentation link - Runtime: Fix panic with wrong dockercfg file - Runtime: Fix the attach behavior with -i * Documentation: Add .dockercfg doc - Runtime: Move run -rm to the cli only * Hack: Enable SSH Agent forwarding in Vagrant VM + Runtime: Add -rm to docker run for removing a container on exit * Documentation: Improve registry and index REST API documentation * Runtime: Split stdout stderr - Documentation: Replace deprecated upgrading reference to docker-latest.tgz, which hasn't been updated since 0.5.3 * Documentation: Update Gentoo installation documentation now that we're in the portage tree proper - Registry: Fix the error message so it is the same as the regex * Runtime: Always create a new session for the container * Hack: Add several of the small make.sh fixes from #1920, and make the output more consistent and contributor-friendly * Documentation: Various command fixes in postgres example * Documentation: Cleanup and reorganize docs and tooling for contributors and maintainers - Documentation: Minor spelling correction of protocoll -> protocol * Hack: Several small tweaks/fixes for contrib/mkimage-debian.sh + Hack: Add @tianon to hack/MAINTAINERS ## 0.6.3 (2013-09-23) * Packaging: Update tar vendor dependency - Client: Fix detach issue - Runtime: Only copy and change permissions on non-bindmount volumes - Registry: Update regular expression to match index * Runtime: Allow multiple volumes-from * Packaging: Download apt key over HTTPS * Documentation: Update section on extracting the docker binary after build * Documentation: Update development environment docs for new build process * Documentation: Remove 'base' image from documentation * Packaging: Add 'docker' group on install for ubuntu package - Runtime: Fix HTTP imports from STDIN ## 0.6.2 (2013-09-17) + Hack: Vendor all dependencies + Builder: Add -rm option in order to remove intermediate containers + Runtime: Add domainname support + Runtime: Implement image filtering with path.Match * Builder: Allow multiline for the RUN instruction * Runtime: Remove unnecesasry warnings * Runtime: Only mount the hostname file when the config exists * Runtime: Handle signals within the `docker login` command * Runtime: Remove os/user dependency * Registry: Implement login with private registry * Remote API: Bump to v1.5 * Packaging: Break down hack/make.sh into small scripts, one per 'bundle': test, binary, ubuntu etc. * Documentation: General improvements - Runtime: UID and GID are now also applied to volumes - Runtime: `docker start` set error code upon error - Runtime: `docker run` set the same error code as the process started - Registry: Fix push issues ## 0.6.1 (2013-08-23) * Registry: Pass "meta" headers in API calls to the registry - Packaging: Use correct upstart script with new build tool - Packaging: Use libffi-dev, don't build it from sources - Packaging: Removed duplicate mercurial install command ## 0.6.0 (2013-08-22) - Runtime: Load authConfig only when needed and fix useless WARNING + Runtime: Add lxc-conf flag to allow custom lxc options - Runtime: Fix race conditions in parallel pull - Runtime: Improve CMD, ENTRYPOINT, and attach docs. * Documentation: Small fix to docs regarding adding docker groups * Documentation: Add MongoDB image example + Builder: Add USER instruction do Dockerfile * Documentation: updated default -H docs * Remote API: Sort Images by most recent creation date. + Builder: Add workdir support for the Buildfile + Runtime: Add an option to set the working directory - Runtime: Show tag used when image is missing * Documentation: Update readme with dependencies for building * Documentation: Add instructions for creating and using the docker group * Remote API: Reworking opaque requests in registry module - Runtime: Fix Graph ByParent() to generate list of child images per parent image. * Runtime: Add Image name to LogEvent tests * Documentation: Add sudo to examples and installation to documentation + Hack: Bash Completion: Limit commands to containers of a relevant state * Remote API: Add image name in /events * Runtime: Apply volumes-from before creating volumes - Runtime: Make docker run handle SIGINT/SIGTERM - Runtime: Prevent crash when .dockercfg not readable * Hack: Add docker dependencies coverage testing into docker-ci + Runtime: Add -privileged flag and relevant tests, docs, and examples + Packaging: Docker-brew 0.5.2 support and memory footprint reduction - Runtime: Install script should be fetched over https, not http. * Packaging: Add new docker dependencies into docker-ci * Runtime: Use Go 1.1.2 for dockerbuilder * Registry: Improve auth push * Runtime: API, issue 1471: Use groups for socket permissions * Documentation: PostgreSQL service example in documentation * Contrib: bash completion script * Tests: Improve TestKillDifferentUser to prevent timeout on buildbot * Documentation: Fix typo in docs for docker run -dns * Documentation: Adding a reference to ps -a - Runtime: Correctly detect IPv4 forwarding - Packaging: Revert "docker.upstart: avoid spawning a `sh` process" * Runtime: Use ranged for loop on channels - Runtime: Fix typo: fmt.Sprint -> fmt.Sprintf - Tests: Fix typo in TestBindMounts (runContainer called without image) * Runtime: add websocket support to /container//attach/ws * Runtime: Mount /dev/shm as a tmpfs - Builder: Only count known instructions as build steps - Builder: Fix docker build and docker events output - Runtime: switch from http to https for get.docker.io * Tests: Improve TestGetContainersTop so it does not rely on sleep + Packaging: Docker-brew and Docker standard library * Testing: Add some tests in server and utils + Packaging: Release docker with docker - Builder: Make sure ENV instruction within build perform a commit each time * Packaging: Fix the upstart script generated by get.docker.io - Runtime: fix small \n error un docker build * Runtime: Let userland proxy handle container-bound traffic * Runtime: Updated the Docker CLI to specify a value for the "Host" header. * Runtime: Add warning when net.ipv4.ip_forwarding = 0 * Registry: Registry unit tests + mock registry * Runtime: fixed #910. print user name to docker info output - Builder: Forbid certain paths within docker build ADD - Runtime: change network range to avoid conflict with EC2 DNS * Tests: Relax the lo interface test to allow iface index != 1 * Documentation: Suggest installing linux-headers by default. * Documentation: Change the twitter handle * Client: Add docker cp command and copy api endpoint to copy container files/folders to the host * Remote API: Use mime pkg to parse Content-Type - Runtime: Reduce connect and read timeout when pinging the registry * Documentation: Update amazon.rst to explain that Vagrant is not necessary for running Docker on ec2 * Packaging: Enabled the docs to generate manpages. * Runtime: Parallel pull - Runtime: Handle ip route showing mask-less IP addresses * Documentation: Clarify Amazon EC2 installation * Documentation: 'Base' image is deprecated and should no longer be referenced in the docs. * Runtime: Fix to "Inject dockerinit at /.dockerinit" * Runtime: Allow ENTRYPOINT without CMD - Runtime: Always consider localhost as a domain name when parsing the FQN repos name * Remote API: 650 http utils and user agent field * Documentation: fix a typo in the ubuntu installation guide - Builder: Repository name (and optionally a tag) in build usage * Documentation: Move note about officially supported kernel * Packaging: Revert "Bind daemon to 0.0.0.0 in Vagrant. * Builder: Add no cache for docker build * Runtime: Add hostname to environment * Runtime: Add last stable version in `docker version` - Builder: Make sure ADD will create everything in 0755 * Documentation: Add ufw doc * Tests: Add registry functional test to docker-ci - Documentation: Solved the logo being squished in Safari - Runtime: Use utils.ParseRepositoryTag instead of strings.Split(name, ":") in server.ImageDelete * Runtime: Refactor checksum - Runtime: Improve connect message with socket error * Documentation: Added information about Docker's high level tools over LXC. * Don't read from stdout when only attached to stdin ## 0.5.3 (2013-08-13) * Runtime: Use docker group for socket permissions - Runtime: Spawn shell within upstart script - Builder: Make sure ENV instruction within build perform a commit each time - Runtime: Handle ip route showing mask-less IP addresses - Runtime: Add hostname to environment ## 0.5.2 (2013-08-08) * Builder: Forbid certain paths within docker build ADD - Runtime: Change network range to avoid conflict with EC2 DNS * API: Change daemon to listen on unix socket by default ## 0.5.1 (2013-07-30) + API: Docker client now sets useragent (RFC 2616) + Runtime: Add `ps` args to `docker top` + Runtime: Add support for container ID files (pidfile like) + Runtime: Add container=lxc in default env + Runtime: Support networkless containers with `docker run -n` and `docker -d -b=none` + API: Add /events endpoint + Builder: ADD command now understands URLs + Builder: CmdAdd and CmdEnv now respect Dockerfile-set ENV variables * Hack: Simplify unit tests with helpers * Hack: Improve docker.upstart event * Hack: Add coverage testing into docker-ci * Runtime: Stdout/stderr logs are now stored in the same file as JSON * Runtime: Allocate a /16 IP range by default, with fallback to /24. Try 12 ranges instead of 3. * Runtime: Change .dockercfg format to json and support multiple auth remote - Runtime: Do not override volumes from config - Runtime: Fix issue with EXPOSE override - Builder: Create directories with 755 instead of 700 within ADD instruction ## 0.5.0 (2013-07-17) + Runtime: List all processes running inside a container with 'docker top' + Runtime: Host directories can be mounted as volumes with 'docker run -v' + Runtime: Containers can expose public UDP ports (eg, '-p 123/udp') + Runtime: Optionally specify an exact public port (eg. '-p 80:4500') + Registry: New image naming scheme inspired by Go packaging convention allows arbitrary combinations of registries + Builder: ENTRYPOINT instruction sets a default binary entry point to a container + Builder: VOLUME instruction marks a part of the container as persistent data * Builder: 'docker build' displays the full output of a build by default * Runtime: 'docker login' supports additional options - Runtime: Dont save a container's hostname when committing an image. - Registry: Fix issues when uploading images to a private registry ## 0.4.8 (2013-07-01) + Builder: New build operation ENTRYPOINT adds an executable entry point to the container. - Runtime: Fix a bug which caused 'docker run -d' to no longer print the container ID. - Tests: Fix issues in the test suite ## 0.4.7 (2013-06-28) * Registry: easier push/pull to a custom registry * Remote API: the progress bar updates faster when downloading and uploading large files - Remote API: fix a bug in the optional unix socket transport * Runtime: improve detection of kernel version + Runtime: host directories can be mounted as volumes with 'docker run -b' - Runtime: fix an issue when only attaching to stdin * Runtime: use 'tar --numeric-owner' to avoid uid mismatch across multiple hosts * Hack: improve test suite and dev environment * Hack: remove dependency on unit tests on 'os/user' + Documentation: add terminology section ## 0.4.6 (2013-06-22) - Runtime: fix a bug which caused creation of empty images (and volumes) to crash. ## 0.4.5 (2013-06-21) + Builder: 'docker build git://URL' fetches and builds a remote git repository * Runtime: 'docker ps -s' optionally prints container size * Tests: Improved and simplified - Runtime: fix a regression introduced in 0.4.3 which caused the logs command to fail. - Builder: fix a regression when using ADD with single regular file. ## 0.4.4 (2013-06-19) - Builder: fix a regression introduced in 0.4.3 which caused builds to fail on new clients. ## 0.4.3 (2013-06-19) + Builder: ADD of a local file will detect tar archives and unpack them * Runtime: Remove bsdtar dependency * Runtime: Add unix socket and multiple -H support * Runtime: Prevent rm of running containers * Runtime: Use go1.1 cookiejar * Builder: ADD improvements: use tar for copy + automatically unpack local archives * Builder: ADD uses tar/untar for copies instead of calling 'cp -ar' * Builder: nicer output for 'docker build' * Builder: fixed the behavior of ADD to be (mostly) reverse-compatible, predictable and well-documented. * Client: HumanReadable ProgressBar sizes in pull * Client: Fix docker version's git commit output * API: Send all tags on History API call * API: Add tag lookup to history command. Fixes #882 - Runtime: Fix issue detaching from running TTY container - Runtime: Forbid parralel push/pull for a single image/repo. Fixes #311 - Runtime: Fix race condition within Run command when attaching. - Builder: fix a bug which caused builds to fail if ADD was the first command - Documentation: fix missing command in irc bouncer example ## 0.4.2 (2013-06-17) - Packaging: Bumped version to work around an Ubuntu bug ## 0.4.1 (2013-06-17) + Remote Api: Add flag to enable cross domain requests + Remote Api/Client: Add images and containers sizes in docker ps and docker images + Runtime: Configure dns configuration host-wide with 'docker -d -dns' + Runtime: Detect faulty DNS configuration and replace it with a public default + Runtime: allow docker run : + Runtime: you can now specify public port (ex: -p 80:4500) * Client: allow multiple params in inspect * Client: Print the container id before the hijack in `docker run` * Registry: add regexp check on repo's name * Registry: Move auth to the client * Runtime: improved image removal to garbage-collect unreferenced parents * Vagrantfile: Add the rest api port to vagrantfile's port_forward * Upgrade to Go 1.1 - Builder: don't ignore last line in Dockerfile when it doesn't end with \n - Registry: Remove login check on pull ## 0.4.0 (2013-06-03) + Introducing Builder: 'docker build' builds a container, layer by layer, from a source repository containing a Dockerfile + Introducing Remote API: control Docker programmatically using a simple HTTP/json API * Runtime: various reliability and usability improvements ## 0.3.4 (2013-05-30) + Builder: 'docker build' builds a container, layer by layer, from a source repository containing a Dockerfile + Builder: 'docker build -t FOO' applies the tag FOO to the newly built container. + Runtime: interactive TTYs correctly handle window resize * Runtime: fix how configuration is merged between layers + Remote API: split stdout and stderr on 'docker run' + Remote API: optionally listen on a different IP and port (use at your own risk) * Documentation: improved install instructions. ## 0.3.3 (2013-05-23) - Registry: Fix push regression - Various bugfixes ## 0.3.2 (2013-05-09) * Runtime: Store the actual archive on commit * Registry: Improve the checksum process * Registry: Use the size to have a good progress bar while pushing * Registry: Use the actual archive if it exists in order to speed up the push - Registry: Fix error 400 on push ## 0.3.1 (2013-05-08) + Builder: Implement the autorun capability within docker builder + Builder: Add caching to docker builder + Builder: Add support for docker builder with native API as top level command + Runtime: Add go version to debug infos + Builder: Implement ENV within docker builder + Registry: Add docker search top level command in order to search a repository + Images: output graph of images to dot (graphviz) + Documentation: new introduction and high-level overview + Documentation: Add the documentation for docker builder + Website: new high-level overview - Makefile: Swap "go get" for "go get -d", especially to compile on go1.1rc - Images: fix ByParent function - Builder: Check the command existance prior create and add Unit tests for the case - Registry: Fix pull for official images with specific tag - Registry: Fix issue when login in with a different user and trying to push - Documentation: CSS fix for docker documentation to make REST API docs look better. - Documentation: Fixed CouchDB example page header mistake - Documentation: fixed README formatting * Registry: Improve checksum - async calculation * Runtime: kernel version - don't show the dash if flavor is empty * Documentation: updated www.docker.io website. * Builder: use any whitespaces instead of tabs * Packaging: packaging ubuntu; issue #510: Use goland-stable PPA package to build docker ## 0.3.0 (2013-05-06) + Registry: Implement the new registry + Documentation: new example: sharing data between 2 couchdb databases - Runtime: Fix the command existance check - Runtime: strings.Split may return an empty string on no match - Runtime: Fix an index out of range crash if cgroup memory is not * Documentation: Various improvments * Vagrant: Use only one deb line in /etc/apt ## 0.2.2 (2013-05-03) + Support for data volumes ('docker run -v=PATH') + Share data volumes between containers ('docker run -volumes-from') + Improved documentation * Upgrade to Go 1.0.3 * Various upgrades to the dev environment for contributors ## 0.2.1 (2013-05-01) + 'docker commit -run' bundles a layer with default runtime options: command, ports etc. * Improve install process on Vagrant + New Dockerfile operation: "maintainer" + New Dockerfile operation: "expose" + New Dockerfile operation: "cmd" + Contrib script to build a Debian base layer + 'docker -d -r': restart crashed containers at daemon startup * Runtime: improve test coverage ## 0.2.0 (2013-04-23) - Runtime: ghost containers can be killed and waited for * Documentation: update install intructions - Packaging: fix Vagrantfile - Development: automate releasing binaries and ubuntu packages + Add a changelog - Various bugfixes ## 0.1.8 (2013-04-22) - Dynamically detect cgroup capabilities - Issue stability warning on kernels <3.8 - 'docker push' buffers on disk instead of memory - Fix 'docker diff' for removed files - Fix 'docker stop' for ghost containers - Fix handling of pidfile - Various bugfixes and stability improvements ## 0.1.7 (2013-04-18) - Container ports are available on localhost - 'docker ps' shows allocated TCP ports - Contributors can run 'make hack' to start a continuous integration VM - Streamline ubuntu packaging & uploading - Various bugfixes and stability improvements ## 0.1.6 (2013-04-17) - Record the author an image with 'docker commit -author' ## 0.1.5 (2013-04-17) - Disable standalone mode - Use a custom DNS resolver with 'docker -d -dns' - Detect ghost containers - Improve diagnosis of missing system capabilities - Allow disabling memory limits at compile time - Add debian packaging - Documentation: installing on Arch Linux - Documentation: running Redis on docker - Fixed lxc 0.9 compatibility - Automatically load aufs module - Various bugfixes and stability improvements ## 0.1.4 (2013-04-09) - Full support for TTY emulation - Detach from a TTY session with the escape sequence `C-p C-q` - Various bugfixes and stability improvements - Minor UI improvements - Automatically create our own bridge interface 'docker0' ## 0.1.3 (2013-04-04) - Choose TCP frontend port with '-p :PORT' - Layer format is versioned - Major reliability improvements to the process manager - Various bugfixes and stability improvements ## 0.1.2 (2013-04-03) - Set container hostname with 'docker run -h' - Selective attach at run with 'docker run -a [stdin[,stdout[,stderr]]]' - Various bugfixes and stability improvements - UI polish - Progress bar on push/pull - Use XZ compression by default - Make IP allocator lazy ## 0.1.1 (2013-03-31) - Display shorthand IDs for convenience - Stabilize process management - Layers can include a commit message - Simplified 'docker attach' - Fixed support for re-attaching - Various bugfixes and stability improvements - Auto-download at run - Auto-login on push - Beefed up documentation ## 0.1.0 (2013-03-23) - First release - Implement registry in order to push/pull images - TCP port allocation - Fix termcaps on Linux - Add documentation - Add Vagrant support with Vagrantfile - Add unit tests - Add repository/tags to ease image management - Improve the layer implementation