Images

The Image menu is the place where you’ll manage the images of your containers.

_images/image-list.png

The fields included :

  • The name of the image. You can only use here lowercase, digit and underscore.
  • The templates it inherit (define volumes and ports). Templates are very useful to deduplicate some very redundant code in modules.
  • The parent image to use. We recommend building a base image containing the packages you need to launch your process (like supervisor, cron, syslog etc…) which you can then use as a parent for the other images.
  • Check the public checkbox if you want all users of the Clouder to be able to use this image. Otherwise, a user can only access an image if he is the manager of this image (or an administrator).
  • The volume_from this image shall inherit. When the service is deployed, it will search for all other children with the tag specified here and attached all their volumes to this service.
_images/image-form.png

Then you have the Dockerfile field, used to know which commands shall be executed during the image building. Follow the Docker documentation https://docs.docker.com/reference/builder/ if you don’t know how to write it.

Note that the commands FROM (use parent field), MAINTENER (use the sysadmin email), VOLUME (use the volumes configuration) and EXPOSE (use the ports configuration) are automatically inserted in the Dockerfile during the building process, so you don’t have to take care of them.

Then you have the volumes configuration. This is used both to indicate the volume of the container but also the directory to backup in the container. When you restore a container backup, all volumes will be erased and replaced by the backup, the rest of the container will be untouched. Also after the restore and if filled, the volume will be chown with the systemuser value to ensure rights are correctly attributed. You can also map a directory to a directory in the host system with the host path option.

Next you have the ports configuration, used to know the ports which need to be exposed to the outside of the container, to the local network or to the whole Internet. In the container, one field will be added : the hostport which is the port to access the localport in the container from outside of the host system. It is automatically attributed within the port range of the server but you can also force a specific port (Especially needed for the Bind, Proxy and Postfix applications which have to listen on ports 25, 53, 80 and 443 of the host system)

Then, if you have a parent image, you have to select the parent version you want to use. Else you have to specify the FROM statement like you would use in a Dockerfile (example : debian:latest).

You may also specify the registry container where the image will be stored.

Finally, you can press the build button. This will create a new image version, named from the current date, and execute the commands to build it and store it in the registry. You don’t have to use it thought, as when you deploy a service without specifying a version, it will auto-build the image before running it.

Remember you can manage your own images, but you also can use the ready-to-use images from the clouder_template_* modules until you feel confident enough to create yours.