Deploy Zimbra Collaboration using docker: Difference between revisions

mNo edit summary
 
(4 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{WIP}}{{Unsupported}}{{Article Infobox|{{admin}}|{{ZCS 8.6}}|{{ZCS 8.5}}|}}
{{BC|Community Sandbox}}
=Deploy Zimbra Collaboration using Docker=
__FORCETOC__
<div class="col-md-12 ibox-content">
=Deploy Zimbra Collaboration Server using Docker=
{{KB|{{Unsupported}}|{{ZCS 8.7}}||}}
 
[[File:Zimbra-docker-en.png|800px]]
[[File:Zimbra-docker-en.png|800px]]
==Purpose==
==Purpose==
Install Zimbra Collaboration and a DNS Server with Script, in Single-Server, using docker.
Install Zimbra Collaboration Server and DNS Server with a Script, in a Single-Server, using Docker.


==Resolution==
==Resolution==
===Before start===
===Before you start===
This guide is not officially supported by Zimbra, as '''docker''' is not in the Operating System, or Virutalization Supported platforms in the [https://www.zimbra.com/docs/shared/8.6.0/system_requirements System Requirements].
This guide '''is not officially supported by Zimbra''', as '''docker''' is not in the Operating System, or Virtualization Supported platforms in the [https://www.zimbra.com/docs/shared/8.6.0/system_requirements System Requirements].


This guide is intended to test platforms, dev environments, etc.
This guide is intended for testing platforms, development, etc.


===What is the docker===
===What is Docker===
[https://www.docker.com/whatisdocker/ '''From the official docker website'''] - ''Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications. Consisting of Docker Engine, a portable, lightweight runtime and packaging tool, and Docker Hub, a cloud service for sharing applications and automating workflows, Docker enables apps to be quickly assembled from components and eliminates the friction between development, QA, and production environments. As a result, IT can ship faster and run the same app, unchanged, on laptops, data center VMs, and any cloud.''  
[https://www.docker.com/whatisdocker/ '''From the official docker website'''] - ''Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications. Consisting of a Docker Engine, a portable, lightweight runtime and packaging tool, and Docker Hub, a cloud service for sharing applications and automating workflows, Docker enables apps to be quickly assembled from components and eliminates the friction between development, QA, and production environments. As a result, IT can ship faster and run the same app, unchanged, on laptops, data center VMs, and any cloud.''  


===Advantages of use the docker and the ZimbraEasyInstall Script===
===Advantages of using Docker and the ZimbraEasyInstall Script===
* Time saving
* Time saving
* Fully automated
* Fully automated
* Easy to use
* Easy to use
* Good for a quick Zimbra Preview
* Great for a quick Zimbra Preview
 
===Installing docker===
First you need to install docker in the server that you will use like host for the docker containers. For example, here the instructions to install docker in Ubuntu 14.04:
wget -qO- https://get.docker.com/ | sh
 
If you want to install docker in a different platform, please follow the next guide - [https://docs.docker.com/installation/#installation https://docs.docker.com/installation/#installation]
 
One of the advantage to use docker is that doesn't matter the Host OS, the containers will work on any platform.
 
===Create the Zimbra Image===
To use the [[Install_Zimbra_Collaboration_and_a_DNS_Server_with_Script|ZimbraEasyInstall]] script we need a container with Ubuntu 14.04, at least for now. So use the next Dockerfile to create the proper Zimbra image that you will use later to deploy the container:
====Dockerfile====
* '''Download from github'''
wget https://raw.githubusercontent.com/jorgedlcruz/Zimbra/master/docker/Dockerfile
 
* '''RAW Dockerfile to copy/paste'''
<pre>#################################################################
# Dockerfile to build Zimbra Collaboration 8.6 container images
# Based on Ubuntu 14.04
# Created by Jorge de la Cruz
#################################################################
FROM ubuntu:14.04
MAINTAINER Jorge de la Cruz <jorgedlcruz@gmail.com>
 
## Install wget ##
RUN sudo apt-get update && sudo apt-get install -y wget
 
VOLUME ["/opt/zimbra"]
 
EXPOSE 22
EXPOSE 25
EXPOSE 456
EXPOSE 587
EXPOSE 110
EXPOSE 143
EXPOSE 993
EXPOSE 995
EXPOSE 80
EXPOSE 443
EXPOSE 8080
EXPOSE 8443
EXPOSE 7071
EXPOSE 9071


CMD ["/bin/bash"]</pre>
===Installing Docker===
====Build the image using the Dockerfile====
First you need to install Docker on the server that you would like to use as a host for the docker containers.  If you want to install Docker, please follow the next guide - [https://docs.docker.com/engine/installation/ https://docs.docker.com/engine/installation/]
Just run the next command to build the image based in the previous Dockerfile, you can use the name that you want:
sudo docker build -t zimbra_docker .


You will see the next Steps:
One of the advantages of using docker is that the host OS does not matter, the containers will work on any platform.
<pre>Status: Downloaded newer image for ubuntu:14.04
---> 07f8e8c5e660
Step 1 : MAINTAINER Jorge de la Cruz <jorgedlcruz@gmail.com>
---> Running in d4020e7c9d94
---> 2382c7f298a6
Removing intermediate container d4020e7c9d94
Step 2 : RUN sudo apt-get update && sudo apt-get install -y wget
[...]</pre>


===Deploy the docker container===
=== Downloading the image===
Now is time to deploy the container based in the previous image, also you need to publish the Zimbra Collaboration ports, the hostname and the proper DNS, as you want to use bind like local DNS nameserver in the container:
The first step is to pull this image into your docker environment, for that just run the next:
'''Syntax:'''
  docker pull jorgedlcruz/zimbra
docker run -p PORTS -h HOSTNAME.DOMAIN --dns DNSSERVER -i -t NAMEOFDOCKERIMAGE
'''Example:'''
  docker run -p 25:25 -p 80:80 -p 456:456 -p 587:587 -p 110:110 -p 143:143 -p 993:993 -p 995:995 -p 443:443 -p 8080:8080 -p 8443:8443 -p 7071:7071 -p 9071:9071 -h zimbra86-docker.zimbra.io --dns 127.0.0.1 --dns 8.8.8.8 -i -t zimbra_docker


This will create the container in few seconds, and you will be inside the container, let's use now the ZimbraEasyInstall script.  
=== Creating Zimbra Container ===
Now that we have an image called jorgedlcruz/zimbra, we can do a docker run with some special parameters, like this:
docker run -p 25:25 -p 80:80 -p 465:465 -p 587:587 -p 110:110 -p 143:143 -p 993:993 -p 995:995 -p 443:443 -p 8080:8080 -p 8443:8443 -p 7071:7071 -p 9071:9071 -h zimbra-docker.zimbra.io --dns 127.0.0.1 --dns 8.8.8.8 -i -t -e PASSWORD=Zimbra2017 jorgedlcruz/zimbra


===Download and use ZimbraEasyInstall===
As you can see we tell the container the ports we want to expose, and on which port, we also specify the container hostname, the password foir the Zimbra Administrator Account, and the image to use.
The '''ZimbraEasyInstall''' Script is an easy way to install Zimbra Collaboration, without be worry of the DNS configuration, OS dependcies, etc. Just execute it and after a few minutes have Zimbra up and running.


====Download the ZimbraEasyInstall====
That's it! You can visit now the IP of your Docker Machine using HTTPS, or try the Admin Console with HTTPS and port 7071.
You can run the Script from the next link - [https://raw.githubusercontent.com/jorgedlcruz/Zimbra/master/ZimbraEasyInstall https://raw.githubusercontent.com/jorgedlcruz/Zimbra/master/ZimbraEasyInstall]
 
====Use the ZimbraEasyInstall====
Run the Script '''adding the TLD domain''' for your Zimbra Collaboration server, '''the IP of the DNS server''' (usually will be the same of the container, but instead you are using different eth interfaces), '''and the password''' for the Zimbra Collaboration server.
'''Example:'''
root@zimbramail:/home/oper# ./ZimbraEasyInstall zimbra.io 192.168.211.40 Zimbra2015
 
The script takes a few minutes, depends of your Internet Speed, and resources.
 
===Access to the Web Client and Admin Console===
The Script will take care of everything and after a few minutes you can go to the IP of your server and use the next URL:
* Web Client - https://YOURIP
* Web Client - https://YOURIP
* Admin Console - https://YOURIP:7071
* Admin Console - https://YOURIP:7071
=== Contribute to the Project===
If you like to contribute to the project, you are free to do so, just fork the next repo and submit your changes. - [https://github.com/jorgedlcruz/zimbra-docker https://github.com/jorgedlcruz/zimbra-docker]


==Additional Content==
==Additional Content==
* Go to the [https://github.com/jorgedlcruz/Zimbra Github project] and give your valuable feedback.
* Go to the [https://github.com/jorgedlcruz/zimbra-docker Github project] and give your valuable feedback.


{{Article Footer|Zimbra Collaboration 8.6, 8.5|05/21/2015}}
{{Article Footer|Zimbra Collaboration 8.7|05/21/2015}}

Latest revision as of 22:39, 31 October 2017

Deploy Zimbra Collaboration Server using Docker

   KB 21981        Last updated on 2017-10-31  




0.00
(0 votes)

Zimbra-docker-en.png

Purpose

Install Zimbra Collaboration Server and DNS Server with a Script, in a Single-Server, using Docker.

Resolution

Before you start

This guide is not officially supported by Zimbra, as docker is not in the Operating System, or Virtualization Supported platforms in the System Requirements.

This guide is intended for testing platforms, development, etc.

What is Docker

From the official docker website - Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications. Consisting of a Docker Engine, a portable, lightweight runtime and packaging tool, and Docker Hub, a cloud service for sharing applications and automating workflows, Docker enables apps to be quickly assembled from components and eliminates the friction between development, QA, and production environments. As a result, IT can ship faster and run the same app, unchanged, on laptops, data center VMs, and any cloud.

Advantages of using Docker and the ZimbraEasyInstall Script

  • Time saving
  • Fully automated
  • Easy to use
  • Great for a quick Zimbra Preview

Installing Docker

First you need to install Docker on the server that you would like to use as a host for the docker containers. If you want to install Docker, please follow the next guide - https://docs.docker.com/engine/installation/

One of the advantages of using docker is that the host OS does not matter, the containers will work on any platform.

Downloading the image

The first step is to pull this image into your docker environment, for that just run the next:

docker pull jorgedlcruz/zimbra

Creating Zimbra Container

Now that we have an image called jorgedlcruz/zimbra, we can do a docker run with some special parameters, like this:

docker run -p 25:25 -p 80:80 -p 465:465 -p 587:587 -p 110:110 -p 143:143 -p 993:993 -p 995:995 -p 443:443 -p 8080:8080 -p 8443:8443 -p 7071:7071 -p 9071:9071 -h zimbra-docker.zimbra.io --dns 127.0.0.1 --dns 8.8.8.8 -i -t -e PASSWORD=Zimbra2017 jorgedlcruz/zimbra

As you can see we tell the container the ports we want to expose, and on which port, we also specify the container hostname, the password foir the Zimbra Administrator Account, and the image to use.

That's it! You can visit now the IP of your Docker Machine using HTTPS, or try the Admin Console with HTTPS and port 7071.

Contribute to the Project

If you like to contribute to the project, you are free to do so, just fork the next repo and submit your changes. - https://github.com/jorgedlcruz/zimbra-docker

Additional Content

Verified Against: Zimbra Collaboration 8.7 Date Created: 05/21/2015
Article ID: https://wiki.zimbra.com/index.php?title=Deploy_Zimbra_Collaboration_using_docker Date Modified: 2017-10-31



Try Zimbra

Try Zimbra Collaboration with a 60-day free trial.
Get it now »

Want to get involved?

You can contribute in the Community, Wiki, Code, or development of Zimlets.
Find out more. »

Looking for a Video?

Visit our YouTube channel to get the latest webinars, technology news, product overviews, and so much more.
Go to the YouTube channel »


Jump to: navigation, search