{"action":"created","issue":{"url":"https://api.github.com/repos/docker/docker/issues/17477","labels_url":"https://api.github.com/repos/docker/docker/issues/17477/labels{/name}","comments_url":"https://api.github.com/repos/docker/docker/issues/17477/comments","events_url":"https://api.github.com/repos/docker/docker/issues/17477/events","html_url":"https://github.com/docker/docker/issues/17477","id":113996360,"number":17477,"title":"Proposal: optional/remote exec-driver support & per-container exec-driver","user":{"login":"WeiZhang555","id":1203611,"avatar_url":"https://avatars.githubusercontent.com/u/1203611?v=3","gravatar_id":"","url":"https://api.github.com/users/WeiZhang555","html_url":"https://github.com/WeiZhang555","followers_url":"https://api.github.com/users/WeiZhang555/followers","following_url":"https://api.github.com/users/WeiZhang555/following{/other_user}","gists_url":"https://api.github.com/users/WeiZhang555/gists{/gist_id}","starred_url":"https://api.github.com/users/WeiZhang555/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/WeiZhang555/subscriptions","organizations_url":"https://api.github.com/users/WeiZhang555/orgs","repos_url":"https://api.github.com/users/WeiZhang555/repos","events_url":"https://api.github.com/users/WeiZhang555/events{/privacy}","received_events_url":"https://api.github.com/users/WeiZhang555/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2015-10-29T07:37:12Z","updated_at":"2015-10-30T07:38:32Z","closed_at":null,"body":"## Background\r\nAs we can see that there already are some good works towards making docker support extra exec drivers, for example, `clear container`( #17441, #17244, #16163), which is trying to run docker containers with optimizational virtualization technology. Also there's other nice project doing similar work such as `runv` which is also compatible with OCI standard. \r\n\r\nSome of us may be interested in these technologies, which I mean using docker to boot a extremely light-weight virtual machine, this VM may not boot as fast as docker container, but owns enhanced security with standalone kernel for each containerized-vm.  I can also understand that Docker may not embed more exec drivers, so what I'm proposing is \" optional/remote exec-driver support\" and \"per-container exec-driver\".\r\n\r\n## Optional/remote exec-driver support\r\nNow docker has supported pluggable network driver, pluggable ipam driver and pluggable volume driver thanking to docker's nice design of plugin mechanism. I'm wondering whether we can provide a plugin for exec driver, so docker can interact with any custom exec driver without embed it directly, so users can still make use of docker's powerful UX and their own runtime according to different business needs. \r\n\r\n## Per-container exec-driver\r\nAs I know that `--exec-driver` is a daemon flag, it will take effect for all containers once set. With optional exec driver support, user will need a per-container exec driver flag, so they can choose to boot a container with any exec driver. For example, we can use `docker run ` to start a linux container with docker's default setting, or use `docker run --exec-driver remote:vm-container` to boot a lightweight kvm virtual machine. This can be super useful because we don't need to run two different docker daemons with different exec-driver flags, the latter method will bring other problems such as docker image management chaos(they can't share same image repo, if the do, they need to solve the image conflict problem)\r\n\r\nThe exec driver plugin is really useful and helpful, as there may appear more runtime projects compatible with OCI standard in the future, this plugin will make docker more open and flexible, and give user an overall solution no matter what(vm or container) user need for business."},"comment":{"url":"https://api.github.com/repos/docker/docker/issues/comments/152451182","html_url":"https://github.com/docker/docker/issues/17477#issuecomment-152451182","issue_url":"https://api.github.com/repos/docker/docker/issues/17477","id":152451182,"user":{"login":"WeiZhang555","id":1203611,"avatar_url":"https://avatars.githubusercontent.com/u/1203611?v=3","gravatar_id":"","url":"https://api.github.com/users/WeiZhang555","html_url":"https://github.com/WeiZhang555","followers_url":"https://api.github.com/users/WeiZhang555/followers","following_url":"https://api.github.com/users/WeiZhang555/following{/other_user}","gists_url":"https://api.github.com/users/WeiZhang555/gists{/gist_id}","starred_url":"https://api.github.com/users/WeiZhang555/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/WeiZhang555/subscriptions","organizations_url":"https://api.github.com/users/WeiZhang555/orgs","repos_url":"https://api.github.com/users/WeiZhang555/repos","events_url":"https://api.github.com/users/WeiZhang555/events{/privacy}","received_events_url":"https://api.github.com/users/WeiZhang555/received_events","type":"User","site_admin":false},"created_at":"2015-10-30T07:38:32Z","updated_at":"2015-10-30T07:38:32Z","body":"And I will be glad to help if this feature is accepted, looking forward to that day. :smile: "}}