ในบทความนี้จะนำเสนอการใช้งาน Docker ที่จะมาช่วยในการติดตั้ง Nextcloud (Cloud Storage Software) ให้ง่ายขึ้นและขั้นตอนที่น้อยลงกว่าติดตั้ง Nextcloud แบบปกติ

Nextcloud เป็นโปรแกรมจัดเก็บไฟล์ การใช้งานคล้ายๆ Google drive สามารถใช้งานได้หลาย Platform ทั้งใน Web , PC , Mobile และที่สำคัญเป็น Open source นั้นเอง

Install Docker

วิธีการติดตั้ง Docker บน CentOS7 , Debian , Ubuntu

 

Create Network Docker

ขั้นตอนนี้เราจะมาสร้าง Network ให้ Container เชื่อมต่อกันเฉพาะระบบ Nextcloud โดยใช้คำสั่ง

docker network create [name network]
#Example 
[root@localhost ~]# docker network create nextcloud 
1bf2deb70266737795fd5b1ba412517f5c48ff251420ea8baef71d51252a44fd

สามารถตรวจสอบรายละเอียด Network ที่เราสร้างขึ้นมาได้ โดยใช้คำสั่ง

[root@localhost ~]# docker network inspect nextcloud
[
    {
        "Name": "nextcloud",
        "Id": "1bf2deb70266737795fd5b1ba412517f5c48ff251420ea8baef71d51252a44fd",
        "Created": "2020-07-24T16:12:58.838843134+07:00",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": {},
            "Config": [
                {
                    "Subnet": "172.18.0.0/16",
                    "Gateway": "172.18.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {},
        "Options": {},
        "Labels": {}
    }
]

Create Mariadb Container

ขั้นตอนนี้เราจะมาสร้าง Database โดยใช้ Mariadb เราสามารถเข้าไปดูคำสั่ง และ Environment เพื่อจะมาสร้างได้ที่ Docker Hub Mariadb

docker run --name some-name --network=some-network  \
-e MYSQL_ROOT_PASSWORD=my-secret-pw \
-e MYSQL_DATABASE=my-name-db \
-e MYSQL_USER=my-name-user \
-e MYSQL_PASSWORD=my-secret-pw \
-d mariadb
#Example
docker run --name mariadb --network=nextcloud \
-e MYSQL_ROOT_PASSWORD=k2bIGFwEtJ48 \
-e MYSQL_DATABASE=nextcloud \
-e MYSQL_USER=nextcloud \
-e MYSQL_PASSWORD=fJELha5FNY42 \
-d mariadb

สามารถตรวจสอบ container ที่สร้างมาว่า up หรือ ไม่โดยใช้คำสั่ง docker ps

[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
ff9bc1e38d9a        mariadb             "docker-entrypoint.s…"   4 seconds ago       Up 3 seconds        3306/tcp            mariadb

Create Nextcloud Container

ขั้นตอนนี้เราจะสร้าง Nextcloud ขึ้นมาและเชื่อมต่อไปยัง Mariadb ที่สร้างขึ้นมาก่อนหน้า เราสามารถเข้าไปดูคำสั่ง และ Environment เพื่อจะมาสร้างได้ที่ Docker Hub Nextcloud

docker run -p 80:80 --name nextcloud --network=some-network \
-e MYSQL_PASSWORD=my-secret-pw \
-e MYSQL_DATABASE=my-name-db \
-e MYSQL_USER=my-name-user \
-e MYSQL_HOST=my-host \
-d nextcloud
#Example
docker run -p 80:80 --name nextcloud \
--network=nextcloud \
-e MYSQL_PASSWORD=fJELha5FNY42 \
-e MYSQL_DATABASE=nextcloud \
-e MYSQL_USER=nextcloud \
-e MYSQL_HOST=mariadb \
-d nextcloud

ตรวจสอบ Container nextcloud ที่เพิ่มขึ้นมาว่า up หรือไม่

[root@localhost ~]# docker ps 
CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS              PORTS                NAMES
457369681d66        nextcloud           "/entrypoint.sh apac…"   22 seconds ago       Up 20 seconds       0.0.0.0:80->80/tcp   nextcloud
ff9bc1e38d9a        mariadb             "docker-entrypoint.s…"   About a minute ago   Up About a minute   3306/tcp             mariadb

ทดสอบลองเข้า IP ผ่าน Webbrowser เช่น http://192.168.1.3 จะขึ้นดังรูปเป็นอันเรียบร้อย

 

ลองทดสอบใส่ Username Admin , Password ที่ต้องการและ Finish Setup ระบบจะใช้เวลาใน Install สักครู่

 

หลังจาก Install App เสร็จเรียบร้อยแล้วก็เข้าสู่หน้า Home ดังภาพ เป็นอันเสร็จขั้นตอนการติดตั้ง Nextcloud บน Docker

 

* หมายเหตุ : บทความนี้เป็นเพียงการแนะนำเบื้องต้น หากจะนำไปขึ้นใช้งานจริง แนะนำให้ศึกษาข้อมูลของ Nextcloud และ Docker เพิ่มเติมครับ

Document Nextcloud : https://docs.nextcloud.com/
Document Docker : https://docs.docker.com/