使用Docker搭建Picsur圖床服務(wù)的實(shí)現(xiàn)
一、Picsur介紹
1.1 Picsur簡介
Picsur是一款類似Imgur的自托管圖片分享服務(wù),內(nèi)置強(qiáng)大的圖片轉(zhuǎn)換與編輯功能,確保用戶能夠輕松管理個(gè)人或團(tuán)隊(duì)的圖像資源。
1.2 主要特點(diǎn)
- 圖片上傳與查看:支持匿名及注冊用戶上傳和查看圖片。
- 用戶賬戶系統(tǒng):提供用戶賬號創(chuàng)建,方便個(gè)性化管理和隱私保護(hù)。
- 角色與權(quán)限管理:具備靈活的用戶角色和權(quán)限設(shè)定,便于多用戶環(huán)境下的管理。
- 安全的跨域資源共享(CORS):實(shí)施適當(dāng)?shù)腃ORS策略,保障數(shù)據(jù)安全。
- 元數(shù)據(jù)清理:自動(dòng)移除圖片中的EXIF信息,保護(hù)用戶隱私。
- 原圖保存選項(xiàng):允許用戶選擇是否保留原始圖片文件。
- 多格式支持:兼容QOI、JPG、PNG、WEBP(含動(dòng)畫)、TIFF、BMP、GIF(含動(dòng)畫)等多種圖像格式。
- 圖片轉(zhuǎn)換功能:提供圖片轉(zhuǎn)換選項(xiàng),如調(diào)整尺寸、旋轉(zhuǎn)、翻轉(zhuǎn)、去除透明度、負(fù)片效果及灰度化處理。
- 圖片刪除功能:用戶可以刪除不再需要的圖片,保持賬戶整潔。
- 數(shù)據(jù)庫遷移支持:確保軟件升級時(shí)數(shù)據(jù)平滑遷移,無后顧之憂。
- 個(gè)人圖片列表:用戶可以輕松查看自己上傳的所有圖片。
- 聊天應(yīng)用預(yù)覽優(yōu)化:優(yōu)化圖片在各類聊天應(yīng)用中的預(yù)覽效果,提升用戶體驗(yàn)。
- 圖片過期機(jī)制:支持設(shè)置圖片的有效期限,到期自動(dòng)刪除。
- ShareX集成:提供ShareX插件支持,方便快捷地上傳圖片。
- 多架構(gòu)Docker鏡像:為ARM64和AMD64架構(gòu)提供Docker鏡像,便于不同平臺(tái)的部署。
二、本次環(huán)境規(guī)劃
2.1 本次實(shí)踐簡介
1.本次實(shí)踐為個(gè)人測試學(xué)習(xí)環(huán)境,旨在新手快速上云和部署應(yīng)用,生產(chǎn)環(huán)境請謹(jǐn)慎; 2.本次實(shí)踐環(huán)境為騰訊云輕量應(yīng)用服務(wù)器,在Docker環(huán)境下部署Picsur圖床工具。
2.2 本次環(huán)境規(guī)劃
- 本次實(shí)踐的環(huán)境規(guī)劃如下:
云廠商 | 云產(chǎn)品 | 應(yīng)用模版 | 操作系統(tǒng)版本 | Docker版本 | 部署項(xiàng)目 | 容器鏡像名稱 |
---|---|---|---|---|---|---|
騰訊云 | 輕量應(yīng)用服務(wù)器 | Docker CE | Centos 7 | 26.1.3 | Picsur圖床工具 | ghcr.io/caramelfur/picsur:latest |
三、本地環(huán)境檢查
3.1 檢查Docker服務(wù)狀態(tài)
檢查Docker服務(wù)是否正常運(yùn)行,確保Docker正常運(yùn)行。
[root@VM-8-9-centos ~]# systemctl status docker ● docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2025-01-09 20:59:40 CST; 4 days ago Docs: https://docs.docker.com Main PID: 1424 (dockerd) Tasks: 9 Memory: 1.0G CGroup: /system.slice/docker.service
3.2 檢查Docker版本
檢查Docker版本
[root@VM-8-9-centos ~]# docker -v Docker version 26.1.3, build b72abbb
3.3 檢查docker compose 版本
檢查Docker compose版本,確保2.0以上版本。
[root@VM-8-9-centos ~]# docker compose version Docker Compose version v2.27.1
四、部署Picsur圖床應(yīng)用
4.1 下載Picsur鏡像
我們執(zhí)行以下命令,拉取Picsur容器鏡像。
[root@VM-8-13-centos ~]# docker pull ghcr.io/caramelfur/picsur:latest latest: Pulling from caramelfur/picsur 43c4264eed91: Pull complete 65e1b46b2b03: Pull complete 9b2c43f8e8e6: Pull complete 4daa6557aeb9: Pull complete 222f15b4c73b: Pull complete 322b27558ba5: Pull complete d5c5383f704f: Pull complete Digest: sha256:209ce21d338cd7d9a1adc838a67695e903149359bf192359819607df1b3c4417 Status: Downloaded newer image for ghcr.io/caramelfur/picsur:latest ghcr.io/caramelfur/picsur:latest
4.2 創(chuàng)建部署目錄
- 創(chuàng)建Picsur容器的部署目錄/data/picsur
mkdir -p /data/picsur/data && cd /data/picsur/
4.3 創(chuàng)建Picsur容器
本次實(shí)踐使用docker compose方式部署,docker-compose.yaml部署文件內(nèi)容如下:
vim docker-compose.yaml
version: '3' services: picsur: image: ghcr.io/caramelfur/picsur:latest container_name: picsur restart: always ports: - '9200:8080' environment: PICSUR_HOST: '0.0.0.0' PICSUR_PORT: 8080 PICSUR_DB_HOST: picsur_postgres PICSUR_DB_PORT: 5432 PICSUR_DB_USERNAME: picsur PICSUR_DB_PASSWORD: picsur PICSUR_DB_DATABASE: picsur PICSUR_MAX_FILE_SIZE: 128000000 picsur_postgres: image: postgres:14-alpine container_name: picsur_postgres restart: always volumes: - /data/picsur/data:/var/lib/postgresql/data environment: POSTGRES_DB: picsur POSTGRES_PASSWORD: picsur POSTGRES_USER: picsur
- 執(zhí)行以下命令,創(chuàng)建Picsur容器。
docker compose up -d
4.4 查看Picsur容器狀態(tài)
檢查Picsur容器狀態(tài),確保Picsur正常啟動(dòng)。
[root@VM-8-13-centos picsur]# docker compose ps WARN[0000] /data/picsur/docker-compose.yaml: `version` is obsolete NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS picsur ghcr.io/caramelfur/picsur:latest "docker-entrypoint.s…" picsur 2 minutes ago Up 2 minutes 0.0.0.0:9200->8080/tcp, :::9200->8080/tcp picsur_postgres postgres:14-alpine "docker-entrypoint.s…" picsur_postgres 2 minutes ago Up 2 minutes 5432/tcp
4.5 查看Picsur容器日志
檢查Picsur容器日志,確保Picsur服務(wù)正常運(yùn)行。
docker compose logs
五、訪問Picsur服務(wù)
5.1 訪問Picsur初始頁
訪問地址http://彈性公網(wǎng)IP地址9200,將IP地址替換為自己服務(wù)器的彈性公網(wǎng)IP地址。此時(shí),我們可以正常Picsur的初始頁,如果無法訪問到此頁面,請檢查本地服務(wù)器防護(hù)墻是否關(guān)閉或放行相關(guān)端口。注意,在云服務(wù)器部署時(shí),還需要設(shè)置安全組規(guī)則,放行相關(guān)服務(wù)端口。
5.2 登錄 Picsur
點(diǎn)擊右上角的“Login”按鈕,使用默認(rèn)用戶名admin
和在部署文件環(huán)境變量PICSUR_ADMIN_PASSWORD
中設(shè)置的密碼登錄,這里設(shè)置的登錄密碼為picsur,確認(rèn)登錄即可。
六、Picsur的基本使用
6.1 上傳本地圖片
點(diǎn)擊Picsur主頁的“Upload Image”,上傳本地圖片。
6.2 查看圖片列表
在右上角,選擇“My Images”,可以看到圖片列表。
6.3 分享圖片
點(diǎn)開圖片預(yù)覽,可以看到圖片的分享鏈接,其中包括markdown等嵌入代碼。
在其他瀏覽器打開圖片分享的鏈接,可以正常瀏覽圖片。
七、總結(jié)
通過本次實(shí)戰(zhàn),我們成功使用Docker快速部署了Picsur圖床服務(wù),展現(xiàn)了Docker在簡化環(huán)境配置和提升部署效率方面的優(yōu)勢。整個(gè)過程操作簡便,無需手動(dòng)安裝復(fù)雜依賴,只需幾條命令即可完成服務(wù)的搭建與運(yùn)行。通過瀏覽器訪問Picsur界面,用戶可以輕松實(shí)現(xiàn)圖片上傳與管理,非常適合用于個(gè)人或小型團(tuán)隊(duì)的圖床需求。
到此這篇關(guān)于使用Docker搭建Picsur圖床服務(wù)的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Docker搭建Picsur圖床內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker實(shí)現(xiàn)安裝ELK(單節(jié)點(diǎn))
這篇文章主要介紹了Docker實(shí)現(xiàn)安裝ELK(單節(jié)點(diǎn)),具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08解決Docker刪除鏡像報(bào)錯(cuò):Error response from daemon:con
刪除Docker鏡像時(shí)遇到?jīng)_突,因?yàn)殓R像正在被一個(gè)運(yùn)行中的容器使用,解決方法是先停止并刪除該容器,然后再嘗試刪除鏡像,此外,還可以選擇強(qiáng)制刪除鏡像,但這可能會(huì)導(dǎo)致數(shù)據(jù)丟失2024-11-11使用docker部署influxdb與 mongo的常用命令
這篇文章主要介紹了使用docker部署influxdb與 mongo的常用命令,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-05-05Docker 數(shù)據(jù)卷,數(shù)據(jù)卷容器詳細(xì)介紹
這篇文章主要介紹了 Docker 數(shù)據(jù)卷,數(shù)據(jù)卷容器詳細(xì)介紹的相關(guān)資料,這里對Docker 數(shù)據(jù)卷,數(shù)據(jù)卷容器的感念及相關(guān)操作進(jìn)行了介紹,需要的朋友可以參考下2016-11-11Dockerfile及新型容器鏡像構(gòu)建技術(shù)詳解
本文詳細(xì)介紹了dockerfile以及新型容器鏡像構(gòu)建技術(shù),文章中通過詳細(xì)的代碼示例介紹了dockerfile生成容器鏡像器的全過程,感興趣的小伙伴可以參考一下2023-04-04如何在 Ubuntu 下通過 Docker 部署 Caddy 
本文介紹了如何在Ubuntu系統(tǒng)下通過Docker部署Caddy服務(wù)器,首先安裝Docker,然后啟動(dòng)Docker服務(wù)并設(shè)置為開機(jī)自啟,接著拉取Caddy鏡像,并創(chuàng)建一個(gè)Caddyfile配置文件,使用命令運(yùn)行Caddy容器,并將本地的Caddyfile掛載到容器內(nèi),感興趣的朋友跟隨小編一起看看吧2025-03-03解決docker啟動(dòng)失敗Failed?to?start?containerd?container?runtim
這篇文章主要介紹了解決docker啟動(dòng)失敗Failed?to?start?containerd?container?runtime問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05