Installing with Docker
ownCloud can be installed using Docker, using the official ownCloud Docker image. This official image is designed to work with a data volume in the host filesystem and with separate MariaDB and Redis containers. The configuration:
exposes ports 8080, allowing for HTTP connections.
mounts the data and MySQL data directories on the host for persistent storage.
To use it, first create a new project directory and download
the ownCloud Docker GitHub repository
into that new directory. Next, create a .env configuration file, which contains the required
configuration settings. Only a few settings are required, these are:
The ownCloud version
The ownCloud domain
The admin username
The admin user’s password
The HTTP port to bind to
Then, you can start the container, using your preferred Docker command-line tool. The example below shows how to use Docker Compose.
|You can find instructions for using plain docker in the GitHub repository.|
# Create a new project directory mkdir owncloud-docker-server cd owncloud-docker-server # Copy docker-compose.yml from the GitHub repository wget https://raw.githubusercontent.com/owncloud-docker/server/master/docker-compose.yml # Create the environment configuration file cat << EOF > .env OWNCLOUD_VERSION=10.0 OWNCLOUD_DOMAIN=localhost ADMIN_USERNAME=admin ADMIN_PASSWORD=admin HTTP_PORT=8080 EOF # Build and start the container docker-compose up -d
When the process completes, then check that all the containers have
successfully started, by running
docker-compose ps. If they are all
working correctly, you should expect to see output similar to that
Name Command State Ports __________________________________________________________________________________________ server_db_1 /usr/bin/entrypoint/bin/s … Up 3306/tcp server_owncloud_1 /usr/local/bin/entrypoint … Up 0.0.0.0:8080->8080/tcp server_redis_1 /bin/s6-svscan /etc/s6 Up 6379/tcp
In it, you can see that the database, ownCloud, and Redis containers are running, and that ownCloud is accessible via port 8080 on the host machine.
Just because all the containers are running, it takes a few minutes for ownCloud to be fully functional. If you run
To log in to the ownCloud UI, open
http://localhost:8080 in your browser
of choice, where you see the standard ownCloud login screen, as in the
The username and password are the admin username and password which you
Assuming you used docker-compose, as in the previous example, to stop
the containers use
docker-compose stop. Alternatively, use
docker-compose down to stop and remove containers, along with the
related networks, images, and volumes.
When a new version of ownCloud gets released, you should update your instance. To do so, follow these simple steps.
First, go to your docker directory where your
exists. Second, put ownCloud into maintenance mode; you can do so using
the following command:
docker-compose exec owncloud occ maintenance:mode --on
Third, create a backup in case something goes wrong during the upgrade process, using the following command:
docker-compose exec db backup
|This assumes that you are using the default database container from Webhippie.|
Fifth, shutdown the containers.
Sixth, update the version number of ownCloud in your
.env file or the
YAML file. You can use sed for it, as in the following example.
# Make sure that you adjust the example to match your installation. sed -i 's/^OWNCLOUD_VERSION=.*$/OWNCLOUD_VERSION=<newVersion>/' /compose/*/.env
Seventh, view the file to ensure the changes has been implemented.
Eighth, start your docker instance again.
docker-compose up -d
Now you should have the current ownCloud running with docker-compose.
Please note that the container will automatically run
occ upgrade when starting up.
If you notice the container starting over and over again, you can check the update log with the following command:
docker-compose logs --timestamp owncloud