Centos7 使用 Docker 安装 owncloud

centos7 安装 docker

安装教程可参考:centos7 安装 docker

开始安装owncloud

1. 创建一个新的项目目录

mkdir owncloud-docker-server
cd owncloud-docker-server

2. vim docker-compose.yml 内容如下

version: "3"

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

services:
  owncloud:
    image: owncloud/server:${OWNCLOUD_VERSION}
    container_name: owncloud_server
    restart: always
    ports:
      - ${HTTP_PORT}:8080
    depends_on:
      - mariadb
      - redis
    environment:
      - OWNCLOUD_DOMAIN=${OWNCLOUD_DOMAIN}
      - OWNCLOUD_TRUSTED_DOMAINS=${OWNCLOUD_TRUSTED_DOMAINS}
      - OWNCLOUD_DB_TYPE=mysql
      - OWNCLOUD_DB_NAME=owncloud
      - OWNCLOUD_DB_USERNAME=owncloud
      - OWNCLOUD_DB_PASSWORD=owncloud
      - OWNCLOUD_DB_HOST=mariadb
      - 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

  mariadb:
    image: mariadb:10.11 # minimum required ownCloud version is 10.9
    container_name: owncloud_mariadb
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=owncloud
      - MYSQL_USER=owncloud
      - MYSQL_PASSWORD=owncloud
      - MYSQL_DATABASE=owncloud
      - MARIADB_AUTO_UPGRADE=1
    command: ["--max-allowed-packet=128M", "--innodb-log-file-size=64M"]
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-u", "root", "--password=owncloud"]
      interval: 10s
      timeout: 5s
      retries: 5
    volumes:
      - mysql:/var/lib/mysql

  redis:
    image: redis:6
    container_name: owncloud_redis
    restart: always
    command: ["--databases", "1"]
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 10s
      timeout: 5s
      retries: 5
    volumes:
      - redis:/data

配置:

  • 公开端口 8080,允许 HTTP 连接。
  • 使用单独的 MariaDB 和 Redis 容器。
  • 将数据和MySQL数据目录挂载到主机上以进行持久存储。

3. 创建一个 .env 配置文件,其中包含所需的配置设置。

cat << EOF > .env
OWNCLOUD_VERSION=10.14
OWNCLOUD_DOMAIN=localhost:8080
OWNCLOUD_TRUSTED_DOMAINS=localhost
ADMIN_USERNAME=admin
ADMIN_PASSWORD=admin
HTTP_PORT=8080
EOF

只需要一些设置,这些是:

Setting Name Description Example

OWNCLOUD_VERSION

The ownCloud version

latest

OWNCLOUD_DOMAIN

The ownCloud domain

localhost:8080

OWNCLOUD_TRUSTED_DOMAINS

The ownCloud trusted domains

localhost

ADMIN_USERNAME

The admin username

admin

ADMIN_PASSWORD

The admin user’s password

admin

HTTP_PORT

The HTTP port to bind to

8080

以上配置,假设您是在本地安装。对于远程访问,需要更新 OWNCLOUD_DOMAIN 和 OWNCLOUD_TRUSTED_DOMAINS 的值添加可访问服务器的主机名或 IP 地址。 

4. 构建并启动容器

docker compose up -d

5. 检查所有容器是否已成功启动

docker compose ps

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

Name Command State Ports

owncloud_mariadb

docker-entrypoint.sh --max …​

Up (healthy)

3306/tcp

owncloud_redis

docker-entrypoint.sh --dat …​

Up (healthy)

6379/tcp

owncloud_server

/usr/bin/entrypoint /usr/b …​

Up (healthy)

0.0.0.0:8080→8080/tcp

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

尽管容器已启动并正在运行,但 ownCloud 可能仍需要几分钟才能完全运行。 检查日志输出:

docker compose logs --follow owncloud

等到输出显示正在启动 apache daemon...​,然后再访问 Web UI。

重要提示:

所有重要数据在以下情况后仍然存在:

docker compose down
docker compose up -d

有些细节会丢失,例如默认应用程序在卸载后可能会重新出现。

6. 访问 Web UI

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

用户名和密码是您之前存储在 .env 中的凭据。请注意,即使您更改 .env 中的值,这些值也不会在部署之间发生更改。

7. 停止容器

docker compose stop

要停止并删除容器以及相关网络、镜像和卷:

docker compose down --rmi all --volumes

参考

Installing with Docker

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章