记一次博客的迁移(Ubuntu安装docker部署博客)
一、docker的安装
更新源
#apt-get update
安装依赖
#apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-common
添加GPG密钥
#curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | apt-key add -
指纹验证
#apt-key fingerprint 0EBFCD88
设置稳定版仓库
#add-apt-repository \ "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/ \ $(lsb_release -cs) \ stable"
更新源
#apt-get update
列出docker版本
#apt-cache madison docker-ce
安装指定版本(VERSION_STRING为 列出版本的第二列:(冒号)后面的值)
#apt-get install \ docker-ce-<VERSION_STRING> \ docker-ce-cli-<VERSION_STRING> \ containerd.io
或 直接安装最新版本
#apt-get install docker-ce docker-ce-cli containerd.io
验证docker是否安装成功
#docker run hello-world
卸载docker
#apt-get purge docker-ce #rm -rf /var/lib/docker #删除镜像、容器、配置等内容
二、php|nginx|mysql的安装
搜索镜像
#docker search php #docker search nginx #docker search mysql
拉取指定镜像 具体tag可以前往 https://hub.docker.com/ 搜索
也可以不带tag直接拉取最新版本,根据实际情况操作
#docker pull php:7.4-fpm #docker pull nginx:1.23 #docker pull mysql:5.7
查看镜像拉取情况
#docker image ls
三、环境关联
PHP启动脚本
#vim startPHP74fpm
写入以下内容
#! /usr/bin/env bash #解释 运行php:7.4-fpm别名为php74-fpm 并且映射宿主机目录/data/www docker run --name php74-fpm -v /data/www:/data/www -d php:7.4-fpm
nginx 启动脚本
#vim startNGINX
写入以下内容
#! /usr/bin/env bash #解释 同php运行一样,但是这里将80和443端口也映射出来, -—link表示给php做个hostname,在做nginx和php配置时用得到 docker run --name nginx-main -p 80:80 -p 443:443 -v /data/www:/data/www -v /etc/nginx/conf.d:/etc/nginx/conf.d --link php74-fpm:php74 -d nginx
以上两个文件保存后注意设置运行权限
#chmod +x startNGINX #chmod +x startPHP74fpm
由于我博客没有使用mysql 直接用的sqlite,所以没有做mysql
注意事项
1、nginx配置php的注意事项
location ~ \.php$ { fastcgi_pass php74:9000; #注意这里php74就是nginx启动地方-—link给hostname fastcgi_index index.php; #fastcgi_param SCRIPT_FILENAME /www/$fastcgi_script_name; fastcgi_param SCRIPT_FILENAME /data/www/myblog/$fastcgi_script_name; include fastcgi_params; }
2、注意启动顺序 应该先启动php再启动nginx
3、由于我的服务器万年不重启,所以没有写删除容器的操作
如果已经运行过容器,再次使用脚本启动会提示容器已存在,按实际情况执行以下命令或者把命令加入到启动脚本中
#docker rm nginx-main #docker rm php74-fpm