Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove LXC support. #17700

Merged
merged 2 commits into from Nov 5, 2015
Merged

Remove LXC support. #17700

merged 2 commits into from Nov 5, 2015

Conversation

calavera
Copy link
Contributor

@calavera calavera commented Nov 4, 2015

The LXC driver was deprecated in Docker 1.8.
Following the deprecation rules, we can remove a deprecated feature
after two major releases. LXC won't be supported anymore starting on Docker 1.10.

It also removes the global daemon option --exec-driver because it doesn't make sense anymore.

Signed-off-by: David Calavera david.calavera@gmail.com

@tianon
Copy link
Member

tianon commented Nov 4, 2015

LGTM! 👍

@thaJeztah
Copy link
Member

Think there's also some docs around lxc here https://github.com/docker/docker/blob/master/docs/reference/run.md#runtime-privilege-linux-capabilities-and-lxc-configuration (but we're not in docs review yet)

@cpuguy83
Copy link
Member

cpuguy83 commented Nov 4, 2015

runconfig/parse.go:65: flLxcOpts declared and not used

@calavera
Copy link
Contributor Author

calavera commented Nov 4, 2015

thanks @cpuguy83

@thaJeztah yeah, I left a few things behind. I wanted to check if it actually worked :)
There are a few things in contrib that I don't really know how to clean, apparmor, selinux and other related scripts.

@thaJeztah
Copy link
Member

@calavera no problem, just mentioned it so that we don't skip docs review on this one. I can help checking once we're there

@calavera calavera force-pushed the remove_lxc branch 2 times, most recently from fed7b7c to d4bfe60 Compare November 4, 2015 22:54
@calavera
Copy link
Contributor Author

calavera commented Nov 4, 2015

@docker/maintainers please, make sure you check this PR, because it's happening 😁

@@ -72,16 +72,6 @@ RUN cd /usr/local/lvm2 \
&& make install_device-mapper
# see https://git.fedorahosted.org/cgit/lvm2.git/tree/INSTALL

# Install lxc
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ugh i know it's silly but if we could merge this at the same time as #17701 to suffer only one cache bust :)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we can put both changes in the same PR to merge them at the same time, although it's unusual.

@vieux
Copy link
Contributor

vieux commented Nov 5, 2015

@calavera are we going to keep the execdrivers since there is only one now ?
I think it's a good idea if one another ever pops up.

@calavera
Copy link
Contributor Author

calavera commented Nov 5, 2015

@vieux that's a very good question. Maybe we can just remove that option all together. After all, windows and linux are already separated by build flags.

@calavera
Copy link
Contributor Author

calavera commented Nov 5, 2015

I've also removed the global daemon option --exec-driver in a separated commit. Because as @vieux mentions, it doesn't make sense to keep it anymore.

@rhatdan
Copy link
Contributor

rhatdan commented Nov 5, 2015

Does this mean dockerinit goes away? Can we switch to building docker as dynbinary as default?

@vdemeester
Copy link
Member

@calavera the --exec-driver flag will go without deprecation notice though, right ? (I don't think this is a bad thing but prefer to mention/ask about it).

@cpuguy83
Copy link
Member

cpuguy83 commented Nov 5, 2015

Yeah, thought abut this too. Ultimately I think it should fail and not just silently ignore the fact that the user was specifying LXC.

@calavera
Copy link
Contributor Author

calavera commented Nov 5, 2015

@rhatdan dynbinary has been the default since 1.8.

@vdemeester yes it goes away without deprecation notice. It doesn't make sense to keep it as deprecated when it doesn't do anything.

@cpuguy83 it fails if you set the flag, because the parser doesn't recognize that option 😄

@vdemeester
Copy link
Member

@calavera ok,seems fair. LGTM then :-)

@ewindisch
Copy link
Contributor

Conceptually, LGTM! Only glanced at the change itself, but nothing shocking.

