使用Docker安装ownCloud

目录

可以使用Docker 和官方的ownCloud Docker映像来安装 ownCloud。该官方映像旨在与主机文件系统中的数据量以及单独的MariaDBRedis容器一起使用。配置:

  • 公开端口8080,允许HTTP连接。
  • 在主机上安装数据和MySQL数据目录以进行持久存储。

在本地计算机上安装

要使用它,首先创建一个新的项目目录,然后docker-compose.ymlownCloud Docker GitHub存储库下载 到该新目录。接下来,创建一个.env配置文件,其中包含必需的配置设置。仅需要一些设置,这些设置是:

| 设定名称 | 描述 | 例 |
| :----------------- | :--------------- | :---------- |
| OWNCLOUD_VERSION | ownCloud版本 | latest |
| OWNCLOUD_DOMAIN | ownCloud域 | localhost |
| ADMIN_USERNAME | 管理员用户名 | admin |
| ADMIN_PASSWORD | 管理员用户的密码 | admin |
| HTTP_PORT | 要绑定的HTTP端口 | 8080 |

然后,您可以使用首选的Docker命令行工具启动容器。以下示例显示了如何使用 Docker Compose

# 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/docs/master/modules/admin_manual/examples/installation/docker/docker-compose.yml

# Create the environment configuration file
cat << EOF > .env
OWNCLOUD_VERSION=10.3
OWNCLOUD_DOMAIN=localhost
ADMIN_USERNAME=admin
ADMIN_PASSWORD=admin
HTTP_PORT=8080
EOF

# Build and start the container
docker-compose up -d

该过程完成后,请通过运行来检查所有容器是否已成功启动docker-compose ps。如果它们都正常工作,那么您应该期望看到类似于以下内容的输出:

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

在其中,您可以看到数据库,ownCloud和Redis容器正在运行,并且ownCloud可通过主机上的端口8080访问。

| | 仅因为所有容器都在运行,ownCloud才能正常运行需要几分钟。如果您运行 docker-compose logs --follow owncloud并看到大量信息记录到控制台,请等待直到其速度变慢以尝试访问Web UI。 |
| ---- | ------------------------------------------------------------ |
| | |

在登录

要登录ownCloud UI,请http://localhost:8080在您选择的浏览器中打开,在其中您会看到标准的ownCloud登录屏幕,如下图所示。

通过Docker的ownCloud UI

用户名和密码是您之前存储的管理员用户名和密码.env

停止容器

如上例所示,假设您使用了docker-compose来停止容器的使用docker-compose stop。或者,用于 docker-compose down停止和删除容器以及相关的网络,映像和卷。

在Docker上升级ownCloud

当新版本的ownCloud发布时,您应该更新实例。为此,请按照以下简单步骤操作。

首先,转到您的.yamlor .env文件所在的docker目录。其次,将ownCloud置于维护模式;您可以使用以下命令进行操作:

docker-compose exec owncloud occ maintenance:mode --on

第三,使用以下命令创建备份,以防万一在升级过程中出现问题:

docker-compose exec db backup

| | 假定您正在使用 Webhippie的默认数据库容器。 |
| ---- | ------------------------------------------------------------ |
| | |

第五,关闭容器。

docker-compose down

第六,更新.env文件或YAML文件中的ownCloud的版本号。可以使用sed,如以下示例所示。

# Make sure that you adjust the example to match your installation.
sed -i 's/^OWNCLOUD_VERSION=.*$/OWNCLOUD_VERSION=<newVersion>/' /compose/*/.env

第七,查看文件以确保已执行更改。

cat .env

第八,再次启动您的docker实例。

docker-compose up -d

现在您应该使用docker-compose运行当前的ownCloud。请注意,该容器将occ upgrade在启动时自动运行。如果您发现容器一遍又一遍地启动,则可以使用以下命令检查更新日志:

docker-compose logs --timestamp owncloud

Docker撰写YAML文件

| | 如果您是企业客户,并且已经在portal.owncloud.com上注册,请替换image: owncloud/serverimage: registry.owncloud.com/owncloud/enterprise,以便能够下载我们的企业docker映像。然后,通过运行docker login registry.owncloud.com和您的门户网站凭据登录到我们的注册表。 |
| ---- | ------------------------------------------------------------ |
| | |

version: '2.1'

volumes:
  files:
    driver: local
  mysql:
    driver: local
  backup:
    driver: local
  redis:
    driver: local

services:
  owncloud:
    image: owncloud/server:${OWNCLOUD_VERSION}
    restart: always
    ports:
      - ${HTTP_PORT}:8080
    depends_on:
      - db
      - redis
    environment:
      - OWNCLOUD_DOMAIN=${OWNCLOUD_DOMAIN}
      - OWNCLOUD_DB_TYPE=mysql
      - OWNCLOUD_DB_NAME=owncloud
      - OWNCLOUD_DB_USERNAME=owncloud
      - OWNCLOUD_DB_PASSWORD=owncloud
      - OWNCLOUD_DB_HOST=db
      - OWNCLOUD_ADMIN_USERNAME=${ADMIN_USERNAME}
      - OWNCLOUD_ADMIN_PASSWORD=${ADMIN_PASSWORD}
      - OWNCLOUD_MYSQL_UTF8MB4=true
      - OWNCLOUD_REDIS_ENABLED=true
      - OWNCLOUD_REDIS_HOST=redis
    healthcheck:
      test: ["CMD", "/usr/bin/healthcheck"]
      interval: 30s
      timeout: 10s
      retries: 5
    volumes:
      - files:/mnt/data

  db:
    image: webhippie/mariadb:latest
    restart: always
    environment:
      - MARIADB_ROOT_PASSWORD=owncloud
      - MARIADB_USERNAME=owncloud
      - MARIADB_PASSWORD=owncloud
      - MARIADB_DATABASE=owncloud
      - MARIADB_MAX_ALLOWED_PACKET=128M
      - MARIADB_INNODB_LOG_FILE_SIZE=64M
    healthcheck:
      test: ["CMD", "/usr/bin/healthcheck"]
      interval: 30s
      timeout: 10s
      retries: 5
    volumes:
      - mysql:/var/lib/mysql
      - backup:/var/lib/backup

  redis:
    image: webhippie/redis:latest
    restart: always
    environment:
      - REDIS_DATABASES=1
    healthcheck:
      test: ["CMD", "/usr/bin/healthcheck"]
      interval: 30s
      timeout: 10s
      retries: 5
    volumes:
      - redis:/var/lib/redis

故障排除

如果登录注册表时遇到问题,请确保该.docker文件位于主目录中。如果您通过安装了Docker snap,请使用以下命令创建指向您的主目录的符号链接:

ln -sf snap/docker/384/.docker

版本384可能与您的版本不同。请相应地进行调整。

https://doc.owncloud.com/server/10.3/admin_manual/installation/docker/