Daoker is a tool to manage Docker environment regardless of docker daemon's failure.
Docker is an open source project to build, ship and run any application as a lightweight container. If you have some experience in operating Docker in developing, testing or production environment, you will find that the architecture of Docker is composed of four parts: Docker CLI, Docker Daemon, Docker Images and Docker Container.
I believe that Docker is totally production-ready, while we still run into some cases that Docker Daemon does not work as we wish, such as :
- command
docker ps
hangs - command
docker inspect
hangs - no details about docker environment, no right to talk about management
- and so on
If situations above happen to you, we can judge that you lose the control of docker. If it is your developing environment, you can change a machine with Docker to avoid some problems. And if it is production environment, I think everyone should realized the gravity of this situation.
As Docker Daemon fails, we have no idea about whether docker api is working which seems so disappointing. Disappointing, but not fatal.
Have you ever experienced that Docker Daemon stores almost all details about Docker Container in its local filesystem? If the answer is "Yes", you've got what I am going to do.
Following is two most important principles:
- NEVER to contact with docker daemon
- take advantage of DOCKER_ROOT and CGROUP FILESYSTEM to do everything you want
Daoker is CLI tool to handle tough things when docker daemon fails. We had better read
daoker help
to get more instruments.
root@daocloud:~/daoker# daoker help
NAME:
daoker - A tool to manage Docker environment when Docker fails
USAGE:
daoker [global options] command [command options] [arguments...]
VERSION:
0.0.1
AUTHOR(S):
Allen Sun <allen.sun@daocloud.io>
COMMANDS:
ps List containers
kill Stop a container forcefully
stop Stop a container
volume Show all details of a container's volumes
pid Print container name if it contains the given pid
oom Return true if a container is under oom
pidnum Print process numbers in your specified container
GLOBAL OPTIONS:
--debug debug mode [$DEBUG]
--log-level, -l "info" Log level (options: debug, info, warn, error, fatal, panic)
--help, -h show help
--version, -v print the version
Then enjoy your jouney with daoker if you happen to find some commands are helpful to you.
Before you Build and Install daoker, you should know some prerequisition:
- Linux only
- Ubuntu preferred
- Golang 1.5+ preferred
- Docker 1.10.0+ tested, lower version will be tested soon
git clone https://github.com/allencloud/daoker.git
cd daoker
export GOPATH=`pwd`
go get -d
go build -o daoker
mv daoker /usr/local/bin
Now daoker
is in your PATH.
You can contribute to Daoker in several different ways:
-
To report a problem or request a feature, please feel free to file an issue.
-
Of course, we welcome pull requests and patches. Setting up a local Daoker development environment and submitting PRs is described here.
Copyright © 2016. All rights reserved