Docker CE

Overview

Docker CE

⚠️ This repository is now deprecated and will be archived ⚠️

Starting with the Docker 20.10 release, packages for the Docker Engine and Docker CLI are built directly from their respective source repositories instead of from this repository.

Practically this means:

  1. This repository is no longer the “source of truth” for Docker CE builds.
  2. The commit SHA and tag for Docker CLI build will come from the docker/cli repository and the commit SHA and tag for the Docker Engine will come from the moby/moby repository.
  3. Release branches for the Engine, CLI, and packaging will be maintained on their respective repositories.
  4. Updates will stop being made to this repository and it will be archived in the future.
  5. Changelog is now Release Notes.
  6. The master branch of this repository will be emptied when the repository is archived.

Description

This repository hosts open source components of Docker CE products. The master branch serves to unify the upstream components on a regular basis. Long-lived release branches host the code that goes into a product version for the lifetime of the product.

This repository is solely maintained by Docker, Inc.

Issues

There are separate issue-tracking repos for the end user Docker CE products specialized for a platform. Find your issue or file a new issue for the platform you are using:

Submitting pull requests

This repository does not accept PRs for files under the components directory directly. To contribute to the files under the components directory, see CONTRIBUTING.md .

Unifying upstream sources

The master branch is a combination of components adapted from different upstream git repos into a unified directory structure using the moby-components tool.

You can view the upstream git repos in the components.conf file. Each component is isolated into its own directory under the components directory.

The tool will import each component git history within the appropriate path.

For example, this shows a commit is imported into the component engine from moby/[email protected] into the components/engine directory.

commit 5c70746915d4589a692cbe50a43cf619ed0b7152
Author: Andrea Luzzardi <[email protected]>
Date:   Sat Jan 19 00:13:39 2013

    Initial commit
    Upstream-commit: a27b4b8cb8e838d03a99b6d2b30f76bdaf2f9e5d
    Component: engine

 components/engine/container.go       | 203 ++++++++++++++++++++++++++++...
 components/engine/container_test.go  | 186 ++++++++++++++++++++++++++++...
 components/engine/docker.go          | 112 ++++++++++++++++++++++++++++...
 components/engine/docker_test.go     | 175 ++++++++++++++++++++++++++++...
 components/engine/filesystem.go      |  52 ++++++++++++++++++++++++++++...
 components/engine/filesystem_test.go |  35 +++++++++++++++++++++++++++
 components/engine/lxc_template.go    |  94 ++++++++++++++++++++++++++++...
 components/engine/state.go           |  48 ++++++++++++++++++++++++++++...
 components/engine/utils.go           | 115 ++++++++++++++++++++++++++++...
 components/engine/utils_test.go      | 126 ++++++++++++++++++++++++++++...
 10 files changed, 1146 insertions(+)

Updates to master branch

Main development of new features should be directed towards the upstream git repos. The master branch of this repo will periodically pull in new changes from upstream to provide a point for integration.

Branching for release

When a release is started for Docker CE, a new branch will be created from master. Branch names will be YY.MM to represent the time-based release version of the product, e.g. 17.06.

Adding fixes to release branch

Note: every commit of a fix should affect files only within one component directory.

Fix available upstream

A PR cherry-picking the necessary commits should be created against the release branch. If the the cherry-pick cannot be applied cleanly, the logic of the fix should be ported manually.

No fix yet

First create the PR with the fix for the release branch. Once the fix has been merged, be sure to port the fix to the respective upstream git repo.

Release tags

There will be a git tag for each release candidate (RC) and general availability (GA) release. The tag will only point to commits on release branches.

