dusuanyun 2018-10-10
建立自己的私人云盘,有必要吗?当然。万一Veriron、360、金山网盘关张了呢?事实上Veriron、360已经关张了,目前只有百度云盘还活着,不过百度会偷偷地进去翻你的东西,甚至把它看不顺眼的文件直接删除。
这里介绍一个方法,使用ownCloud创建自己的网盘。
ownCloud 可以通过Docker部署,使用 the official ownCloud Docker image。该官方镜像设计为与宿主机文件系统的数据卷一起工作,包含独立的 MariaDB 和 Redis containers。配置如下:
Installation on a Local Machine¶
To use it, first create a new project directory and download docker-compose.yml from 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:
Setting NameDescriptionExampleOWNCLOUD_VERSIONThe ownCloud versionlatestOWNCLOUD_DOMAINThe ownCloud domainlocalhostADMIN_USERNAMEThe admin usernameadminADMIN_PASSWORDThe admin user’s passwordadminHTTP_PORTThe HTTP port to bind to80HTTPS_PORTThe HTTP port to bind to443
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=80 HTTPS_PORT=443 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 below:
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:443->443/tcp, 0.0.0.0:80->80/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 ports 443 and 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 docker-compose logs --follow owncloud and see a significant amount of information logging to the console, then please wait until it slows down to attempt to access the web UI.
Logging In
To log in to the ownCloud UI, open https://localhost in your browser of choice, where you see the standard ownCloud login screen, as in the image below.
The username and password are the admin username and password which you stored in .env earlier.
The first time that you access the login page via HTTPS, a browser warning appears, as the SSL certificate in the Docker setup is self-signed. However, the self-signed certificate can be overwritten with a valid cert, within the host volume.
Stopping the Containers
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.
Upgrading ownCloud on Docker¶
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 .yaml or .env file exists. Second, put ownCloud into maintenance mode; you can do so using the following command:
docker-compose exec server 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.
docker-compose down
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.
cat .env
Eighth, start your docker instance again.
docker-compose up -d
Now you should have the current ownCloud running with docker-compose.