omv7:docker_in_omv

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
omv7:docker_in_omv [2024/04/28 13:57] – [Why use docker-compose] chenteomv7:docker_in_omv [2024/05/10 17:41] (current) – [User and permission management in docker and OMV. More security.] chente
Line 16: Line 16:
 \\ \\
 \\ \\
-**This document establishes a method to successfully install a docker application on OMV.** 
- 
 [[https://forum.openmediavault.org/|{{ :omv7:dockeromv7-2.jpg?direct&200|Go to -> OMV forum}}]] [[https://forum.openmediavault.org/|{{ :omv7:dockeromv7-2.jpg?direct&200|Go to -> OMV forum}}]]
-  * The [[https://forum.openmediavault.org/|OMV forum]] is a two-way tool. It provides users with solutions to their problems. It gives developers insight into the problems users are having and allows them to implement appropriate solutions in software and methods. +**This document establishes a method to successfully install any application on OMV using Docker.** 
-  In the case of docker, the forum has received numerous queries from users regarding docker configuration issuesBuilding on that experience from the forum, this guide lays out a simple docker setup method that fixes the vast majority of these problems before they arise. + 
-  * We will use docker-compose due to its ease of use and the integration offered by the [[omv7:omv7_plugins:docker_compose|openmediavault-compose]] plugin in OMV.+The [[https://forum.openmediavault.org/|OMV forum]] is a bi-directional tool. Provides users with solutions to their problems. It provides developers with information about user problems and allows them to implement appropriate solutions in software and methods. 
 + 
 +In the case of Docker, the forum has received numerous queries about very diverse problemsBased on that forum experience, this document offers a simple method for configuring Docker that fixes the vast majority of these problems before they arise. 
 + 
 +\\
 \\ \\
-**This document contains the following points:**+**Index:**
  
   * [[omv7:docker_in_omv#what_is_docker|What is Docker.]]   * [[omv7:docker_in_omv#what_is_docker|What is Docker.]]
   * [[omv7:docker_in_omv#user_and_permission_management_in_docker_and_omv_more_security|User and permission management in docker and OMV. More security.]]   * [[omv7:docker_in_omv#user_and_permission_management_in_docker_and_omv_more_security|User and permission management in docker and OMV. More security.]]
   * [[omv7:docker_in_omv#install_and_configure_docker|Install and configure Docker.]]   * [[omv7:docker_in_omv#install_and_configure_docker|Install and configure Docker.]]
-  * [[omv7:docker_in_omv#configuring_a_container_step_by_step_jellyfin|Configuring a container step by step (jellyfin).]]+  * [[omv7:docker_in_omv#configuring_a_container_step_by_step_jellyfin|Configuring a container step by step (Jellyfin).]]
   * [[omv7:docker_in_omv#examples_of_configuration_of_some_containers|Examples of configuration of some containers.]]   * [[omv7:docker_in_omv#examples_of_configuration_of_some_containers|Examples of configuration of some containers.]]
   * [[omv7:docker_in_omv#some_basic_procedures_for_container_management|Some basic procedures for container management.]]   * [[omv7:docker_in_omv#some_basic_procedures_for_container_management|Some basic procedures for container management.]]
Line 122: Line 124:
  
 The result of all of the above is that, at the time of creating a shared folder, **any user created in the OMV GUI by default has read and write permissions on any shared folder**. This is then restricted by individually managing the permissions of each shared folder or each user. To do this OMV uses a samba-based permissions system, an upper layer of permissions applied on top of filesystem-level permissions that allows it to enforce these restrictions. The result of all of the above is that, at the time of creating a shared folder, **any user created in the OMV GUI by default has read and write permissions on any shared folder**. This is then restricted by individually managing the permissions of each shared folder or each user. To do this OMV uses a samba-based permissions system, an upper layer of permissions applied on top of filesystem-level permissions that allows it to enforce these restrictions.
 +
 +<html><body><table width="100%" border="0"><tr><td colspan="2" style="background-color:#69A5FF;height:30px;"><strong><span style="color:#FFFFFF;font-size:110%;">&#160;
 + Beginners Info
 +</span></strong></td></tr><tr><td style="background-color:#E6FEFF;height:25px;width:380px;">
 +Don't confuse file system level permissions with samba system permissions. Samba permissions are a top layer that can restrict permissions to the file system level, never expand them. The file system level permissions will always be the same even if you modify the permissions in the OMV GUI.<br>
 +Another very different issue is ACL permissions, never use them if you do not know exactly what you are doing, in 99% of cases they are not necessary and only cause problems.
 +</tr></table></body></html>
 +
  
 All of this may be convenient for managing permissions on the NAS but **it has security implications that need to be considered from a docker point of view**. All of this may be convenient for managing permissions on the NAS but **it has security implications that need to be considered from a docker point of view**.
Line 187: Line 197:
 </tr></table></body></html> </tr></table></body></html>
  
-On the right you can see how the plugin's SETTINGS tab could be configured following this diagram. If your system is simpler or more complicated, adapt it accordingly. +On the right you can see how the plugin's SETTINGS tab could be configured following this diagram. If your system is simpler or more complicated, adapt it accordingly. A simpler system could be one drive for OMV and another drive for data, in which case just create all the necessary folders on the data drive.
 {{ :omv7:dockeromv7-6.png?direct&1400 |Expand image -> Docker folders}} {{ :omv7:dockeromv7-6.png?direct&1400 |Expand image -> Docker folders}}
  
Line 195: Line 204:
 <html><body><table width="100%" border="0"><tr><td colspan="2" style="background-color:#69A5FF;height:30px;"><strong><span style="color:#FFFFFF;font-size:110%;">&#160; Beginners Info <html><body><table width="100%" border="0"><tr><td colspan="2" style="background-color:#69A5FF;height:30px;"><strong><span style="color:#FFFFFF;font-size:110%;">&#160; Beginners Info
 </span></strong></td></tr><tr><td style="background-color:#E6FEFF;height:25px;width:380px;"> </span></strong></td></tr><tr><td style="background-color:#E6FEFF;height:25px;width:380px;">
-Separating docker from the operating system provides several advantages:<br>+<b>Separating Docker from the operating system unit offers several advantages</b> (this may surprise a user new to Linux, but things work differently on Linux than on Windows):<br>
 - If Docker is installed along with the operating system, Docker data will be lost if you need to reinstall OMV for any reason. For a possible reinstall of OMV, having the docker data on a separate drive only requires mounting that drive and everything is back up and running in a matter of minutes.<br> - If Docker is installed along with the operating system, Docker data will be lost if you need to reinstall OMV for any reason. For a possible reinstall of OMV, having the docker data on a separate drive only requires mounting that drive and everything is back up and running in a matter of minutes.<br>
 - Avoid rootfs filling problems. Depending on the number and type of containers, it is very possible to exhaust rootfs storage if docker is located next to the operating system, this causes a lot of problems.<br> - Avoid rootfs filling problems. Depending on the number and type of containers, it is very possible to exhaust rootfs storage if docker is located next to the operating system, this causes a lot of problems.<br>
 - Allows you to place docker on a higher speed drive. The OMV operating system does not need to be on fast storage, it can live perfectly on a pendrive (just remember to install openmediavault-flashmemory to ensure the longevity of the pendrive). However, Docker containers will benefit from increased execution speed if docker is installed on a high-access speed drive, such as an SSD or NVMe.<br> - Allows you to place docker on a higher speed drive. The OMV operating system does not need to be on fast storage, it can live perfectly on a pendrive (just remember to install openmediavault-flashmemory to ensure the longevity of the pendrive). However, Docker containers will benefit from increased execution speed if docker is installed on a high-access speed drive, such as an SSD or NVMe.<br>
-- Installing OMV on a USB flash drive is a good idea. But installing docker also on that pendrive is detrimental to the pendrive because docker will perform continuous writes, penalizing the longevity of the pendrive despite openmediavault-flashmemory.+- Installing OMV on a USB flash drive is a good idea. But installing docker also on that pendrive is detrimental to the pendrive because docker will perform continuous writes, penalizing the longevity of the pendrive despite openmediavault-flashmemory.<br> 
 +- If you don't have a fast drive you can install docker on one of the data drives. The applications won't go as fast but at least they will be separated from rootfs.
 </tr></table></body></html> </tr></table></body></html>
  
Line 258: Line 268:
  
   * WHAT IS DATA FOLDER:   * WHAT IS DATA FOLDER:
-    * This folder is the one that stores user dataIt is the main storage file system where you will have most of the data, such as movies or other types of files. +    * Use of this field is optional. This field in the plugin configuration allows you to define a path to a shared folder using the ''CHANGE_TO_COMPOSE_DATA_PATH'' variable. Later we will see how to use this variable in a compose file. The plugin allows you to use example compose files that are already preconfigured with this variableIn the GUI you can see a note that says: "Optional - Location of container persistent data"this was the goal when the plugin was created since at that time environment variables were not supported for paths in the bakup utility of the complementAt this point that is no longer a problem and all paths can be defined in the environment variables file. 
-    * The plugin creates a variable called ''CHANGE_TO_COMPOSE_DATA_PATH'' that can be used in compose files to define the absolute path to the //data// folder. In this way we will facilitate the work of defining paths in the compose filewe will see it in detail later.+    * In order to put this field to useful use, despite the legend in the GUI about persistent data, we will use this variable to define the path to the system data folder. This is more useful considering the system configuration we have designed as an example, but you can use this field to define the route you want. By user data we understand the main storage file system where you will have most of the datasuch as movies or other types of files.
     * If you have more than one folder of these characteristics in different file systems, you will only be able to choose one of them to use the ''CHANGE_TO_COMPOSE_DATA_PATH'' variable. In that case, you will have to define the rest of the folder paths by other means, such as the global environmental variables file, for example.     * If you have more than one folder of these characteristics in different file systems, you will only be able to choose one of them to use the ''CHANGE_TO_COMPOSE_DATA_PATH'' variable. In that case, you will have to define the rest of the folder paths by other means, such as the global environmental variables file, for example.
     * ...<html><body><table width="100%" border="0"><tr><td colspan="2" style="background-color:#69A5FF;height:30px;"><strong><span style="color:#FFFFFF;font-size:110%;">&#160; Note     * ...<html><body><table width="100%" border="0"><tr><td colspan="2" style="background-color:#69A5FF;height:30px;"><strong><span style="color:#FFFFFF;font-size:110%;">&#160; Note
Line 634: Line 644:
       * ...<html><body><table width="100%" border="0"><tr><td colspan="2" style="background-color:#2C6700;height:30px;"><strong><span style="color:#FFFFFF;font-size:110%;">&#160; Advanced configuration       * ...<html><body><table width="100%" border="0"><tr><td colspan="2" style="background-color:#2C6700;height:30px;"><strong><span style="color:#FFFFFF;font-size:110%;">&#160; Advanced configuration
 </span></strong></td></tr><tr><td style="background-color:#e7fae1;height:25px;width:380px;"> </span></strong></td></tr><tr><td style="background-color:#e7fae1;height:25px;width:380px;">
-You can use relative paths, for example ./config equals the /appdata folder of the plugin configuration.+You can use relative paths. Set the volume mapping in the compose file:<br> 
 +<b>./config:/config</b><br> 
 +will create the folder<br> 
 +<b>${PATH_TO_APPDATA}/jellyfin/config</b><br> 
 +on the host.
 </tr></table></body></html> </tr></table></body></html>
       * In the first line we are mapping the ///config// folder of the jellyfin container to a folder on our system. The ///config// folder is the one that contains the jellyfin configuration files, the database, users and passwords, plugins, etc. We want this folder to be located on a drive with access speed. So we map it to our ///appdata// folder that we have configured on a fast disk, ideal for managing a large database. A fast disk will allow Jellyfin to quickly read movie covers, etc. from the television and everything will be better.       * In the first line we are mapping the ///config// folder of the jellyfin container to a folder on our system. The ///config// folder is the one that contains the jellyfin configuration files, the database, users and passwords, plugins, etc. We want this folder to be located on a drive with access speed. So we map it to our ///appdata// folder that we have configured on a fast disk, ideal for managing a large database. A fast disk will allow Jellyfin to quickly read movie covers, etc. from the television and everything will be better.
Line 738: Line 752:
  
 In each of them the container has been configured following the system and folder scheme outlined in this document. Adapt it to your server configuration if it is different. In each of them the container has been configured following the system and folder scheme outlined in this document. Adapt it to your server configuration if it is different.
 +\\
 +\\
  
 ---- ----
 === Duplicati === === Duplicati ===
  
-Useful application for making versioned and compressed backups.+Useful application to make encrypted, versionedcompressed and deduplicated backups locally or remotely.
 [[https://www.duplicati.com/|{{ :omv7:dockeromv7-14.png?200|Go to -> https://www.duplicati.com/}}]] [[https://www.duplicati.com/|{{ :omv7:dockeromv7-14.png?200|Go to -> https://www.duplicati.com/}}]]
 <html><body><pre><code> <html><body><pre><code>
Line 815: Line 831:
     * In the OMV GUI go to SYSTEM > WORKBENCH and change those two ports to others. For example, change 80 to 8888 and 443 to 8443. Or whatever you want that is not in use.     * In the OMV GUI go to SYSTEM > WORKBENCH and change those two ports to others. For example, change 80 to 8888 and 443 to 8443. Or whatever you want that is not in use.
     * When you change them you will have to add the port to your browser's IP to access the OMV GUI. Example: %%http://192.168.1.50:8888%%     * When you change them you will have to add the port to your browser's IP to access the OMV GUI. Example: %%http://192.168.1.50:8888%%
 +<html><body><table width="100%" border="0"><tr><td colspan="2" style="background-color:#2C6700;height:30px;"><strong><span style="color:#FFFFFF;font-size:110%;">&#160; Advanced configuration.
 +</span></strong></td></tr><tr><td style="background-color:#e7fae1;height:25px;width:380px;">
 +NPM requires ports 80 and 443 on the router to validate Let's Encrypt certificates. You can free those ports by changing the ones used by the OMV GUI as suggested or you can do a forwarding from the router to the container.<br>
 +To do this, forward 80 and 443 on the router to, for example, 30080 and 30443 with the server's IP. In the NPM container it collects these ports using:<br>
 +- 30080:80<br>
 +- 30443:443<br>
 +The result will be the same, the container will receive the traffic from those router ports and you will still have the OMV GUI on port 80 and 443 of your local network.
 +</tr></table></body></html>
 + 
 [[https://nginxproxymanager.com/|{{ :omv7:dockeromv7-21.png?200|Go to -> https://nginxproxymanager.com/}}]] [[https://nginxproxymanager.com/|{{ :omv7:dockeromv7-21.png?200|Go to -> https://nginxproxymanager.com/}}]]
 <html><body><pre><code> <html><body><pre><code>
Line 875: Line 900:
   * The official Nextcloud administration documentation is here -> [[https://docs.nextcloud.com/server/latest/admin_manual/|Nextcloud]]    * The official Nextcloud administration documentation is here -> [[https://docs.nextcloud.com/server/latest/admin_manual/|Nextcloud]] 
  
-Before installing Nextcloud you need to previously install a proxy, such as the one described above Nginx Proxy Manager. Install NPM first and configure it following these instructions: [[https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md#nginx-proxy-manager|NPM configuration for Nextcloud AIO]] (Click on "click to expand" in the option for Nginx-Proxy-Manager)+Before installing Nextcloud you need to previously install a proxy, such as the one described above Nginx Proxy Manager (you can use any other proxy supported by Nextcloud AIO, check their documentation for other options). Install NPM first and configure it following these instructions: [[https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md#nginx-proxy-manager|NPM configuration for Nextcloud AIO]] (Click on "click to expand" in the option for Nginx-Proxy-Manager)
  
 For this container to work you will have to do the following: For this container to work you will have to do the following:
   * You will need a domain, you can buy it or get a free one, for example at [[https://www.duckdns.org/|Duckdns.org]]   * You will need a domain, you can buy it or get a free one, for example at [[https://www.duckdns.org/|Duckdns.org]]
-  * Point the domain to your server's public IP (make sure your ISP hasn't put you behind CGNAT). +  * Point the domain to your router's public IP (make sure your ISP hasn't put you behind [[https://en.wikipedia.org/wiki/Carrier-grade_NAT|CGNAT]]. If this is the case, request a public IP without CGNAT). Use this site to check if it's working: [[https://www.whatsmydns.net/|www.whatsmydns.net]] The IP must be the same as the one configured on your router. You can press several times to force the expansion
-  * On your router, direct ports 80 and 443 to the IP of your server. The proxy (NPM) will be in charge of directing traffic to the container port.+  * On your router, direct ports 80 and 443 to the IP of your server. The proxy (Nginx Proxy Manager) will receive the traffic from these ports and will direct it to the Nextcloud container through port 11000 (or to another container, if the request reaches the proxy from a domain other than Nextcloud).
 [[https://github.com/nextcloud/all-in-one?tab=readme-ov-file#nextcloud-all-in-one|{{ :omv7:dockeromv7-22.jpg?200|Go to -> https://github.com/nextcloud/all-in-one?tab=readme-ov-file#nextcloud-all-in-one}}]] [[https://github.com/nextcloud/all-in-one?tab=readme-ov-file#nextcloud-all-in-one|{{ :omv7:dockeromv7-22.jpg?200|Go to -> https://github.com/nextcloud/all-in-one?tab=readme-ov-file#nextcloud-all-in-one}}]]
 <html><body><pre><code> <html><body><pre><code>
 # https://github.com/nextcloud/all-in-one # https://github.com/nextcloud/all-in-one
 +# For custom configuration consult -> https://github.com/nextcloud/all-in-one/blob/main/compose.yaml
 services: services:
   nextcloud-aio-mastercontainer:   nextcloud-aio-mastercontainer:
     image: nextcloud/all-in-one:latest     image: nextcloud/all-in-one:latest
 +    init: true
     restart: always     restart: always
     container_name: nextcloud-aio-mastercontainer     container_name: nextcloud-aio-mastercontainer
Line 908: Line 935:
 </code></pre></body></html> </code></pre></body></html>
 \\ \\
 +Start the container and make the first configuration. Follow these steps from point 4 -> [[https://nextcloud.com/blog/how-to-install-the-nextcloud-all-in-one-on-linux/|How to install the Nextcloud All In One on linux]]
  
-Notice that we have configured the Nextcloud data volume in the //appdata// folder. If you configure this volume in the data folder of the Nextcloud server, it will change the permissions on the files and you will not be able to access them except through NextcloudTo overcome that problem it is better to use the [[https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/external_storage_configuration_gui.html|Nextcloud External Storage plugin]] to mount those shared folders from the Nextcloud GUI itself, for example with samba. This will allow you to continue using those files freely outside of Nextcloud with other services.+Notice that we have configured the Nextcloud data volume in the //appdata// folder. This is due to two reasons. 
 +  * All files that Nextcloud manages directly are synchronized in a database and Nextcloud can modify their permissions. This may prevent you from using those files from outside of Nextcloud due to permissions and would in any case affect the Nextcloud database. 
 +  * Nextcloud AIO provides a backup system in its GUI that specifically includes all user data. This may not be convenient if those folders are too large and you use other means to back up that data. 
 +All of this can be easily overcome by using the [[https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/external_storage_configuration_gui.html|Nextcloud External Storage Plugin]] to mount those shared folders from the Nextcloud GUI, for example with samba. This will allow you to continue using those files within Nextcloud but outside of its database. Then in the data volume set up for Nextcloud there will only be information such as phone books or calendars of the different users, which do not take up much space and can be stored on a small and fast disk.
  
-Then in the data volume set up for Nextcloud there will only be information such as phone books or calendars of the different users, which do not take up much space and can be stored on a small and fast disk.+<html><body><table width="100%" border="0"><tr><td colspan="2" style="background-color:#69A5FF;height:30px;"><strong><span style="color:#FFFFFF;font-size:110%;">&#160;  
 +Note 
 +</span></strong></td></tr><tr><td style="background-color:#E6FEFF;height:25px;width:380px;"> 
 +Nextcloud AIO is a container that spawns other containers and stores them in the docker folder. The openmediavault-compose plugin backup utility does not back up data in this folder.<br> 
 +If you want to have a backup of this container you must use the internal backup function of Nextcloud AIO. In the Nextcloud AIO GUI you must establish where this backup is saved and how often it should be done, Nextcloud AIO takes care of everything else, stopping containers, making the backup and starting containers again. 
 +</tr></table></body></html>
  
 ---- ----
Line 925: Line 961:
 Most of the example compose files will work out of the box if you run them without making any modifications. But it will probably be better to adapt them to your system configuration according to everything explained in this document. This will avoid unexpected situations. Most of the example compose files will work out of the box if you run them without making any modifications. But it will probably be better to adapt them to your system configuration according to everything explained in this document. This will avoid unexpected situations.
 </tr></table></body></html> </tr></table></body></html>
 +
 +----
 +
 +=== Create your own custom container ===
 +\\ 
 +[[omv7:omv7_plugins:docker_compose#dockerfiles|{{ :omv7:dockeromv7-27.jpg?200|Go to -> Dockerfiles}}]]
 +If you can't find a container that fits what you need in the plugin's list of examples or on the internet, you can create an image yourself and run the container from that image. To do this you can use Dockerfile.
 +
 +The openmediavault-compose plugin makes it easy to create images using the Dockerfile. You can see its use here -> [[omv7:omv7_plugins:docker_compose#dockerfiles|Dockerfiles]]
  
 ---- ----
Line 936: Line 981:
 === How to schedule container updates and/or backups === === How to schedule container updates and/or backups ===
  
 +[[omv7:omv7_plugins:docker_compose#schedule_updates_and_backups|{{ :omv7:dockeromv7-25.jpg?200|Go to -> Schedule (Updates and Backups)}}]]
 Especially useful is this feature of the plugin. You will be able to selectively schedule container updates. And you can also make backups of the containers and volumes you want on a scheduled basis. Especially useful is this feature of the plugin. You will be able to selectively schedule container updates. And you can also make backups of the containers and volumes you want on a scheduled basis.
  
Line 959: Line 1005:
  
   * In the OMV GUI go to SERVICES > COMPOSE > FILES, select the container row and press the DOWN button. This will stop the container.   * In the OMV GUI go to SERVICES > COMPOSE > FILES, select the container row and press the DOWN button. This will stop the container.
-  * Delete the config folder corresponding to the container. In the example ''/srv/dev-disk-by-uuid-9d43cda9-20e5-474f-b38b-6b2b6c03211a/system/appdata/jellyfin/config''+  * Delete the config folder corresponding to the container. In the example ''/srv/dev-disk-by-uuid-9d43cda9-20e5-474f-b38b-6b2b6c03211a/appdata/jellyfin/config''
     * This folder contains all the configurations that we have made inside the container.     * This folder contains all the configurations that we have made inside the container.
     * When the container starts again it will recreate the files in this folder, so no configuration will exist. We can start configuring it from scratch again.     * When the container starts again it will recreate the files in this folder, so no configuration will exist. We can start configuring it from scratch again.
Line 968: Line 1014:
 === Other procedures === === Other procedures ===
  
-[[omv7:omv7_plugins:docker_compose|{{ :omv7:omv7_plugins:compose-logo.jpg?direct&200|Go to -> (Docker) Compose Plugin For OMV7}}]]+[[omv7:omv7_plugins:docker_compose#usual_procedures|{{ :omv7:dockeromv7-26.jpg?200|Go to -> Usual procedures}}]]
 \\ \\
- 
 You can find several useful procedures in the corresponding section of the openmediavault-compose plugin document. Among them you will find a procedure to configure a vlan that will allow you to install **pihole** or **adguard**. -> [[omv7:omv7_plugins:docker_compose#usual_procedures|Usual procedures]] You can find several useful procedures in the corresponding section of the openmediavault-compose plugin document. Among them you will find a procedure to configure a vlan that will allow you to install **pihole** or **adguard**. -> [[omv7:omv7_plugins:docker_compose#usual_procedures|Usual procedures]]
  
Line 983: Line 1028:
 === Why use global environment variables === === Why use global environment variables ===
  
 +[[omv7:docker_in_omv#global_environmental_variables|{{ :omv7:dockeromv7-24.jpg?200|Go to -> Global environment variables}}]]
   * If you change a path or any other variable that affects multiple containers, it is enough to vary this value in the global environment variables file. The value will change automatically in all containers. Useful if you change a data drive, or if you reinstall OMV and change routes, for example.   * If you change a path or any other variable that affects multiple containers, it is enough to vary this value in the global environment variables file. The value will change automatically in all containers. Useful if you change a data drive, or if you reinstall OMV and change routes, for example.
   * It is integrated into the plugin, it is enough to press a button to access the file to directly introduce the variables without doing anything else.   * It is integrated into the plugin, it is enough to press a button to access the file to directly introduce the variables without doing anything else.
Line 1016: Line 1062:
 === Why use openmediavault-compose === === Why use openmediavault-compose ===
  
-[[omv7:omv7_plugins:docker_compose|{{ :omv7:omv7_plugins:compose-logo.jpg?direct&200|(Docker) Compose Plugin For OMV7}}]]+[[omv7:omv7_plugins:docker_compose|{{ :omv7:omv7_plugins:compose-logo.jpg?direct&200|Go to -> (Docker) Compose Plugin For OMV7}}]]
   * openmediavault-compose   * openmediavault-compose
     * It covers all the needs of the vast majority of OMV users to use docker.     * It covers all the needs of the vast majority of OMV users to use docker.
Line 1038: Line 1084:
 === Why use 64 bits? === === Why use 64 bits? ===
  
 +[[omv7:docker_in_omv#what_is_docker|{{ :omv7:dockeromv7-17.jpg?direct&200|Go to -> What is docker}}]]
   * You should use a 64-bit system if your hardware allows it, 32-bit systems have been out of use for many years now. The compatibility of many software packages is still maintained, but as time goes by they are disappearing.   * You should use a 64-bit system if your hardware allows it, 32-bit systems have been out of use for many years now. The compatibility of many software packages is still maintained, but as time goes by they are disappearing.
   * Docker starts to be inaccessible for 32-bit systems. Many reputable container builders are stopping releasing 32-bit versions.   * Docker starts to be inaccessible for 32-bit systems. Many reputable container builders are stopping releasing 32-bit versions.
  • omv7/docker_in_omv.1714312634.txt.gz
  • Last modified: 2024/04/28 13:57
  • by chente