@tiborvass
Copy link
Contributor

I'm not sure about removing --exec-driver even if there's just now one driver left. In fact there are two drivers left, one windows and libcontainer even if you can't really choose between them because they are for different platforms.

Still, removing --exec-driver is dependent on the runc integration, since runc integration is what will give people a way to write and choose exec drivers. But those decisions are not finalized. If today, we remove the flag only to add it back later, it doesn't make sense. I prefer to live with a nop flag then with back and forth decisions.

To complicate the matter further, I'd be interested in moving the --exec-driver flag to the run command so that i can have multiple exec drivers at the same time.

@calavera
Copy link
Contributor Author

calavera commented Nov 5, 2015

To complicate the matter further, I'd be interested in moving the --exec-driver flag to the run command so that i can have multiple exec drivers at the same time.

@tiborvass That's one more reason to remove this flag from the daemon. It's a completely different feature.

I'd rather not keep flags that we don't use only just in case. It will be easier to move forward with runc if we start with a clean slate and we don't try to keep the old idioms around only because we had them already.

@crosbymichael I'd really appreciate your input in this.

@tiborvass
Copy link
Contributor

It will be easier to move forward with runc if we start with a clean slate and we don't try to keep the old idioms around only because we had them already.

@calavera that's why it's the runc integration PR that should remove the flag.

Anyway I won't fight it.

@LK4D4
Copy link
Contributor

LK4D4 commented Nov 5, 2015

Btw, libnetwork depends on .dockerinit inside container.

@shykes
Copy link
Contributor

shykes commented Nov 5, 2015

LGTM

shykes pushed a commit that referenced this pull request Nov 5, 2015
@shykes shykes merged commit 2519f46 into moby:master Nov 5, 2015
@calavera calavera deleted the remove_lxc branch November 5, 2015 23:22
@michaelneale
Copy link
Contributor

Shed a single tear

@lowenna
Copy link
Member

lowenna commented Nov 6, 2015

Ah please leave --exec-driver for the moment. There will soon be two Windows drivers while I'm developing the libcontainer Windows one

@xnox
Copy link
Contributor

xnox commented Nov 12, 2015

How is OCI exec driver going to be added?

Note that native driver / libcontainer != OCI. There are three OCI complaint executors already: clr, runv, runc. With only one of them based on libcontainer bits.

This kills clr exec-driver that uses VMs on Linux, which Highland team was about to be piloting to use. And which was requested to be merged to master...

Given that imminently we will need oci exec driver to supplement and migrate from native driver on linux at least, removing this support adds no value, and makes current and future development match harder.

Please revert?

@stevvooe
Copy link
Contributor

@xnox Might be better to open a separate issue rather than commenting on a closed pull request. I would also suggest you be more specific about why this affects OCI integration.

vincentbernat added a commit to vincentbernat/docker that referenced this pull request Nov 18, 2015
LXC support has been deprecated and the related completion has been
removed in moby#17700 but was added back in moby#17334.

Signed-off-by: Vincent Bernat <vincent@bernat.im>
@kimh
Copy link

kimh commented Dec 8, 2015

I just want to be clear, but does this PR mean that I cannot run Docker on LXC from docker 1.10? Or is there a way other than using --exec-driver lxc to do this?

In other words, what should I do if I want to keep using Docker on LXC?

@thaJeztah
Copy link
Member

@kimh correct; are there specific reasons you cannot use the "native" driver?

@kimh
Copy link

kimh commented Dec 8, 2015

@thaJeztah

I work in CircleCI and we use LXC container to run builds. Therefore, we've used LXC exec-driver to run Docker.

are there specific reasons you cannot use the "native" driver?

Actually, I'm wondering if I can use libcontainer on LXC and made this SO question which led me to this PR.

So repeating the same question, is it technically possible to use libcontainer driver on LXC container?

@cpuguy83
Copy link
Member

@kimh There should be nothing stopping it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet