{"id":19674955,"url":"https://github.com/pothulapati/doker","last_synced_at":"2025-04-29T02:30:26.062Z","repository":{"id":64303935,"uuid":"232355947","full_name":"Pothulapati/doker","owner":"Pothulapati","description":"A docker-cli experience but for your kubernetes cluster","archived":false,"fork":false,"pushed_at":"2020-02-04T07:15:06.000Z","size":1818,"stargazers_count":9,"open_issues_count":1,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-05T12:33:10.659Z","etag":null,"topics":["cli","client-go","distributed-systems","docker","docker-cli","docker-client","docker-daemon","kubernetes"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Pothulapati.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-01-07T15:35:59.000Z","updated_at":"2024-08-27T10:15:12.000Z","dependencies_parsed_at":"2023-01-15T10:00:54.072Z","dependency_job_id":null,"html_url":"https://github.com/Pothulapati/doker","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pothulapati%2Fdoker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pothulapati%2Fdoker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pothulapati%2Fdoker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pothulapati%2Fdoker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Pothulapati","download_url":"https://codeload.github.com/Pothulapati/doker/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251420862,"owners_count":21586693,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","client-go","distributed-systems","docker","docker-cli","docker-client","docker-daemon","kubernetes"],"created_at":"2024-11-11T17:20:27.571Z","updated_at":"2025-04-29T02:30:25.768Z","avatar_url":"https://github.com/Pothulapati.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Do*k*er\n\n*do**k**er* is a CLI tool that enables the use of common docker-cli commands but on the context of a kubernetes cluster. It allows users to manage and operate both containers and images mainly by connecting to the docker daemons running on each node in the kubernetes cluster. This is done by running a daemonset which acts like an agent that talks to the docker daemon on the node, and performs tasks.\n\nThis would require the dockerd to be present on the node, whose sock is mounted to the daemonset allowing it to interact.\n\nThe inital focus of this tool is to help you manage images in your cluster as there is no concrete kubernetes primitive for images. But all the commands from the `docker-cli` will be replicated here.\n\n## Installation\n\nFirst, The Daemonset can be installed on the cluster by running\n\n```bash\nkubectl apply -f https://raw.githubusercontent.com/Pothulapati/doker/master/deploy/manifests.yaml\n```\n\nNow, *do**k**er* (this project's cli tool) can be installed by running\n\n```bash\n curl -sL https://raw.githubusercontent.com/Pothulapati/doker/master/bin/install.sh | sh\n```\n\n## Demo\nThis requires the `kubeConfig` file to be present and set to the current cluster.\n\nNow that you have installed, you can list the images in your cluster by runnning\n```bash\ntarun@tarun-Inspiron-5559:work/doker ‹master*›$ doker images\n\ngke-images-default-pool-aafc8b9e-lqkd\n\nREPOSITORY                                            TAG                 IMAGE ID            CREATED             SIZE\ntarunpothulapati/dokerd                               latest              5f96e6ae49f2        4 hours ago         1.65GB\nk8s.gcr.io/kube-proxy                                 v1.13.11-gke.23     f2cfe256a767        2 weeks ago         83.7MB\nk8s.gcr.io/prometheus-to-sd                           v0.8.2              3df88c7a6ea8        3 months ago        37.9MB\nk8s.gcr.io/k8s-dns-sidecar-amd64                      1.15.4              928a271628ea        8 months ago        79.3MB\nk8s.gcr.io/k8s-dns-kube-dns-amd64                     1.15.4              305ac63fd465        8 months ago        87MB\nk8s.gcr.io/k8s-dns-dnsmasq-nanny-amd64                1.15.4              d16f387fc6c5        8 months ago        77.8MB\ngcr.io/stackdriver-agents/stackdriver-logging-agent   1.6.8               4270b0a6eeb1        9 months ago        265MB\nk8s.gcr.io/prometheus-to-sd                           v0.5.0              42e4387da83f        11 months ago       41.9MB\nk8s.gcr.io/prometheus-to-sd                           v0.4.2              626698890281        11 months ago       41.9MB\nk8s.gcr.io/addon-resizer                              1.8.4               5ec630648120        15 months ago       38.3MB\nk8s.gcr.io/metrics-server-amd64                       v0.3.1              61a0c90da56e        16 months ago       40.8MB\nk8s.gcr.io/pause                                      3.1                 da86e6ba6ca1        2 years ago         742kB\n\ngke-images-default-pool-aafc8b9e-tj3m\n\nREPOSITORY                                            TAG                 IMAGE ID            CREATED             SIZE\ntarunpothulapati/dokerd                               latest              5f96e6ae49f2        4 hours ago         1.65GB\nk8s.gcr.io/kube-proxy                                 v1.13.11-gke.23     f2cfe256a767        2 weeks ago         83.7MB\nk8s.gcr.io/prometheus-to-sd                           v0.8.2              3df88c7a6ea8        3 months ago        37.9MB\nk8s.gcr.io/k8s-dns-sidecar-amd64                      1.15.4              928a271628ea        8 months ago        79.3MB\nk8s.gcr.io/k8s-dns-kube-dns-amd64                     1.15.4              305ac63fd465        8 months ago        87MB\nk8s.gcr.io/k8s-dns-dnsmasq-nanny-amd64                1.15.4              d16f387fc6c5        8 months ago        77.8MB\ngcr.io/stackdriver-agents/stackdriver-logging-agent   1.6.8               4270b0a6eeb1        9 months ago        265MB\nk8s.gcr.io/prometheus-to-sd                           v0.5.0              42e4387da83f        11 months ago       41.9MB\nk8s.gcr.io/event-exporter                             v0.2.4              e7c317b95d73        11 months ago       47.3MB\nk8s.gcr.io/prometheus-to-sd                           v0.4.2              626698890281        11 months ago       41.9MB\nk8s.gcr.io/defaultbackend-amd64                       1.5                 b5af743e5984        16 months ago       5.13MB\nk8s.gcr.io/pause                                      3.1                 da86e6ba6ca1        2 years ago         742kB\n\ngke-images-default-pool-aafc8b9e-3xhn\n\nREPOSITORY                                            TAG                 IMAGE ID            CREATED             SIZE\ntarunpothulapati/dokerd                               latest              5f96e6ae49f2        4 hours ago         1.65GB\nk8s.gcr.io/kube-proxy                                 v1.13.11-gke.23     f2cfe256a767        2 weeks ago         83.7MB\nk8s.gcr.io/prometheus-to-sd                           v0.8.2              3df88c7a6ea8        3 months ago        37.9MB\ngke.gcr.io/heapster                                   v1.7.0              c153bcbe94af        5 months ago        84MB\ngcr.io/stackdriver-agents/stackdriver-logging-agent   1.6.8               4270b0a6eeb1        9 months ago        265MB\nk8s.gcr.io/fluentd-gcp-scaler                         0.5.2               3dfc22ad2d25        9 months ago        90.5MB\nk8s.gcr.io/prometheus-to-sd                           v0.5.0              42e4387da83f        11 months ago       41.9MB\nk8s.gcr.io/cluster-proportional-autoscaler-amd64      1.3.0               33813c948942        16 months ago       45.8MB\nk8s.gcr.io/addon-resizer                              1.8.3               b57c00a12f6c        18 months ago       33.1MB\nk8s.gcr.io/pause                                      3.1                 da86e6ba6ca1        2 years ago         742kB\n```\nAs you can see all the images categorized by the node name are printed out.\n\nNow, Let's try loading hello-world docker image into your kubernetes nodes.\n```bash\ntarun@tarun-Inspiron-5559:work/doker ‹master*›$ doker load hello-world\nLoading images to  gke-images-default-pool-aafc8b9e-lqkd\nLoading images to  gke-images-default-pool-aafc8b9e-tj3m\nLoading images to  gke-images-default-pool-aafc8b9e-3xhn\n```\nNow,\nYou should be able to see the `hello-world` image in your kubernetes nodes.\n```bash\ntarun@tarun-Inspiron-5559:work/doker ‹master*›$ doker images | grep hello-world\nhello-world                                           latest              fce289e99eb9        13 months ago       1.84kB\nhello-world                                           latest              fce289e99eb9        13 months ago       1.84kB\nhello-world                                           latest              fce289e99eb9        13 months ago       1.84kB\n```\n\n## Components\n- **Dokerd**: This is the daemon that is deployed as a web-server and listens for HTTP requests from the cli.\n- **doker**: This is the docker like cli, which talks to the dokerd agents through the kubenetes proxy sub-resources and passes commands.\n\n## TODO\n- Add more container management commands.\n- Support Labeling of Nodes.\n- Write tests for dokerd client.\n- Support for more larger files.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpothulapati%2Fdoker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpothulapati%2Fdoker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpothulapati%2Fdoker/lists"}