Recently we have started to look at the Early Access Program for Domino V12, which is currently available to us as a Docker image (rather than a Windows or Linux server installer).
The process to create new Domino servers (using Docker Desktop for Windows and the Domino V12 Docker image) was fairly painless, however in one instance, Docker kept on returning the following error during creation of the container.
docker: Error response from daemon: error while creating mount source path '/run/desktop/mnt/host/c/Docker/server1/data': mkdir /run/desktop/mnt/host/c: file exists
A search found a number of possible explanations, however in the end all it required was a restart of Docker! After that, the Docker container created and ran fine.
Below are the high level steps I used to get Docker Desktop for Windows and a test Domino V12 server installed.
- I made sure the I had Windows 10 version 2004 installed - I wanted to try out "Docker Desktop for Windows" and Windows Subsystem for Linux 2 (WSL 2)
- I made sure the Notes/Domino "Remote Server Setup" process was available on my Notes Client installation
- I downloaded Docker Desktop for Windows - see https://docs.docker.com/docker-for-windows/install/
- I downloaded the Domino V12 docker image from the HCL flexnet site
- Installed Docker Desktop for Windows
- This enabled Windows Subsystem for Linux 2 (WSL2)
- Note: You may want to check out the Docker settings incase there is stuff you want to enable/disable
- Installed the Domino V12 Docker image into my local Docker repository
- Switched to the location where the downloaded Domino V12 Docker image was stored
- Used the command "docker load --input Domino_12.0_DockerImage_FeaturePreview1.tgz"
- Created the required folder/volume structure for storing the data files for the test Docker based Domino server, e.g. "C:\Docker\mail001\data"
- Copied existing Certifier ID file and Admin User ID file into the "data" folder created in the previous step (so they were available when the Domino setup process runs)
- Started a new Docker container that would start the Domino server in setup mode - note: I included the "--rm" option here to remove the Docker container once it finishes since this is usually a one-time process
- Started a command prompt
- Ran the command "docker run -it -p 8585:8585 --hostname=localhost --name <ContainerName> --cap-add=SYS_PTRACE --rm -v C:\Docker\<DominoSeverName>\data:/local/notesdata domino-docker:V1200_08042020prod --setup"
- The command prompt eventually showed the Domino server listening in setup mode
- Used the Remote Server Setup process to set-up my new Domino server with the applicable options
- When completed, I selected the option for the server setup process running on the Domino server to also stop
- Waited for the Domino server setup process to finish and to be returned to the command prompt
- I then started a new Docker container that would start the Domino server, pointing to the same data folder as before and making sure ports 80, 443 and 1352 were available - note: this time I didn't supply the "--rm" option so that the container configuration is kept when the Domino server is stopped
- Ran the command "docker run -it -p 80:80 -p 443:443 -p 1352:1352 --hostname=localhost --name <ContainerName> --cap-add=SYS_PTRACE --stop-timeout=90 -v C:\Docker\<DominoServerName>\data:/local/notesdata domino-docker:V1200_08042020prod"
- The Docker container started and the Domino server console was displayed (as I supplied the "-it" option)
- I could enter in server console commands and see their output
- I made sure I could connect to the Domino server using a Notes client
- As this was a test set-up and I have not yet configured the Docker network or a specific hostname, I create a connection document in my local NAB for the new Domino server with a hostname/ip address of "localhost"
- I was able to connect to the new server
- I then shutdown the Domino server by issuing "quit" in the console and waited for it to return to the command prompt
- Using Docker, I can still see that the information about the container configuration (ports, mapped drivers/folders, etc.) using the command "docker container inspect <ContainerName>"
- I can modify (or remove/re-create) the Docker container configuration in the future if / when requirements change
- To re-start my Docker container / Domino server, as the container configuration exists, I just need to run the command "docker container start -i <ContainerName>"
- To stop the Docker container / Domino server, I can issue the "quit" command in the Domino server console
- Note: I believe it should also be possible to do this by either using the Docker Desktop user interface or the "docker container stop <ContainerName>" command, however currently this does not do anything except wait for a preset interval and then kills the container / Domino server - something for me to investigate!
Thanks to all those involved in getting the Domino V12 Docker image created and the Domino-Docker github project.