Docker After Install
The next RUN instruction installs PHP extensions using the official PHP image’s docker-php-ext-install script. Basic Configuration (Creating Docker File / Running Docker Image) After you install docker on ec2, let’s have some basic setup for Docker. Step 1 – Create a docker file. Dockerfile is a text file where we write instructions to build an image. Create a folder name Images on the Amazon Linux box. Move to folder images $ cd images.
Use this information to quickly start up Community Edition using Docker Compose.
Note: While Docker Compose is often used for production deployments, the Docker Compose file provided here is recommended for development and test environments only. Customers are expected to adapt this file to their own requirements, if they intend to use Docker Compose to deploy a production environment.
To deploy Community Edition using Docker Compose`, download and install Docker, then follow the steps below. Make sure that you’ve reviewed the prerequisites before continuing.
Clone the project locally, change directory to the project folder, and switch to the release branch:
Note: Make sure that exposed ports are open on your host computer. Check the
docker-compose.yml
file to determine the exposed ports - refer to thehost:container
port definitions. You’ll see they include 5432, 8080, 8083 and others.Save the
docker-compose.yml
file in a local folder.For example, you can create a folder
docker-compose
.Change directory to the location of your
docker-compose.yml
file.Deploy Community Edition, including the repository, Share, Postgres database, Search Services, etc.:
This downloads the images, fetches all the dependencies, creates each container, and then starts the system:
Note that the name of each container begins with the folder name you created in step 2.
As an alternative, you can also start the containers in the background by running
docker-compose up -d
.Wait for the logs to complete, showing messages:
See Troubleshooting if you encounter errors whilst the system is starting up.
Open your browser and check everything starts up correctly:
Service Endpoint Administration and REST APIs http://localhost:8080/alfresco
Share http://localhost:8080/share
Search Services administration http://localhost:8083/solr
If Docker is running on your local machine, the IP address will be just
localhost
.If you’re using the Docker Toolbox, run the following command to find the IP address:
Log in as the
admin
user. Enter the default administrator passwordadmin
.
Check system start up
Use this information to verify that the system started correctly, and to clean up the deployment.
Open a new terminal window.
Change directory to the
docker-compose
folder that you created in the deployment steps.Verify that all the services started correctly.
List the images and additional details:
You should see a list of the services defined in your
docker-compose.yaml
file:List the running containers:
You should see a list of the services defined in the
docker-compose.yaml
file.View the log files for each service
<service-name>
, or container<container-name>
:For example, to check the logs for Share, run any of the following commands:
You can add an optional parameter
--tail=25
before<container-name>
to display the last 25 lines of the logs for the selected container.Check for a success message:
Once you’ve tested the services, you can clean up the deployment by stopping the running services.
Stop the session by using
CONTROL+C
in the same window as the running services:Alternatively, you can open a new terminal window, change directory to the
docker-compose
folder, and run:This stops the running services, as shown in the previous example, and removes them from memory:
You can use a few more commands to explore the services when they’re running. Change directory to
docker-compose
before running these:Stop all the running containers:
Restart the containers (after using the
stop
command):Starts the containers that were started with
docker-compose up
:Stop all running containers, and remove them and the network:
The
--rmi all
option also removes the images created bydocker-compose up
, and the images used by any service. You can use this, for example, if any containers fail and you need to remove them:
See the Docker documentation for more on using Docker.
Deployment project in GitHub
See the Alfresco/acs-deployment GitHub project for more details.
- In this project, you’ll find several Docker Compose files. The default
docker-compose.yml
file contains the latest work-in-progress deployment scripts, and installs the latest development version of Content Services. - To deploy a specific released version of Content Services, several major.minor Docker Compose files are provided in the
docker-compose
folder of the project. - To modify your development environment, for example to change or mount files in the existing images, you’ll have to create new custom Docker images (recommended approach). The same approach applies if you want to install AMP files into the repository and Share images. See the Customization guidelines for more.
Using the Community Compose file in this project deploys the following system:
Cleanup
To bring the system down and cleanup the containers run the following command:
Troubleshooting
If you have issues running
docker-compose up
after deleting a previous Docker Compose cluster, try replacing step 4 in the initial Docker Compose instructions with:Note: Make sure that the
docker-compose up
part of the command uses the format you chose in step 4.Stop the session by using
CONTROL+C
.Remove the containers (using the
--rmi all
option):Try allocating more memory resources, as advised in
docker-compose.yml
.For example, in Docker, change the memory setting in Preferences (or Settings) Resources > Advanced > Memory to at least 8GB. Make sure you restart Docker and wait for the process to finish before continuing.
Go back to step 4 in the initial Docker Compose instructions to start the deployment again.
Note: Keep in mind that 8GB is much lower than the required minimum, and may need to be adapted for your environment. You’ll need a machine with at least 13GB of memory to distribute among the Docker containers.
1. Installation
Simply find and install a Docker application from the Synology Package Center.
Note: If you do not find the application in your Package Center, your Synology is most probably not supported yet:
Due to the hardware requirement, Docker will be only available on the following models:
18 series: DS3018xs, DS918+, DS718+, DS218+
17 series: FS3017, FS2017, RS18017xs+, RS4017xs+, RS3617xs+, RS3617xs, RS3617RPxs, DS3617xs, DS1817+, DS1517+
16 series: RS18016xs+, RS2416+, RS2416RP+, DS916+, DS716+II, DS716+, DS216+II, DS216+
15-series: RC18015xs+, DS3615xs, DS2415+, DS1815+, DS1515+, RS815RP+, RS815+, DS415+
14-series: RS3614xs+, RS3614xs, RS3614RPxs, RS2414RP+, RS2414+, RS814RP+, RS814+
13-series: DS2413+, RS3413xs+, RS10613xs+, DS1813+, DS1513+, DS713+
12-series: DS3612xs, RS3412xs, RS3412RPxs, RS2212RP+, RS2212+, DS1812+, DS1512+, RS812RP+, RS812+, DS412+, DS712+
11-series: DS3611xs, DS2411+, RS3411xs, RS3411RPxs, RS2211RP+, RS2211+, DS1511+, DS411+II, DS411+
10-series: DS1010+, RS810RP+, RS810+, DS710+(source, last updated 09-29-2017)
Docker After Installing
2. How to use it?
When you start a Docker application, you will see an application menu on the left side:
- Overview
- Registry
- Image
- Container
- Log
Overview
Here you will see your running containers, i.e. your running applications including allocated memory and CPU resources.
The real command in Docker:
Registry
On the registry page, you can search for new images (the same as on the official site). You can also add some new repositories (in addition to the official site) in Settings.
The real command in Docker:
After you found your image (e.g. ubuntu in our case), you should download it to your Synology. All Images are read-only and you can use them multiple times for more containers.
The real command in Docker:
Docker After Install
Image
Here you will find images available on your Synology, ready to create new containers using a wizard or directly with a docker run
command. You can usually find this command on the official page with an image.
The real command in Docker:
We use a long running process for creating a new container from a docker run
command:
The Synology wizard checks your command for compatibility, not all docker run
parameters are available for use.
- Docker run supports the below parameters:
'd', 'detach'
'e', 'env'
'link'
'm', 'memory'
'name'
'P', 'publish-all'
'p', 'publish'
'privileged'
'v', 'volume'
- Docker run does not support the below parameters:
'a', 'attach'
'add-host'
'c', 'cpu-shares'
'cap-add'
'cap-drop'
'cidfile'
'cpuset'
'device'
'dns'
'dns-search'
'entrypoint'
'env-file'
'expose'
'h', 'hostname'
'i', 'interactive'
'lxc-conf'
'net'
'restart'
'rm'
'security-opt'
'sig-proxy'
't', 'tty'
'u', 'user'
'w', 'workdir'
Basically, your containers need to run as a daemon on your Synology (an opposite to run an interactive shell). It makes sense, you cannot run an interactive shell in your Synology Docker application in a web browser.
Back to our new ubuntu container (actually got name dummyUbuntu). The wizard offers to set more options, but we want to create a dummy container, so click Next, Next, Next.
Container
The dummyUbuntu container appears now on the Container page.
The real command in Docker (prints all containers including stopped):
The last step is waiting for us: Run it.
When you double click on any container, a window with some more details about a running container appears.
You see some information about our dummyUbuntu container and capability to Start, Stop, Restart it.
The real command in Docker:
You can see other information about a running container using the top menu.
The real command in Docker:
On the Log tab, you can see logs from your container (not automatically refreshed, maybe in the future with the parameter -f
as available in the standard Docker client).
The real command in Docker:
The last tab Terminal shows output of a command used to run your container (in our case the dummy long running process: 'while true; do echo hello world; sleep 1; done'
)
The real command in Docker:
Note: The docker attach
command never starts a new instance of a shell, instead of that you will see an ongoing output of the first start command. For more alternatives, see the point 8 on page 10 Useful Docker Commands – Tips and Tricks.