在腾讯云服务器上使用docker搭建halo博客系统

【参考资源】
https://www.bilibili.com/video/BV1r34y1x72A/
https://www.bilibili.com/video/BV1JN411Q7Na
https://www.bilibili.com/video/BV1fo4y1N7gK
https://blog.laoda.de/archives/docker-compose-install-halo-version-2
  1. 购买腾讯云服务器:宝塔面板

  2. 配置宝塔面板,设置 8888 端口

    在服务器>>宝塔面板>>应用信息里面

    面板端口默认为 8888 端口,需要前往防火墙页面放行面板端口


  3. 登录宝塔面板并且安装相关软件

    在服务器>>宝塔面板>>应用信息里面

    点击登录按钮后,直接一键免密登录就可以了

    在免密登录之后,进入到宝塔的命令行面板, 运行如下命令

    $ sudo /etc/init.d/bt default
    

    就可以得到宝塔面板的登录的:username:和 password:

    密码和用户名最好记下来

    登录之后就可以安装软件了,选择编译安装

  4. 安装 docker

    • Docker 安装文档:https://docs.docker.com/engine/install/

    • 安装步骤:

      # 设置仓库
      sudo yum install -y yum-utils
      sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
      # 安装最新版本的docker
      sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
      # 启动docker:这个时候应该什么都看不出来
      sudo systemctl start docker
      # hello world
      sudo docker run hello-world
      # 如果成功;会打印出如下内容
      Unable to find image 'hello-world:latest' locally
      latest: Pulling from library/hello-world
      2db29710123e: Pull complete
      Digest: sha256:2498fce14358aa50ead0cc6c19990fc6ff866ce72aeb5546e1d59caac3d0d60f
      Status: Downloaded newer image for hello-world:latest
      
      Hello from Docker!
      This message shows that your installation appears to be working correctly.
      
    • 实际上 Docker 在宝塔面板的软件商城就可以直接安装

  5. 配置阿里云镜像加速器

    • 在运行 sudo docker run hello-world 时,遇到如下问题:

      [root@VM-12-13-centos ~]# sudo docker run hello-world
      Unable to find image 'hello-world:latest' locally
      latest: Pulling from library/hello-world
      719385e32844: Retrying in 1 second
      docker: error pulling image configuration: download failed after attempts=6: dial tcp 104.18.121.25:443: i/o timeout.
      See 'docker run --help'.
      
    • 错误做法:我在腾讯云上面行不通

    • 注册阿里云镜像服务,提升下载速度

    • 在 Docker 中配置镜像

    可以执行如下代码解决:

    sudo mkdir -p /etc/docker
    sudo tee /etc/docker/daemon.json <<-'EOF'
    {
      "registry-mirrors": ["https://naptvv9c.mirror.aliyuncs.com"]
    }
    EOF
    sudo systemctl daemon-reload
    sudo systemctl restart docker
    
  6. 安装 halo2.0

    文档:https://docs.halo.run/getting-started/install/docker

    • 拉取 halo 的最新镜像

       docker pull halohub/halo:2.6
      
    • 创建容器

      docker run \
      -it -d \
      --name halo \
      -p 8090:8090 \
      -v ~/.halo2:/root/.halo2 \
      halohub/halo:2.6 \
      --halo.external-url=http://localhost:8090/ \
      --halo.security.initializer.superadminusername=admin \
      --halo.security.initializer.superadminpassword=P@88w0rd
      
      • halo.external-url 对外访问的域名
      • halo.security.initializer.superadminusername 初始超级管理员用户名
      • halo.security.initializer.superadminpassword 初始超级管理员密码
    • 在腾讯云防火墙中打开 8090 端口

    • 通过 Ip 访问: 123.123.123.123:8090

      123.123.123.123:8090/console 可以访问控制台。 默认超级用户为创建容器时设置的用户

  7. 购买域名

  8. 解析域名


  9. 在宝塔进行反向代理

    • 在宝塔面板中设置域名

    • 从腾讯云中获取免费的 SSL 的证书

    • 在宝塔面板上配置证书

      进入到宝塔面板>>网站>>设置>>SSL>>当前证书-[未部署的 SSL]

      接着报证书内容粘过去

      之后,保存。最后,勾选强制 HTTPS

    • 接着配置反向代理

      注释掉如下内容:

      添加反向代理脚本

         #反代脚本:
         location / {
            proxy_pass http://127.0.0.1:8090/;
            rewrite ^/(.*)$ /$1 break;
            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;
            proxy_set_header Upgrade-Insecure-Requests 1;
            proxy_set_header X-Forwarded-Proto https;
         }
      

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 1909773034@qq.com

×

喜欢就点赞,疼爱就打赏