LCOW: Coalesce daemon stores, allow dual LCOW and WCOW mode#34859
LCOW: Coalesce daemon stores, allow dual LCOW and WCOW mode#34859cpuguy83 merged 4 commits intomoby:masterfrom
Conversation
|
Didn't go over everything yet but I think |
|
You're right, there are two ways of doing this. I'm not certian either one has merit over the other. The way I've implemented seems slightly cleaner from the perspective of the interfaces to it and the call-sites into it. Here's why: It's only the layerstore that communicates with the graphdriver, so having a single layerstore know which graphdriver to choose based on the operating system of the layer is clean and requires no jiggling in multiple higher-level places to determine which layerstore to use. In other words, this pushes it down to the lowest possible layer keeping a clean upper surface to the layerstore. In reality, there is no need to have multiple layerstores when it's just the graphdriver that is different. Does that make sense? |
|
This changes the layerstore Actually, looking at it again, I'm not sure how this version works at all. How do you make sure that the parent layer is owned by the same driver? Layerstore is basically just a tar blobstore(with complex backend) so these collisions are not uncommon at all. You could easily have same partial diffid chains for different platforms. |
36c5e5e to
910fb8c
Compare
|
I assure you it works! But sure, I'll refactor again to have multiple layer stores if that is what you want. Just trying to do the right thing here after the F2F 😊 |
9bc0fe9 to
b326dba
Compare
|
Rebased on master (following the remote filesystem work, and updates to #34642), refactoring for multi-layerstores still in progress. Marking WIP until that is complete (ETA 2-3 days). |
f98058f to
1b25f32
Compare
|
@tonistiigi - Still some tidying to fix up tests for CI, but pushed a new commit which changes it back to multiple layerstores. Is this more the direction you wanted? Local verification passes on it. |
297153c to
b4a583e
Compare
7cf7821 to
57b8739
Compare
|
Ping @carlfischer1 @friism |
tonistiigi
left a comment
There was a problem hiding this comment.
I think some code is still here that can be removed. I'd like more type safety than passing os/platform as a string and the reuse of layer interface described in earlier comments but these can be follow up.
Please also remove my handle from the commit message. I get spammed on every rebase.
daemon/build.go
Outdated
There was a problem hiding this comment.
Fixed (and removed your handle)
layer/layer.go
Outdated
There was a problem hiding this comment.
Where is this used? The only place I see is in the image delete where this info is already known. Same for rwlayer and test mocks.
There was a problem hiding this comment.
Ah, indeed, you are correct. Good catch. I've removed it, and updated image delete to use it's knowledge of the operating system instead. See commit c94d34f addressing it.
layer/layer.go
Outdated
|
LGTM My only concern is that we replace |
That's exactly why I did it - to make it explicit that it's not a full |
|
@tonistiigi I'll get to these comments shortly. |
Signed-off-by: John Howard <jhoward@microsoft.com>
fb586ca to
0cba774
Compare
Signed-off-by: John Howard <jhoward@microsoft.com>
|
LGTM |
With: - moby/moby#36065 - moby/moby#34859 merged there is no need for environment variables anymore Update instructions. Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
With: - moby/moby#36065 - moby/moby#34859 merged there is no need for environment variables anymore Update instructions. Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
With: - moby/moby#36065 - moby/moby#34859 merged there is no need for environment variables anymore Update instructions. Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
|
I have a scenario where I need to have Linux and Windows containers communicate with each other on a windows 10 box. When will this be available? Is there a way for me to get this in alpha to try it out? |
|
@praqmaTim I think this should be available in the latest beta: https://blog.docker.com/2018/02/docker-for-windows-18-02-with-windows-10-fall-creators-update/ |
Signed-off-by: John Howard jhoward@microsoft.com
Fixes #35303
@tonistiigi, @dmcgowan, @johnstep, @mlaventure, @stevvooe, @vieux, @friism This is one of the action items from the F2F and the document described in #34617.
Specifically, this re-coalesces all the remaining daemon stores which were split as part of the original LCOW implementation.
This has a hard requirement on #34642 being merged to work. It's the last commit which is of interest for the re-coalescing. With this change, this finally allows both LCOW and WCOW containers to run side-by-side. For example
@jstarks, @PatrickLang @darrenstahlmsft FYI