All new Registrations are manually reviewed and approved, so a short delay after registration may occur before your account becomes active.
Advantages of using Docker to deploy NextCloud
Hi,
I am looking into the various methods to spin up a NC / Seafile instance on my storage box.
I see that both NC and Seafile websites state the recommended way for server installation is via Docker. I have done NC installation the manual way but I have never tried it with Docker. I understand that Docker allows NC to be spin up easily in a container environment. However, I do not intend to migrate this storage box in the short run so I don't really mind setting up manually.
1) Is it really worthy to add this extra layer when it can work without Docker?
2) What are some of the advantages (Security / Stability / Speed / Scalability etcetera) I can get from Docker if I were to deploy NC there?
3) As I'm new to Docker, do I use Portainer to first deploy the essential applications such as database, NGINX proxy manager before deploying NC / Seafile?
Thank you!
- Do you use Docker to deploy NextCloud / Seafile etc?43 votes
- Yes46.51%
- No53.49%
Comments
1 - Yes. Docker is great.
2 - Easier to install, and much much much lower maintenance, you just point docker to a path, tell it to run the container and NC is up. When you want to upgrade? You stop the container, update it, and run it again - typically, 3 commands, 5 mins.
3 - You could if you'd like to use a GUI, but CLI would be just as easy since you've only got application running. I would recommend you look into
docker compose
, you'd effectively create 1 .yml file that has your DB, and NC/Seafile, and run that. There are few floating around the interwebs. You then just point your reverse proxy to the docker container.With Docker, you can start and stop easy. Change version is simply as changing the version of image.
Another benefits are isolation of resources. You can create separated disks and networks so that each project can't interfere with others.
For example, you can make an internal network from a nextcloud to db that is not exposed to the internet or any other containers in the same host.
Well when Docker was released initially, it's purpose was to prevent dealing with software dependencies at a manual level. You would ship a docker image with all the right stack. So that makes it easier to deploy for customers / users.
or at least that's my opinion.
Thanks for the replies. It seems like the replies lean towards the usage of Docker as a lot of points have been brought up to justify this 'extra layer'.
However, based on the poll result, 1/3 of the poll participants do not use Docker for their NC deployment. I would love to hear from this group (non-docker users) on why are they not using Docker for their NC deployment.
I stopped using NC anyway but
i use regular one because i love (habituated) that way and i know exactly where database located, data located etc.
recently used docker version because some plugins require extra php modules which i don't want to install in my regular php so opted for it, but then again...i don't know how to port forward so i have to use with NC:XXXX which is in-convenient.
but overall docker is more convenient when you need to use multiple projects like NC especially when some use PHP, some use node some use go etc.
Where do you see this recommendation?
(I may have missed it, but I don't recall an explicit recommendation to install NC via Docker)
If I only run this one service I probably won't dockerize it. But if I run multiple services on a single node, I use docker to make managing easier.
I thought I saw that recommendation, too, but don't see where. Maybe the way they show the Docker and VM and then mention web installer as "Community"?
The documentation definitely isn't manual install centric since I last installed like around NC 12 or something.
Even using Nextcloud through Yunohost broke a couple of times on upgrade. I'd stick with Docker on a new setup.