~ 2 min
docker项目记录
2024/4/17 问题再现
执行sudo docker compose up -d
命令的时候出现这个报错:
WARN[0000] /www/wwwroot/memos.wangyunzi.com/docker-compose.yml: `version` is obsolete
这个是说版本过期,因为最新版本的docker不支持版本这种(其实我也是因为一个报错才知道的,所以compose里面的代码第一样关于version可以注释掉的,等我找到这个GitHub网页在说)。
2024/4/16
因为昨天关闭防火墙忘记重新打开了,所以今天的好多个docker安装项目都出现问题,评论通知收不到,freshrss导入不了文档,询问杜老师才知道“Docker是需要防火墙转发数据的”,所以记录一下自己的一个小失误。
2024/4/15
最近因为买了服务器之后比较兴奋,把几个自己没有尝试的过的项目都安装了一遍,包括Alist、FreshRSS、Artalk、等,因为前面都是随意安装,比如docker一键安装之类的,所以导致文件夹部分比较混乱,加上自己不熟悉docker所以出现了很多bugs,比如因为没有提前关闭镜像导致升级新docker之后镜像一直删不掉,还有就是莫名奇妙删掉了好几个文档,统一docker安装方式,采用docker-compose方式,方便整理。因为这些项目都需要设置反代理,所以首先新建网站xxx.wangyunzi.com,这时候就会有一个网站目录,接下来所有的操作都会在这个网站目录下进行。
docker升级步骤
直接参考这篇文章,更新docker到最新版本,前面随便找了一篇教程安装docker就开始乱弄,教程如下
老的教程
直接脚本安装,安装命令如下:
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
新教程
- 较旧的 Docker 版本称为 docker 或 docker-engine 。如果已安装这些程序,请卸载它们以及相关的依赖项。
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
- 按照这个教程吧:菜鸟教程
##检查docker版本
docker version
#安装一些必要的系统工具
yum -y install yum-utils device-mapper-persistent-data lvm2
#添加软件源信息
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#更新 yum 缓存
yum makecache fast
#安装docker-ce
yum -y install docker-ce
# 或更新
yum -y update docker-ce
Alist安装
- 新建
docker-compose.yml
文件,输入下面的代码:
version: '3.3'
services:
alist:
image: 'xhofe/alist:latest'
container_name: alist
volumes:
- '/etc/alist:/opt/alist/data'
ports:
- '5244:5244'
environment:
- PUID=0
- PGID=0
- UMASK=022
restart: unless-stopped
- 接着打开终端,输入下面代码部署:
sudo docker compose up -d
- 因为上面的那个代码alist路径不是保存到当前目录,所以我希望数据在我所熟悉的文件夹内,改之后${PWD}/alist发现报错,也不知道为什么${PWD}不是保存在当前路径,一直报错
WARN[0000] The "PWD" variable is not set. Defaulting to a blank string.
最后还是改成了下面的代码,根据这个Docker compose won’t find $PWD environment variable找到了答案,话说真的好爱这个网站,什么问题都能在这上面找到答案:
# version: "3.8"
services:
# Alist 的官方部署文档: https://alist-doc.nn.ci/en/docs/install/docker/
# docker run -d --restart=always -v /etc/alist:/opt/alist/data -p 5244:5244 --name="alist" xhofe/alist:latest
alist:
image: xhofe/alist:latest
container_name: alist
ports:
- "5244:5244"
restart: always
volumes:
- ".:/opt/alist/data"
Artalk安装
- 新建
docker-compose.yml
文件,输入下面的代码:
version: '3.5'
services:
artalk:
container_name: artalk
image: artalk/artalk-go
restart: always
ports:
- 8080:23366
volumes:
- ./data:/data
- 执行命令创建容器:
docker-compose up -d
Freshrss安装
- 新建
docker-compose.yml
文件,输入下面的代码,记得更改自己的端口(我的是8282):
version: "3"
services:
freshrss:
image: freshrss/freshrss:latest
container_name: freshrss
hostname: freshrss-app
restart: always
ports:
- '8282:80'
volumes:
- ./data:/var/www/FreshRSS/data
- ./extensions:/var/www/FreshRSS/extensions
environment:
CRON_MIN: '*/20' # 刷新频率
TZ: Asia/Shanghai
-
按道理说第二步应该执行命令创建镜像,但是按照这篇教程———突破信息茧房,拥抱内容自由:使用宝塔面板docker-compose十分钟极速部署FreshRSS,开启自主阅读新篇章,按照他的操作也可以的。但是应该也可以一步创建命令执行:
docker-compose up -d
; -
这过程中我找到一篇不错的教程——shRSS如何持久化配置?,这篇教程里的答案很有参考价值,做法就是创建文件后输入下面的代码:
version: "2.4"
services:
freshrss-db:
image: postgres:15
container_name: freshrss-db
hostname: freshrss-db
restart: unless-stopped
logging:
options:
max-size: 10m
volumes:
- ./freshrss-db:/var/lib/postgresql/data
environment:
POSTGRES_DB: ${DB_BASE:-freshrss}
POSTGRES_USER: ${DB_USER:-freshrss}
POSTGRES_PASSWORD: ${DB_PASSWORD:-freshrss}
#command:
# Examples of PostgreSQL tuning.
# https://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Server
# When in doubt, skip and stick to default PostgreSQL settings.
# - -c
# - shared_buffers=1GB
# - -c
# - work_mem=32MB
freshrss-app:
image: freshrss/freshrss:latest
container_name: freshrss-app
hostname: freshrss-app
restart: unless-stopped
ports:
- "8080:80"
depends_on:
- freshrss-db
logging:
options:
max-size: 10m
volumes:
- ./data:/var/www/FreshRSS/data
- ./extensions:/var/www/FreshRSS/extensions
environment:
TZ: Asia/Shanghai
CRON_MIN: '*/45'
# TRUSTED_PROXY: 172.16.0.1/12 192.168.0.1/16
volumes:
freshrss-db:
data:
extensions:
然后执行:sudo docker compose up -d
Memos安装
新建docker-compose.yml
文件,然后输入以下代码:
version: "3"
services:
memos:
image: neosmemo/memos:latest
container_name: memeos
hostname: memeos
ports:
- "5230:5230"
volumes:
- ./memos/.memos/:/var/opt/memos
restart: always