docker安装joplinServer
软件版本,其他环境安装差别不大
aliyun cloud linux2
[root@iZ0jlabowpb02yakkh7q4lZ yum.repos.d]# docker -v
Docker version 20.10.13, build a224086
一 安装安装Postgres数据库
拉取镜像(postgres:13.6)
[root@localhost postgres]# docker pull postgres:13.6
创建数据库保存目录,这样配置文件等都在data目录下
/home/docker/postgres/postgres136/data
创建并启动容器(我这里使用root用户,防止可能出现的权限不足)
[root@localhost postgres]# docker run -it --name postgres136 --restart always -e POSTGRES_PASSWORD='abc123' -e ALLOW_IP_RANGE=0.0.0.0/0 -v /home/docker/postgres/postgres136/data:/var/lib/postgresql/data -p 5432:5432 -d postgres:13.6
–name : 自定义容器名称
POSTGRES_PASSWORD:数据库密码
-e ALLOW_IP_RANGE=0.0.0.0/0,这个表示允许所有ip访问,如果不加,则非本机 ip 访问不了
-v :进行映射,本地目录:容器内路径
-p:映射端口,宿主机端口:容器端口
-t: 在新容器内指定一个伪终端或终端。
-i: 允许你对容器内的标准输入 (STDIN) 进行交互。
always 自动重启
在启动时如果没有添加这个参数怎么办呢,比如1a7a3b5112fd这个容器在启动的时候是没有添加–restart=always参数的,针对这种情况我们可以使用命令进行修改。`docker container update --restart=always 容器名字`
postgres默认端口号是5432
5432端口,已经在IANA(The Internet Assigned Numbers Authority,互联网数字分配机构)注册,并把该端口唯一分配给Postgres。
这意味着,一台安装了linux OS的服务器,哪怕没有安装过postgresql数据库,也会有这个预留端口。
https://blog.csdn.net/pg_hgdb/article/details/78653794
此时数据库就创建完成了,网上说需要开启外部访问,但我这里测试不需要可以直接访问。防火墙什么的要开放5432端口,如果是阿里云服务器,还需要在安全组里开放5432端口。这时就可以在本地安装一个数据库连接工具测试连接了(pgAdmin4等)。用户名是postgres136 ,密码是abc123。
密码只用作测试,一定要改,太简单了
[root@localhost data]# docker exec -it postgres136 bash 进入容器
登录postgres用户密码是abc123(创建容器时指定的)
root@7acb9396254a:/home# psql -U postgres -W 使用 postgres 用户登录数据库
root@c13ed29c42d9:/# psql -U postgres -W
Password:
psql (13.6 (Debian 13.6-1.pgdg110+1))
Type "help" for help.
postgres=# \password 更改密码
Enter new password for user "postgres":
Enter it again:
postgres=#
joplinServer官方建议是自己新建用户和数据库,但是我之前没有用过这个数据库,就不折腾使用默认的超级用户了,如果想折腾就百度一下(要创建用户和创建数据库,joplinServer不会创建数据库)。
安装joplinServer
拉取镜像(joplin/server:2.7.4-beta)
[root@localhost data]# docker pull joplin/server:2.7.4-beta
创建挂载目录
/home/docker/joplin/joplin274/joplin
在joplin274目录下创建.env文件,文件和joplin目录同级(可以在本地创建后上传到服务器)
.env文件内容。//XX,这些注释信息要删除
APP_BASE_URL=http://www.helloweb.ltd:22300 //程序入口(我这里直接放了网址,放ip地址我没有尝试过。)
APP_PORT=22300 //jiplinServer端口号
DB_CLIENT=pg //数据库客户端
POSTGRES_PASSWORD=abc123 //密码(记得更改)
POSTGRES_DATABASE=postgres //数据库
POSTGRES_USER=postgres //用户名
POSTGRES_PORT=5432 //端口号
POSTGRES_HOST=1.2.3.4 //数据库ip地址(之前安装的数据库)
创建并启动容器
[root@localhost Downloads]# docker run -d -i --name joplinServer274 -v joplin:/home/docker/joplin/joplin274/joplin --env-file /home/docker/joplin/joplin274/.env --restart always -p 22300:22300 joplin/server:2.7.4-beta
--name joplinServer274 容器名称
-v joplin:/home/docker/joplin/joplin274/joplin 容器挂载
--env-file /home/docker/joplin/joplin274/.env 加载文件中的配置信息
检查容器配置文件是否加载正常
$ docker inspect joplinServer274

容器启动完成,服务器要开放22300端口,安全组要开放22300端口
然后就可以测试了
http://www.helloweb.ltd:22300(打开就自动跳转登录页面)
默认的账户名 admin@localhost 和密码 admin
首次登录会提示更新密码。

登录后创建用户就好了

安装joplin客户端测试
https://joplinapp.org/download

配置ssl
现在就可以使用了,不过是http不是https.
我的思路是,使用nginx配置ssl,反向代理,不过我不会。。。
参考网址:https://blog.csdn.net/monokai/article/details/114009792