We continue the series of articles about the capabilities of Roxy-WI. Today we will talk about another important set of functions related to service management (namely HAproxy and Nginx) in docker containers. We tried to make this function as simple and convenient to use as possible. What we have done will be discussed below.
Why run services in a container?
Containerization has been a trend for many years (the first version of Docker was released in 2013). The biggest advantage of containers is that they minimize setup and startup hassle. All addiction problems are removed once and for all. In the container, we get a ready-made application, which is simple enough to upload to the host and run. Actually, the containerized application will not be installed on the system in the literal sense of the word: it will be launched in an isolated environment and can be removed from the system at any time.
Why manage containers using a graphical interface?
The question raised in the title of this paragraph may arise from many readers: it is not difficult to manage Docker containers via the command line; Thousands, if not hundreds of thousands, of guides and training materials are freely available. Nevertheless, over the 8 years of Docker’s existence, many solutions have been created for working with containers through a web interface (see, for example, a good, albeit somewhat outdated, overview here). What are the benefits of the web interface?
The first advantage is visibility… The user can see which applications are running in containers and how the containers are interconnected. This is true, for example, for large (tens and hundreds of containers) Docker installations.
The second advantage is convenience of monitoring the operation of services: Most existing solutions for managing containers via the web interface provide for viewing and visualizing statistics (resource consumption, processes).
The third advantage is simplifying many operations, which is useful for both beginners and experienced (especially when working with large installations) users. Managing networks, volumes, images through the GUI is much easier than through the command line.
The fourth advantage is the availability additional functions and capabilities: for example, managing rights and access lists (different users may have access to different containers; in addition, for all users, you can set individual rights to perform certain operations). Configuring all this through the graphical interface is much easier and faster than installing additional tools, and then writing the necessary settings in the configuration file.
How it is done in Roxy-WI
At Roxy-WI, we tried to make working with containers as simple and convenient as possible: in fact, managing a service in a container should not be any different from managing the same service in a non-containerized form.
For service instances running in containers, we have a visualization: on the HAProxy => Overview (or Nginx => Overview) page, they are marked with a box icon, that is, a container. The same functions are available for them as for all regular services.
Starting from the current version (5.3.0) can install HAProxy and Nginx in containers directly via Roxy-WI. It’s very simple: go to the page Servers page and click on the button Proxy installation… In the window that opens, select the checkbox Install as a Docker container… After that, everything will start the installation.
By default, containers are named haproxy and nginx. If these names need to be changed, go to the Settings page and edit the values of the haproxy_container_name and / or nginx_container_name parameters.
For containers, the paths to the configuration files are used, which are specified in the settings. It is these paths that are forwarded to Docker. If for one reason or another it is required to use non-standard paths, then they must be registered in advance before installation.
In this article, we briefly talked about the features of working with Docker through Roxy-WI. In order to improve the corresponding set of functions, we need feedback from current and potential users. We invite everyone to try container management; any wishes and suggestions are welcome.
https://roxy-wi.org – official website and project documentation;
https://github.com/hap-wi/roxy-wi – project repository (you can not only express your opinion, but also send pull requests);
https://t.me/haproxy_wi – our telegram channel; subscribe and stay up to date with all the news.