Raspberry Pi在docker nginx上部署blog

Kesa...大约 2 分钟dockernginxraspberry pi

之前仅在树莓派上安装nginx并部署了blog,但是如果nginx的配置有问题或者出现错误不方便解决(所有东西都在一台主机上)。

现在使用docker容器来部署nginx,如果配置错误可以删除容器推到重来,还可以部署多个服务,非常的便利

部署之前先停止已经运行的nginx

$ sudo nginx -s stop  

安装Docker

这里不要直接用apt,apt里默认的包是docker的GUI版本

这里直接使用官网的安装脚本,其他的安装方式参见Docker官网手册open in new window

 $ curl -fsSL https://get.docker.com -o get-docker.sh
 $ sudo sh get-docker.sh

查看docker版本

$docker -v                                                                             
Docker version 20.10.10, build b485636

默认docker需要root权限运行,想要以非root命令运行可以参考docker安装open in new window

设置docker开机自启并启动docker

$ systemctl start docker 
$ systemctl enable docker

获取镜像

镜像加速

此处使用网易云镜像服务:https://hub-mirror.c.163.com

请首先执行以下命令,查看是否在 docker.service 文件中配置过镜像地址

$ systemctl cat docker | grep '\-\-registry\-mirror'

如果该命令有输出,那么请执行 $ systemctl cat docker 查看 ExecStart= 出现的位置,修改对应的文件内容去掉 --registry-mirror 参数及其值,并按接下来的步骤进行配置。

如果以上命令没有任何输出,那么就可以在 /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件):

{
  "registry-mirrors": [
    "https://hub-mirror.c.163.com",
    "https://mirror.baidubce.com"
  ]
}

之后重新启动服务:

$ sudo systemctl daemon-reload
$ sudo systemctl restart docker

获取Nginx官方镜像

$ sudo docker pull nginx

查看镜像:

$ sudo docker images

部署nginx

启动容器:

$ sudo docker container run \
-d \
--rm \
-p 8897:80 \
--name mynginx \
nginx

查看是否启动成功

$ sudo docker ps 

进入之前在本机部署的nginx资源文件夹~/nginx,文件结构如下(之前部署时资源已经放在/app/blog/dist):

nginx
├── app
│   └── blog
│       └── dist
└── logs

复制nginx配置目录:

$ sudo docker container cp mynginx:/etc/nginx .

更改目录名:

$ mv nginx conf

停止之前启动的容器,停止后会被自动删除(--rm的作用):

$ sudo docker stop mynginx

启动nginx:

$ sudo docker run \
    -d \
    -p 80:80 \
    --name my-nginx \
    -v /home/pi/nginx/app/blog/dist:/usr/share//nginx/html \
    -v /home/pi/nginx/logs:/var/log/nginx \
    -v /home/pi/nginx/conf:/etc/nginx \
    nginx  

查看是否启动成功:

$ sudo docker ps 

现在直接在浏览器访问树莓派的ip,可以直接进入blog首页了


本文采用CC BY-NC-ND 4.0open in new window进行许可

参考

  1. Install Docker Engine on Debianopen in new window docker manuals

  2. Docker 部署 vue 项目open in new window 稀土掘金

  3. Docker 部署Nginxopen in new window 今朝のブログ

  4. docker command not found even though installed with apt-getopen in new window stackoverflow

上次编辑于:
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v2.15.2