Comments
  • [17.09] cli updated vendoring

    [17.09] cli updated vendoring

    backport:

    • docker/cli/pull/424 updated vendoring
    • moby/moby#34761 Some cleanup of mount create API test
    • docker/cli/pull/516 vndr docker/docker to ea220e7 to bring in fix for arm
    • docker/cli/pull/528 vndr github.com/docker/docker to 84144a8 to fix stuff
    • docker/cli/pull/510 Use a local copy of ParseLogDetails
    • moby/moby/pull/34829 LCOW: Spot fix for multi-os image pulling
    $ git cherry-pick -s -x -Xsubtree=components/cli a0113c3a448cb1ed875f2116eb8436ee8bd97bfc
    $ git cherry-pick -s -x -Xsubtree=components/cli 724f03bb23bae4339edf6af5017ae695dd977f2f
    $ git cherry-pick -s -x -Xsubtree=components/engine 58b96aced87b33c4175fa5d3422289f763ab599d
    $ git cherry-pick -s -x -Xsubtree=components/cli ef027b6d7292b0ed249e70294f5f23c51a68e794
    $ git cherry-pick -s -x -Xsubtree=components/cli 50696bbf72b4177bb324fc411be3121b6e935b9f
    $ git cherry-pick -s -x -Xsubtree=components/cli 536da4a07a79de929e9e6857220a9a941f6a46ef
    $ git cherry-pick -s -x -Xsubtree=components/cli 850b46e67cd96f7bd4fe49937305fdd7748049df
    $ git cherry-pick -s -x -Xsubtree=components/cli a747389bf4180881f658b45fac2296306072756c
    $ git cherry-pick -s -x -Xsubtree=components/engine b291f5a31728f7ff6386bb37f15e7c0885d3b2a7
    

    cherry-pick was clean, no conflict

    opened by vieux 19
  • [18.03] ExportContainer: do not panic

    [18.03] ExportContainer: do not panic

    Cherry-picks for 18.03 of

    • https://github.com/moby/moby/pull/36586 ExportContainer: do not panic
    • https://github.com/moby/moby/pull/36606 integration/TestExportContainerAfterDaemonRestart: add
    • https://github.com/moby/moby/pull/36610 Windows: Hyper-V containers are broken after 36586 was merged

    fixes https://github.com/moby/moby/issues/36561 fixes https://github.com/docker/for-mac/issues/2679

    no conflicts

    opened by thaJeztah 17
  • [17.07.x] Cherry pick new packaging commits

    [17.07.x] Cherry pick new packaging commits

    git cherry-pick -x -s -Xsubtree="components/packaging" ceac22b 3a548f8
    

    Cherry picks:

    • Added metrics plugin to RPM / DEB packaging, https://github.com/docker/docker-ce-packaging/pull/3
    • Fix manpage generation for CLI in DEB packaging, https://github.com/docker/docker-ce-packaging/pull/37

    Required for aarch64 package building

    opened by seemethere 16
  • [17.12] bump containerd 1.0.2

    [17.12] bump containerd 1.0.2

    Backport containerd 1.0.2 bump - https://github.com/moby/moby/pull/36308

    git cherry-pick -s -x -Xsubtree=components/engine c2fb6db55be08da95b15bee730a191094f846577
    

    Also bumps vendors to match contained 1.0.2 vendors... these don't match moby/moby since moby/moby is not tracking 1.0.2 for vendored deps.

    opened by cpuguy83 15
  • [18.03] Ensure a hijacked connection implements CloseWrite whenever its underlying

    [18.03] Ensure a hijacked connection implements CloseWrite whenever its underlying

    connection does. If this isn't done, then a container listening on stdin won't receive an EOF when the client closes the stream at their end.

    cherry-pick of https://github.com/moby/moby/pull/36517 for 18.03 (fixes https://github.com/moby/moby/issues/36516 for 18.03)

    git checkout -b 18.03-missing_closewrite upstream/18.03
    git cherry-pick -s -S -x -Xsubtree=components/engine 37983921c90b468cafd3ba2ca2574fb81cafe5a7
    git cherry-pick -s -S -x -Xsubtree=components/engine f094a05e260d8748f0fd2018a8a908b4189e454d
    

    no conflicts

    opened by thaJeztah 10
  • [17.07] Fixing releaseableLayer handling of layer streams and mounts.

    [17.07] Fixing releaseableLayer handling of layer streams and mounts.

    releaseableLayer includes automatic handling for creating a read/write layer and mounting it on a call to Mount(), but then does not correspondingly unmount the layer before trying to delete it, which will fail for some graphdrivers. Commit on a releaseable layer also leaks the tarstream for the layer. To fix this, the stream close is deferred in Commit and releaseRWLayer now correctly handles unmounting the layer before trying to delete it. In addition, the changes include better error handling in Release() to make sure that errors are returned to the caller for failures on read/write layers instead of being ignored.# Please enter the commit message for your changes. Lines starting

    cherry picked from commit https://github.com/moby/moby/commit/1d457999c4540aacda68f834bdb3c6f220ce3fd5 - https://github.com/moby/moby/pull/34192, patch applied cleanly, no conflicts

    ping @swernli @tonistiigi @johnstep PTAL

    opened by thaJeztah 10
  • [18.03] Fixes tests to have the ci green

    [18.03] Fixes tests to have the ci green

    Fixes some failing tests on engine; more commits can be added to this, but we can merge at any point.

    backport of:

    • moby/moby#36427 Clean some docker_cli_build_tests that are cli-only
    • https://github.com/docker/cli/pull/907 Add more container cp tests
    • https://github.com/moby/moby/pull/36434 Migrate some container copy tests to integration

    Also cherry-pick #446 👼 :

    • https://github.com/docker/cli/pull/904 Fix --label behavior on run
    opened by vdemeester 9
  • [18.03] backport content trust tests, windows, test-refactoring

    [18.03] backport content trust tests, windows, test-refactoring

    This brings in new tests for Docker Trust that were previously disabled due to changes in the CLI. In addition, a lot of refactoring and improvements to the tests are included to facilitate e2e testing, and testing on Windows. This also removes the file watcher dependency, which broke CI.

    • revert https://github.com/docker/docker-ce/pull/437 [18.03] skip DockerTrustSuite tests for 18.03

    • https://github.com/moby/moby/pull/36515 Remove DockerTrustSuite to docker/cli e2e tests

    • https://github.com/docker/cli/pull/911 Update gotestyourself dependency

    • https://github.com/docker/cli/pull/879 Replace testify assertions with gotestyourself/assert

      • conflict in https://github.com/docker/cli/pull/879/commits/39c2ca57c1c237bd942175602dcd00b124b4220b, because https://github.com/docker/cli/pull/139, and https://github.com/docker/cli/pull/893 are not in 18.03;

        Unmerged paths:
          (use "git add/rm <file>..." as appropriate to mark resolution)
        
        	deleted by us:   components/cli/cli/command/registry/login_test.go
        	both modified:   components/cli/cli/command/registry_test.go
        	both modified:   components/cli/cli/command/trust/inspect_pretty_test.go
        	both modified:   components/cli/cli/compose/template/template_test.go
        	deleted by us:   components/cli/kubernetes/check_test.go
        

        Removed the components/cli/kubernetes/check_test.go and components/cli/cli/command/registry/login_test.go files, and resolved conflicts in the other files

      • conflict in https://github.com/docker/cli/pull/879/commits/5155cda716ad7f519e608c380e43d1ca90f855c0

        Unmerged paths:
          (use "git add/rm <file>..." as appropriate to mark resolution)
        
        	both modified:   components/cli/cli/compose/template/template_test.go
        	deleted by us:   components/cli/kubernetes/check_test.go
        

        Resolved by removing components/cli/kubernetes/check_test.go

    • https://github.com/docker/cli/pull/918 Remove testutil

      • minor conflict in https://github.com/docker/cli/pull/918/commits/681c921528a892e0a087fa90124838e4ad29f940 in components/cli/cli/command/trust/inspect_pretty_test.go
    • https://github.com/docker/cli/pull/921 testing: Use canonical asserts

      • conflict in https://github.com/docker/cli/pull/921/commits/baf65a5502580a46090c7e523dfa3a3a075d7c8f

        Unmerged paths:
          (use "git add <file>..." to mark resolution)
        
        	both modified:   components/cli/cli/command/registry_test.go
        	both modified:   components/cli/cli/compose/template/template_test.go
        
    • https://github.com/docker/cli/pull/916 Use new APIClient interface

    • https://github.com/docker/cli/pull/917 Don't set a default filename for ConfigFile

      • conflict in https://github.com/docker/cli/pull/917/commits/7c8b5708ebea29ee325045e265fad8257c08f737 because https://github.com/docker/cli/pull/139 is not in 18.03:

        Unmerged paths:
          (use "git add/rm <file>..." as appropriate to mark resolution)
        
        	deleted by us:   components/cli/cli/command/registry/login_test.go
        

        Resolved by removing components/cli/cli/command/registry/login_test.go

    • https://github.com/docker/cli/pull/929 Refactor content_trust cli/flags handling

      • conflict in https://github.com/docker/cli/pull/929/commits/6e21829af477c1d925545ddfc1b9943ead5c9655 because the docker trust commands were backported before the tests were updated

        Unmerged paths:
          (use "git add <file>..." to mark resolution)
        
        	both modified:   components/cli/cli/command/trust/inspect_pretty_test.go
        
        
    • https://github.com/docker/cli/pull/945 Small content trust enhancement

    • https://github.com/docker/cli/pull/905 Add appveyor setup to build and unit test

    • https://github.com/docker/cli/pull/925 Add a build unit test for symlinked context

    • https://github.com/docker/cli/pull/924 Add some content trust tests

    • https://github.com/docker/cli/pull/955 Remove filewatcher

    git checkout -b 18.03-backport-content-trust-tests upstream/18.03
    
    # revert https://github.com/docker/docker-ce/pull/437 (which disabled the trust tests)
    git revert -s -S a720337d2e359f9215422b47c9ef66421d582f24
    git revert -s -S d5f8753b884085b96d9d828771ba23adf7d6700a
    
    # https://github.com/moby/moby/pull/36515 Remove DockerTrustSuite to docker/cli e2e tests
    git cherry-pick -s -S -x -Xsubtree=components/engine 5433ceb12ead305d8c85e8e27c4b4d842ef88ae0
    
    # https://github.com/docker/cli/pull/911 Update gotestyourself dependency
    git cherry-pick -s -S -x -Xsubtree=components/cli 98ba439f675cf4ed9fd37d86c3a74beaf065f40a
    
    # https://github.com/docker/cli/pull/879  Replace testify assertions with gotestyourself/assert
    git cherry-pick -s -S -x -Xsubtree=components/cli 93615dd967b7b88371207973e55c138ee8cb21d4
    git cherry-pick -s -S -x -Xsubtree=components/cli 5ef8835f239bcb3156f02dd39f30bdca44544894
    git cherry-pick -s -S -x -Xsubtree=components/cli 39c2ca57c1c237bd942175602dcd00b124b4220b
    git cherry-pick -s -S -x -Xsubtree=components/cli 5155cda716ad7f519e608c380e43d1ca90f855c0
    
    # https://github.com/docker/cli/pull/918 Remove testutil
    git cherry-pick -s -S -x -Xsubtree=components/cli 681c921528a892e0a087fa90124838e4ad29f940
    
    # https://github.com/docker/cli/pull/921 testing: Use canonical asserts
    git cherry-pick -s -S -x -Xsubtree=components/cli 0f11a310fd7d64a697d0ed9098205b6cdd585f1b
    git cherry-pick -s -S -x -Xsubtree=components/cli baf65a5502580a46090c7e523dfa3a3a075d7c8f
    git cherry-pick -s -S -x -Xsubtree=components/cli 078cbc9c4b8e66ed0537f80913e4b488f2100190
    git cherry-pick -s -S -x -Xsubtree=components/cli f21276575f2679793a0544f40fc518763b0b80a8
    git cherry-pick -s -S -x -Xsubtree=components/cli e15b208e9688efa0e0caba36d8e8e631a3a46374
    
    # https://github.com/docker/cli/pull/916 Use new APIClient interface
    git cherry-pick -s -S -x -Xsubtree=components/cli cff874122c92fdd6eebe3c94bf8b194dce8b8bf4
    
    # https://github.com/docker/cli/pull/917 Don't set a default filename for ConfigFile
    git cherry-pick -s -S -x -Xsubtree=components/cli 7c8b5708ebea29ee325045e265fad8257c08f737
    git cherry-pick -s -S -x -Xsubtree=components/cli 789acb526c865f8d0ab22bccd1f59fb150841889
    
    
    # https://github.com/docker/cli/pull/929 Refactor content_trust cli/flags handling
    git cherry-pick -s -S -x -Xsubtree=components/cli 6e21829af477c1d925545ddfc1b9943ead5c9655
    git cherry-pick -s -S -x -Xsubtree=components/cli feae0e9756db152712473d61245546767b6a5282
    
    # https://github.com/docker/cli/pull/945 Small content trust enhancement 
    git cherry-pick -s -S -x -Xsubtree=components/cli 63ebcae382f083dce20f7c7ca852493260f13fff
    
    # https://github.com/docker/cli/pull/905 Add appveyor setup to build and unit test
    git cherry-pick -s -S -x -Xsubtree=components/cli facb22573d0d215c511b840db6417aebd2b1122e
    git cherry-pick -s -S -x -Xsubtree=components/cli 0cf2e6353a88a12b78da72db6a7e7c7d049d3ed8
    git cherry-pick -s -S -x -Xsubtree=components/cli 10baa756b264778ae0c64ba058c8aeea733ed6fa
    
    # https://github.com/docker/cli/pull/925 Add a build unit test for symlinked context
    git cherry-pick -s -S -x -Xsubtree=components/cli 00b803b2d8d52ad86ad4d70dae6c27200b3df855
    
    # https://github.com/docker/cli/pull/924 Add some content trust tests
    git cherry-pick -s -S -x -Xsubtree=components/cli 8b00c5cfd87ac653e2a1dc4b95df30ca23e1d40d
    
    # https://github.com/docker/cli/pull/955 Remove filewatcher
    git cherry-pick -s -S -x -Xsubtree=components/cli c0588a9c8feecf197da1478d91e8f10d26261847
    
    git push -u origin 18.03-backport-content-trust-tests
    

    ping @vdemeester @n4ss @andrewhsu @seemethere PTAL: there's some small changes in the actual code, so please double check these are desirable

    opened by thaJeztah 8
  • vndr github.com/docker/docker from components/engine

    vndr github.com/docker/docker from components/engine

    Found differences between the engine and the cli vendor of engine in the docker-ce 17.06 branch. This PR will vendor github.com/docker/docker from components/engine dir.

    opened by andrewhsu 8
  • Add LICENSE (copy of docker/docker's Apache-2.0 file)

    Add LICENSE (copy of docker/docker's Apache-2.0 file)

    This repository was missing a license, but since it's been created mostly from bits of github.com/docker/docker, I figured that license was probably appropriate for this top-level (since the individual vendored directories should have their LICENSE files intact anyhow).

    A quick diff to show that it's 100% identical:

    $ diff -u \
      <(curl -fsSL 'https://github.com/docker/docker/raw/master/LICENSE') \
      <(curl -fsSL 'https://github.com/tianon/docker-ce/raw/license/LICENSE')
    $ 
    
    opened by tianon 8
  • builder: fix copy —from conflict with force pull

    builder: fix copy —from conflict with force pull

    opened by tiborvass 8
  • Create Docker

    Create Docker

    Please do not send pull requests to this docker/docker-ce repository.

    We do, however, take contributions gladly.

    See https://github.com/docker/docker-ce/blob/master/CONTRIBUTING.md

    Thanks!

    opened by ORIGINALyyc 1
  • docker man page: clarify /etc/docker/daemon.json may not exist or empty

    docker man page: clarify /etc/docker/daemon.json may not exist or empty

    It is confusing: Dockers documentation says you have to CHANGE a flag in that file, although it does not exist.

    I know, I shouldn't send pull requests to this docker/docker-ce repository, but acccording https://github.com/docker/docker-ce/blob/master/CONTRIBUTING.md I should report it to https://github.com/moby/moby, but I don't find the code there

    opened by rubo77 0
Releases(v19.03.14)
Owner
Docker
Docker provides a simple and powerful developer experience, workflows and collaboration for creating applications.
Docker
TUI Client for Docker

docui - TUI Client for Docker Written in Go About docui docui is a TUI Client for Docker. It can do the following: image search/pull/remove save/impor

skanehira 2.3k Dec 28, 2022
Experimental code execution microservice based on Docker containers.

ranna ランナー - Experimental code runner microservice based on Docker containers. ⚠ PLEASE READ BEFORE USE First of all, this project is currently work i

ranna 31 Dec 9, 2022
Generate random, pronounceable, sometimes even memorable, "superhero like" codenames - just like Docker does with container names.

Codename an RFC1178 implementation to generate pronounceable, sometimes even memorable, "superheroe like" codenames, consisting of a random combinatio

Luca Sepe 84 Dec 11, 2022
Workaround for running ubuntu:21.10, fedora:35, and other glibc >= 2.34 distros on Docker <= 20.10.9

clone3-workaround: Workaround for running ubuntu:21.10, fedora:35, and other glibc >= 2.34 distros on Docker <= 20.10.9 Old container engines such as

Akihiro Suda 10 Dec 1, 2022
Monitoring Go application inside docker container by InfluxDB, Telegraf, Grafana

REST API for TreatField app Docker compose for TIG and Golang simple app: https://github.com/tochytskyi/treatfield-api/blob/main/docker-compose.yml Gr

Volodymyr Tochytskyi 0 Nov 6, 2021
A Simple Bank Web Service implemented in Go, HTTP & GRPC, PostgreSQL, Docker, Kubernetes, GitHub Actions CI

simple-bank Based on this Backend Master Class by TECH SCHOOL: https://youtube.com/playlist?list=PLy_6D98if3ULEtXtNSY_2qN21VCKgoQAE Requirements Insta

Tien La 0 Dec 9, 2021
Bank-End Master Class [ Golang, Postges, Docker ]

Simple Bank This repository contains the codes of the Backend master class course by TECH SCHOOL. In this backend master class, we’re going to learn e

anousone worlakoumman 0 Dec 14, 2021
With Docker and Go, Mysql, Redis, Selenium.

golang-app Go, Mysql, Redis, Selenium. To run locally Have docker & docker-compose installed on your operating system. cp .env.example .env && docker-

null 0 Aug 31, 2022
Temporal Server docker-compose files

Temporal Server docker-compose files This repository provides docker-compose fil

Adeyemi Ademola 0 Dec 24, 2021
Curso Docker desde cero

Curso Docker desde cero Según la última encuesta realizada por Stack OverFlow, publicada en febrero de 2020, Docker se posiciona en la casilla número

null 4 Aug 29, 2022
DockerSlim (docker-slim): Don't change anything in your Docker container image and minify it by up to 30x (and for compiled languages even more) making it secure too! (free and open source)

Minify and Secure Docker containers (free and open source!) Don't change anything in your Docker container image and minify it by up to 30x making it

docker-slim 15.7k Dec 27, 2022
Docker-based remote code runner / 基于 Docker 的远程代码运行器

Docker-based remote code runner / 基于 Docker 的远程代码运行器

E99p1ant 35 Nov 9, 2022
ecsk is a CLI tool to interactively use frequently used functions of docker command in Amazon ECS. (docker run, exec, cp, logs, stop)

English / 日本語 ecsk ECS + Task = ecsk ?? ecsk is a CLI tool to interactively use frequently used functions of docker command in Amazon ECS. (docker run

null 114 Dec 13, 2022
Hassle-free minimal CI/CD for git repositories with docker or docker-compose projects.

GIT-PIPE Hassle-free minimal CI/CD for git repos for docker-based projects. Features: zero configuration for repos by default automatic encrypted back

Aleksandr Baryshnikov 50 Sep 23, 2022
View historical Docker Hub image pull charts for all public Docker Images.

dockerstats.com ⚠️ Due to recent changes to Docker Hub APIs (rate limits) and new business model, dockerstats.com can no longer collect image statisti

hackerman 45 May 19, 2022
Docker For Go Application Packaging And Pushing To Docker Hub

DOCKER-FOR-GO-APPLICATION-PACKAGING-AND-PUSHING-TO-DOCKER-HUB ##DOCKER COMMANDS: (Don't forget to navigate to the directory that contains the app and

ANDRÉS R. BUCHELI (Andrés F. Regalado Bucheli) 1 Jan 22, 2022
Tool to convert docker-compose files to set of simple docker commands

docker-decompose Tool to convert docker-compose files to set of simple docker commands. Install Use go get to install the latest version of the librar

Liri S 2 Apr 12, 2022
Elastic Stack Docker + Sample Go AppElastic Stack Docker + Sample Go App

?? Elastic Stack Docker + Sample Go App Test Elastic Stack which includes Elasticsearch, Kibana, Filebeat and Metricbeat. It comes with a very simple

Ruben Delgado 0 Jan 14, 2022
Go-http-server-docker - Simple sample server using docker and go

go-http-server-docker Simple sample webserver using docker and go.

null 0 Jan 8, 2022
Docker-hub-rate-limit - Show pulling rate status of Docker-hub

Docker-Hub Pull Rate Status This tool shows current status of docker hub pull ra

Tak 1 Jan 28, 2022