-
Notifications
You must be signed in to change notification settings - Fork 379
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
JOSS: Recommended reference / citation for x11docker in academic context #92
Comments
Thank you, I am honored that you want to cite my project in a scientific article! Currently I try to write a short description addressing readers that are not familiar with the background of docker and X. Not an easy task as I am blind for the perspective of someone not knowing either of them. ;-) This description would be useful for both ways, Zenodo or JOSS, and would also be a good introduction in the README.md. A first attempt: x11docker allows to run graphical applications in docker linux containers.
This can help to run or deploy software that is difficult to install on several systems due to dependency issues. |
For newcomers, I would suggest to include more links in the description, ideally to Wikipedia pages since they are usually at a level addressing non-experts, and they tend to stay available. "Docker", "Linux containers", "kernel namespace", "X server", "graphical applications", "virtual machine", "X security leaks" ... a lot of lingo :-) Maybe (!) you know a good website giving an overview on the security risks that you could link to here? Other than that I like it! Better to keep it clear and simple and use links for details. Would you like me to make some suggestions on the first paragraph, or rather do a further iteration yourself? Do you have a clear preference of JOSS vs. Zenodo? |
I've included several links. I was not sure links would be allowed in the paper.
The current link points to the security paragraph in README.md. It gives an overview of x11docker security settings and provides links to further background information.
It is quite appreciated! Don't hesitate to point on ugly use of english language. I am well aware that all x11docker documentation would benefit from a critical spell check.
It would be nice to get into JOSS. Zenodo would be a fallback possibility if JOSS does not accept x11docker for some reasons. Second version: x11docker allows to run graphical applications in Docker Linux containers.
Docker allows to install software in a deployable Docker image with a rudimentary Linux system inside. This can help to run or deploy software that is difficult to install on several systems due to dependency issues. It is possible to run outdated versions or latest development versions side by side. x11docker alleviates usage of Docker for end users. x11docker runs on Linux and (with some setup) on Windows. x11docker is not adapted to run on macOS. |
I have created a paper.md for submission to JOSS. Would you mind to have a look at it? There is just one point in the submission requirements where I am not sure about:
I am pretty sure x11docker can be useful in a scientific context, e.g. in development, deployment or in running quite old scientific software. But it may be not obvious from the current description. |
I'll take a look - might take a few days though. Thanks for taking this up! Re. scientific context: containerisation is broadly discussed as a mean for better reproducibility, yet mostly for client/server-based applications (e.g. RStudio, Jupyter), so |
@nuest I think your idea of publishing this in academia is cool! However, I think "containerisation is broadly discussed as a mean for better reproducibility" is too general and not specific to Docker does not provide a display server that would allow running applications with a graphical user interface. While we can share the host display server conveniently to the container to get the GUI application in container working, this scarifies the security and reproducibility. For now, I think the academic contribution of |
@yxliang01 Thanks for the feedback - I tried to incorporate your perspective/statement of need in my rewrite of the article: #97 I added some context and related work. Let me know what you guys think! |
Hi @nuest! I have read your PR and I am concerned about the following sentence:
Containers in general, and docker in particular, are not sandboxes. Even if they can be set up to be less inscure, where x11docker does an amazing job, shouldn't we be cautious about using that term? |
Hi @1138-4eb , thank you for looking at this, too! Thank you @nuest for your work on this! Overall it looks well. I am still reading and thinking about it.
It seems the "it" is a double of "Docker".
This part is less clear. After mentioning the webserver solution it is not obvious which gap x11docker is filling. Also it is not obvious who is running the webserver. I assume you mean a webserver running in container providing HTML5 access. Maybe it is better to note alternatives to x11docker at the end. A VNC server within container is a possibility, too. Both solutions, VNC and HTML5, add some overhead within the container, and need some special docker command setup to forward TCP ports. An SSH server in container is possible, too. All those solutions need some setup skills.
x11docker is heavily tested on several Linux systems. For MS Windows I currently have feedback from @1138-4eb only. That means, either it causes no issues, or no one else uses it on Windows :). So far, I am not sure how reliably x11docker works on Windows. I assume if x11docker runs reliably on Linux, Windows and macOS with same start command on all systems, it provides a unified and simplified access to reproducible scientific containers. This also would be true for non-GUI applications that could benefit e.g. from container user setup, shared files and printer access. (Printer access is not implemented for Windows yet. Though, I have an idea for it.) |
Re. sandboxing: I did not take into account the various interpretations that readers might have with this term, so I'd be happy to see this rephrased. Suggestions?
Correct!
Yes, I do. Mentioning VNC server as an alternative is a good idea. Re. operating systems: I think it is fair to say that there is limited Windows support, but of course be transparent. Would you like to rephrase this? [I have an extra Window 10 machine and could run some tests (which ones? is there a list of images that covers a good amount of features?).] Let me know if you'd like to do the next round yourself or if I should make an update. |
Possible features to test would be
I'll do the next round. :) |
@nuest I think #97 is great! I have made some potential improvements (to me) to the paper in #98 . I think it would be helpful if we put any research prototypes or research-related open source projects as use cases into the paper if there is any. I think it would outweigh lots of paragraphs in the paper :) But, I am not aware of any yet. Also, in the paper,
It is common for people to use virtual machines as an analogy to containers. But, I think if we only say "it is similar, but needs less resources" doesn't really capture the main differences in scientific context between these two (fully isolated kernels vs shared kernel, etc...). But, if we talk about the differences between these two too much, it might defeat the purpose of using virtual machine as an analogy. Therefore, I propose removing this sentence. Please let me know what you think. |
Regarding references to other projects: I am not aware of anything similar to x11docker, would of course be good to add connected works. Let us know if you find something. Regarding VM comparison: I would be happy to go without that comparison, the references do explain those details. @mviereck I forgot to add one important refences, already in the bib: The |
Updated as per comment mviereck#92 (comment)
@nuest Updated #98 as per #92 (comment) |
Thank you, @yxliang01, for looking at this, too! Mainly I changed the order of the content.
I have reintrodued a variation of the sentence because I think it helps to compare containers with the more familar virtual machines. If you still think it should be removed, ok.
It is added now.
One I am aware of is subuser (on github). It uses Docker containers to isolate applications and uses xpra to isolate from host X. But its concept is quite different from x11docker. It is rather some sort of package manager.
This sentence is hard for me to understand. However, it sounds impressive :-). I am not sure if it should be written easier. Mostly new:
This sounds a bit confusing to me, but maybe only due to my limited english speech:
Maybe writing it:
|
Always glad to help!
I'm a hardware guy, so my knowledge about software security is limited. However, IMHO, the best approach is to avoid using the term, and describe the features instead. Those who know what a sandbox is, will see the similarities and will ask themselves why the term is avoided. At the same time, users who have heard about the term but are not sure about the meaning, will search for That is, it might be sensible to modify/remove:
x11docker provides several features to enhance container isolation from the host. Although X security is one of the concerns, it is not the only one.
I've been intensively using it and so far it works pretty well.
I think it'd be interesting to add this sentence to
Have you considered adding some note to the README or some pinned issue to let users know that you are willing to accept the donation of some old macbook? You might also enable some crowdfunding if you find any interesting sale. |
@1138-4eb Thank you very much! I'll look closer tomorrow.
I don't know. The files are expected as markdown source by JOSS.
That is a good idea! |
I tried to render the PDF using the JOSS toolchain, and did not succeed. When you submit, a bot will provide a rendered version for the review, and I think that's enough most of the time. |
We should add a reference to https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0152686 See also https://github.com/WebDataScience/GUIdock At a first glance I don't know if they are doing the same thing or where projects differ. Citation for
|
Says here in their paper, I quote:
So it looks like they are the first to come up with X Windows software layer configured Docker using the following solution:
Although the GitHub repo no longer seems to be active after their paper got published... |
According to section GUIdock: on Microsoft Windows operating systems:
So, their approach seems to require a SSH server/daemon to be running inside the container. It is likely that MobaXterm does not explicitly provide the ability to run custom X server. Instead, the interface is Moreover, in section GUIdock: on Mac OS they explain that they use an X server on the host, and Overall, I think that more effort is put in presenting the example images as complete, ready-to-use and useful products, rather than in the technical details of the alternatives and the chosen solution in each platform. Hence, the target audience are researchers in systems biology. |
About Two points I am not sure about:
Maybe we could drop that at all.
Maybe it should be said that running x11docker in a Linux VM on macOS and Windows is fully supported. I cannot guarantee it for running natively on Windows (and maybe in future on macOS) as there might come up issues I cannot fix at all. Compare issues #104 and #108 where x11docker cannot do anything about and weird fixes by the user are needed. Re: GUIdock
That is been said nice. :)
The scripts for macOS and Windows do not look better. I think GUIdock should not be honored with a citation in
There is a thread on stackoverflow from 2013 showing some setup examples using X from host. |
Today I found katacontainers.io (https://www.youtube.com/watch?v=vK_gdy2kdPM), since it was the default runtime in a server I was using. I think that it might be worth a reference from the security/sandboxing point of view. Furthermore, I wonder if it is worth testing x11docker with kata. |
I have submitted to JOSS and am awaiting the begin of the review process.
The sandbox aspect is no longer part of |
JOSS review ticket: openjournals/joss-reviews#1346 |
Agree. I was not thinking of adding it to If you want proper sandboxing, kata illustrates the complexity that is involved. x11docker does the best it can with off-the-shelf resources in the stardard docker runtime (runc). About GUI applications and kata, did you actually try it or is there any specific reason why you think that it is not supported? I ask it because kata is expected to replace runc, so the |
Let's discuss |
The paper is finally accepted into JOSS: :-) Much thanks @ALL! |
Hi! Very useful tool, thanks for your work. I'm in the process of using/recommending it in a scientific article about using containers for preservation of computational workflows. I did not find a preferred way to cite this tool, and this might be not relevant for you at all. Nevertheless, I'd be happy to help it you're open to make this tool "citable", thus making it traceable who in research uses it and writes about it.
There are two ways to achieve this:
The text was updated successfully, but these errors were encountered: