CentOS7.8(阿里云服务器)使用Docker搭建Halo博客
2021/10/27 7:14:48
本文主要是介绍CentOS7.8(阿里云服务器)使用Docker搭建Halo博客,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、安装Docker
1.查看内核版本
uname -a
Docker官方说至少3.8以上,建议3.10以上
2.把yum包更新到最新
温馨提示:新环境或测试环境可随意操作,生产环境酌情慎重更新
yum update
期间需要确认,输入"y"即可
3.安装需要到依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
4.设置yum源
下面两个选择一个即可
# 中央仓库 yum-config-manager --add-repo http://download.docker.com/linux/centos/docker-ce.repo # 阿里仓库 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
5.查看仓库中所有到Docker版本
yum list docker-ce --showduplicates | sort -r
6.安装Docker
我选择到是docker-ce-18.03.1.ce
yum install docker-ce-18.03.1.ce
期间需要确认,输入"y"即可
7.启动Docker并加入开机启动
# 启动Docker systemctl start docker # 加入开机自启动 systemctl enable docker
8.查看Docker版本
docker version
一些常用Docker命令
二、使用Docker安装Halo博客
1.创建工作目录
mkdir ~/.halo && cd ~/.halo
2.下载示例配置文件到工作目录
wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml
如果没有安装wget,可使用命令
yum -y install wget
进行安装
3.编辑配置文件,配置数据库或者端口等,如需配置请参考参考配置(一般默认即可)
vim application.yaml
4.拉取最新的 Halo 镜像
docker pull halohub/halo
5.创建容器
docker run -it -d --name halo -p 8090:8090 -v ~/.halo:/root/.halo --restart=always halohub/halo
-it: 开启输入功能并连接伪终端
-d: 后台运行容器
–name: 为容器指定一个名称
-p: 端口映射,格式为 主机(宿主)端口:容器端口 ,可在 application.yaml 配置。
-v: 工作目录映射。形式为:-v 宿主机路径:/root/.halo,后者不能修改。
–restart: 建议设置为 always,在 Docker 启动的时候自动启动 Halo 容器。
6.打开 http://ip:端口号
访问后即可进入指导页面(需开放服务器端口,一般默认是8090)
参考文档
三、安装nginx
1.下载安装包(一般安装在/usr/local下)
cd /usr/local wget http://nginx.org/download/nginx-1.11.5.tar.gz
2.下载nginx依赖库
可能会安装失败,具体可参考后面到错误提示信息
yum install gcc-c++ yum install pcre yum install pcre-devel yum install zlib yum install zlib-devel yum install openssl yum install openssl-devel
3.解压安装包
nginx被解压到了/usr/local/nginx-1.11.5 目录下(不要把压缩包解压到/usr/local/nginx目录下,或者将解压后的目录重命名为nginx,因为nginx会默认安装到/usr/local/nginx目录下)
tar -zxvf nginx-1.11.5.tar.gz
4.安装
# 切换至nginx-1.11.5/目录 cd /usr/local/nginx-1.11.5/
执行
./configure --with-http_ssl_module # --with-http_ssl_module需加上,否则后面配置SSL证书时会报错 the "ssl" parameter requires ngx_http_ssl_module
该命令会检测当前系统环境,以确保能成功安装nginx,执行该操作后可能会出现以下几种提示:
checking for OS + Linux 3.10.0-123.el7.x86_64 x86_64 checking for C compiler ... not found ./configure: error: C compiler cc is not found
如果出现以上错误提示信息,执行yum install gcc-c++安装gcc
./configure: error: the HTTP rewrite module requires the PCRE library. You can either disable the module by using --without-http_rewrite_module option, or install the PCRE library into the system, or build the PCRE library statically from the source with nginx by using --with-pcre=<path> option.
如果出现上面提示,表示缺少PCRE库
./configure: error: the HTTP gzip module requires the zlib library. You can either disable the module by using --without-http_gzip_module option, or install the zlib library into the system, or build the zlib library statically from the source with nginx by using --with-zlib=<path> option.
如果出现以上提示,表示缺少zlib库
如果没有出现./configure: error提示,表示当前环境可以安装nginx,执行make和make install编译nginx
make && make install
如果没有报错的话,表示nginx已经成功安装完成,默认安装位置为/usr/local/nginx
5.配置nginx开机启动
cd /lib/systemd/system/ vim nginx.service
文件内容如下
[Unit] Description=nginx After=network.target [Service] Type=forking ExecStart= /usr/local/nginx/sbin/nginx ExecReload= /usr/local/nginx/sbin/nginx reload ExecStop= /usr/local/nginx/sbin/nginx quit PrivateTmp= true [Install] WantedBy=multi-user.target
退出并保存文件,执行命令开机启动
systemctl enable nginx.service
6.验证nginx是否安装成功
输入http://服务器IP/ 如果能看到nginx的界面,就表示安装成功了
7.常用nginx命令
systemctl start nginx.service # 启动nginx systemctl stop nginx.service # 结束nginx systemctl restart nginx.service # 重启nginx nginx -v # 查看nginx版本
四、nginx安装SSL证书并进行配置
在此之前需先购买域名并进行备案
1.进入阿里云服务器中购买证书购买SSL证书地址
选择***DV单域名(免费试用)进行购买,购买后选择nginx证书下载,下载后解压会得到下面两个文件
2.配置nginx
执行下面命令在在Nginx安装目录(默认为/usr/local/nginx/conf)下创建一个用于存放证书的目录(命名为cert)
cd /usr/local/nginx/conf #进入Nginx默认安装目录。如果您修改过默认安装目录,请根据实际配置进行调整。 mkdir cert #创建证书目录,命名为cert。
使用putty、xshell等工具等文件传输工具将你的证书传到cert目录下(/usr/local/nginx/conf/cert)
编辑neinx.conf
vim /usr/local/nginx/conf/nginx.conf
配置文件中定位到HTTP协议代码片段(http{}),并在HTTP协议代码里面添加以下server配置(如果server配置已存在,按照以下注释内容修改相应配置即可)。
server { listen 443 ssl; server_name yourdomain.com www.yourdomain.com; #需要将yourdomain.com替换成证书绑定的域名。 client_max_body_size 1024m; ssl_certificate cert/cert-file-name.pem; # 需要将cert-file-name.pem替换成已上传的证书文件的名称 ssl_certificate_key cert/cert-file-name.key; # 需要将cert-file-name.key替换成已上传的证书密钥文件的名称 ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!MD5; location / { # 反向代理地址,注意 / proxy_pass http://127.0.0.1:8090/; proxy_redirect off; # 代理请求头 proxy_set_header HOST $host; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }
设置HTTP请求自动跳转HTTPS(可选),配置如下
server { listen 80; server_name yourdomain.com www.yourdomain.com; return 301 https://$server_name$request_uri; }
3.重启Nginx服务
cd /usr/local/nginx/sbin #进入Nginx服务的可执行目录 ./nginx -s reload #重新载入配置文件
4.验证SSL证书是否安装成功
证书安装完成后,可通过访问证书的绑定域名验证该证书是否安装成功
https://yourdomain.com #需要将yourdomain.com替换成证书绑定的域名
注意事项,需将端口80和443添加至服务器安全组,且需检查系统防火墙firewall是否添加了443端口,是否在监听,命令可参考文档
本博客主要参考文档如下:
阿里云文档
Halo文档
这篇关于CentOS7.8(阿里云服务器)使用Docker搭建Halo博客的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-24Docker环境部署资料详解
- 2024-12-24Docker环境部署教程:新手入门详解
- 2024-12-24Docker环境部署项目实战教程
- 2024-12-24Docker环境部署学习:初学者指南
- 2024-12-24Docker环境部署入门:新手必读指南
- 2024-12-20Docker部署资料:新手入门教程
- 2024-12-19Docker部署实战:新手入门教程
- 2024-12-19Docker部署教程:新手入门详解
- 2024-12-09云原生周刊:在Docker上部署大语言模型
- 2024-12-05Docker教程:新手快速入门指南