- 安装 docker
yum install curl -y && curl -fSsL get.docker.com |CHANNEL=stable sh
systemctl start docker
systemctl enable docker
docker version
- docker 安装 mysql
# MYSQL_ROOT_PASSWORD=你的数据库密码
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password -d mysql:latest
# docker安装的mysql默认允许远程连接,可以使用Navicat等软件连接数据库
# 进入容器
mysql docker exec -it mysql bash
# 进入数据库 p后面跟你的密码
mysql -uroot -ppassword
# 创建数据库(数据库名:solo;字符集utf8mb4;排序规则utf8mb4_general_ci)
create database solo DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
#创建成功后退出数据库 ,退出容器
- 安装 solo
docker run --detach --name solo --network=host \
--env RUNTIME_DB="MYSQL" \
--env JDBC_USERNAME="root" \
--env JDBC_PASSWORD="password" \
--env JDBC_DRIVER="com.mysql.cj.jdbc.Driver" \
--env JDBC_URL="jdbc:mysql://127.0.0.1:3306/solo?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC" \
--rm \
b3log/solo --listen_port=8080 --server_scheme=http --server_host=<ip address>
Note:
--listen_port=8080 监听的端口
--server_scheme=http 请求方式,暂时使用 http,后面我们会换成 https
--server_host= 你的域名或者 IP,如果你没有域名可以写 IP 地址
--rm 因为这个容器后面要删掉,带上 rm 会省很多事
- 安装 nginx
mkdir -p /solo/nginx/html
mkdir /solo/nginx/ssl
mkdir /solo/nginx/conf
mkdir /solo/nginx/logs
docker run --name nginx -p 80:80 -d --rm nginx #启动一个nginx容器
docker cp nginx:/etc/nginx/nginx.conf /solo/nginx/conf/nginx.conf
docker cp nginx:/etc/nginx/conf.d /solo/nginx/conf/conf.d
docker stop nginx
docker run -d -p 80:80 --name nginx \
-v /solo/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /solo/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /solo/nginx/www:/usr/share/nginx/html \
-v /solo/nginx/logs:/var/log/nginx nginx
echo "<h1>hello solo blog</h1>" >/solo/nginx/html/index.html
此时就可以在浏览器里面测试了,IP:8080
- nginx 反向代理
每次要在浏览器里面输入 8080 端口很麻烦,此时就可以利用 nginx 反向代理实现访问 80 端口自动转到 8080.
vim /solo/nginx/conf.d/default.conf
http的server区域添加:
location / {
proxy_pass http://IP:8080; #添加此行,IP填写你具体的IP地址或者域名
}
docker restart nginx # 重启nginx使配置生效
- Enjoy the show
h
就可以看到你的博客啦,进去进行自定义设置,皮肤等。
- Note:
-
目前以发现的问题:
如果部署 docker 部署 solo 的时候不是用的 5.6 版本的 mysql,你用的是最新的 mysql:lastest 版本,后面 solo 有肯能起不来,需要在数据库创建完成再做一步给远程登陆授权和本地授权,不然 solo 有可能因为授权问题,solo 连不上数据库。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于