-
准备docker环境
-
安装docker,根据自己系统查找安装命令,此处使用
Ubuntu
系统curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
-
-
安装并启动
solo
-
拉取solo镜像
docker pull b3log/solo
-
通过镜像创建solo容器并启动,使用的是
H2 Database
。启动在8080端口docker run --detach --name solo --volume ~/solo_h2/:/opt/solo/h2/ --publish 8080:8080 \ --env RUNTIME_DB="H2" \ --env JDBC_USERNAME="root" \ --env JDBC_PASSWORD="123456" \ --env JDBC_DRIVER="org.h2.Driver" \ --env JDBC_URL="jdbc:h2:/opt/solo/h2/db;MODE=MYSQL" \ b3log/solo --listen_port=8080 --server_scheme=http --server_host=localhost --server_port=
-
验证
#查看容器有没有启动 curl http://localhost:8080
-
使用
H2
数据库,数据文件在~/solo_h2/
目录下,注意备份
-
-
安装
nginx
反向代理。默认启动在8080端口,如果想通过80访问,必须做一层代理,如果不需要代理可以跳过-
拉取
nginx
镜像(如果不需要代理可以跳过)docker pull nginx
-
查看
solo
所在容器的ip
docker exec -it solo ip a
-
根据ip准备
nginx
配置文件nginx.conf
,放到自己的目录/home/rxdu
下vim /home/rxdu/nginx.conf
-
配置文件内容,需注意 修改监听域名和跳转ip
worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; upstream backend { server localhost:8080; # Solo 监听端口ip也要改成自己的solo端口和IP } server { listen 80; server_name 88250.b3log.org; # 博客域名改成自己的 access_log off; location / { proxy_pass http://backend$request_uri; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; client_max_body_size 10m; } } }
-
创建
nginx
容器并启动。/home/rxdu/nginx.conf
为第3步配置文件位置docker run -d --name nginx -p 80:80 -v /home/rxdu/nginx.conf:/etc/nginx/nginx.conf nginx
-
