首页
友链
关于
留言板
推荐
电脑壁纸
在线音乐
解压游戏
Search
1
【菜谱】咖喱鸡肉盖饭
3,704 阅读
2
pycharm生成requirements.txt
1,103 阅读
3
ubuntu安装docker和docker-compose
1,018 阅读
4
celery worker启动报错:AttributeError: 'str' object has no attribute 'items'
739 阅读
5
django后台管理界面美化
638 阅读
学习
python
linux
java
菜谱
随笔
登录
Search
标签搜索
笔记
linux
python
java
实用教程
原创
编程
多线程
docker
tomcat
thread
锁
线程同步
ssm
maven
Markdown
Windows
菜谱
生活笔记
django
Dawn
累计撰写
39
篇文章
累计收到
8
条评论
首页
栏目
学习
python
linux
java
菜谱
随笔
页面
友链
关于
留言板
推荐
电脑壁纸
在线音乐
解压游戏
搜索到
2
篇与
docker
的结果
2021-02-26
ubuntu操作系统使用docker容器搭建typecho博客详细教程
1.安装docker和docker-compose这一步不再赘述,详情参考博客文章 ubuntu安装docker和docker-compose2.需要的镜像今天笔者这里使用以下三个镜像:nginxdawn/php:7.2.3-fpmmysql:5.7(PS:笔者这样做是为了留出单独的php和nginx环境以便后续使用,如果直接使用typecho镜像会更加简单,有兴趣的可以研究一下, 这里不做赘述!)其中nginx和mysql:5.7为官方镜像,dawn/php:7.2.3-fpm是在官方的基础上添加了pdo_mysql(这样可以使用mysql作为博客的数据库)dawn/php:7.2.3-fpm的Dockerfile如下:FROM php:7.2.3-fpm LABEL maintainer="dawn" \ email="****@qq.com" \ version="7.2.3" RUN apt-get update \ && docker-php-ext-install pdo_mysql \ && echo "output_buffering = 4096" > /usr/local/etc/php/conf.d/php.ini3.配置新建blog文件夹,其目录结构如下:|--mysql //mysql持久化目录 | └──conf //mysql配置目录 | |--data //mysql数据库目录 | |--db //单独建的存放sql文件的目录 | |--logs //mysql日志目录 |--nginx //nginx 配置文件的持久化目录 | └──conf //nginx配置目录 | └──nginx.conf //nginx全局配置文件 | |--blog.conf //博客站点配置文件 | |--logs //nginx日志目录 |--ssl //SSL证书目录 |--www //php站点根目录 |--tomcat //tomcat持久化目录(博客用不到,不展开叙述) |--docker-compose.yml //docker-compose 配置文件 |--Dockerfile //Dockerfile文件 |--mysql.env //mysql配置信息3.1 配置docker-compose.ymlversion: '3' services: nginx: image: nginx:latest container_name: nginx ports: - "80:80" - "443:443" volumes: - ./www/:/var/www/html - ./ssl/:/var/www/ssl - ./nginx/blog.conf:/etc/nginx/conf.d/blog.conf - ./nginx/nginx.conf:/etc/nginx/nginx.conf - ./nginx/logs:/var/log/nginx restart: always depends_on: - fpm - mysql environment: - TZ=Asia/Shanghai fpm: build: ./ image: dawn/php:7.2.3-fpm container_name: php_fpm ports: - "9000:9000" volumes: - ./www/:/var/www/html restart: always depends_on: - mysql environment: - TZ=Asia/Shanghai mysql: image: mysql:5.7 container_name: mysql ports: - "3306:3306" volumes: - ./mysql/data:/var/lib/mysql - ./mysql/logs:/var/log/mysql - ./mysql/conf:/etc/mysql/conf.d restart: always env_file: - mysql.env其中:version 指定docker-compose版本image 指定镜像名称build 指定Dockerfile上下文目录ports 指定端口映射container_name 指定容器名字volumes 指定文件挂载映射depends_on 指定服务启动时的先后顺序,指定的服务会先于当前服务启动3.2 配置nginx全局配置文件nginx.conf,参考内容如下:user www-data; worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; include /etc/nginx/conf.d/*.conf; }站点配置目录blog.conf,参考内容如下:server { listen 80; server_name dawnsite.cn www.dawnsite.cn; # 更换为你的站点域名 # http重定向到https return 301 https://$host$request_uri; } server { listen 443; server_name dawnsite.cn www.dawnsite.cn; # 更换为你的站点域名 root /var/www/html/build; # 有的为/var/www/html,这里视项目情况更改 index index.php index.html index.htm; ssl on; ssl_certificate /var/www/ssl/4884437_dawnsite.cn.pem; # 更换为你的站点证书 ssl_certificate_key /var/www/ssl/4884437_dawnsite.cn.key; # 更换为你申请的私钥 ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; # 伪静态规则 if (-f $request_filename/index.html){ rewrite (.*) $1/index.html break; } if (-f $request_filename/index.php){ rewrite (.*) $1/index.php; } if (!-f $request_filename){ rewrite (.*) /index.php; } # 非www开头->www开头 更换为你的站点域名 if ($host ~ '^dawnsite.cn'){ return 301 https://www.dawnsite.cn$request_uri; } location ~ \.php$ { fastcgi_pass fpm:9000; fastcgi_index index.php; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } 3.3 配置mysqlmysql配置信息mysql.env,参考内容如下:# MySQL的root用户默认密码,这里自行更改 MYSQL_ROOT_PASSWORD=password # MySQL镜像创建时自动创建的数据库名称 MYSQL_DATABASE=typecho # MySQL镜像创建时自动创建的用户名 MYSQL_USER=user # MySQL镜像创建时自动创建的用户密码 MYSQL_PASSWORD=password # 时区 TZ=Asia/Shanghai4.安装4.1 编排容器在blog目录下执行以下命令:docker-compose up -d查看进程docker-compose ps4.2 安装typecho4.2.1 下载typecho容器编排成功后,进入blog目录下的www目录开始下载typecho操作wget http://typecho.org/downloads/1.1-17.10.30-release.tar.gz解压tar -xzvf 1.1-17.10.30-release.tar.gz解压后所有文件会在一个build文件夹内,这也就是我为什么在blog.conf中那样配置root的原因,当然你也可以把他从build移出来放到www目录下,这样blog.conf就会变成大多数人说的那样啦4.2.2 配置typecho浏览器输入域名URL,进入typecho安装页面PS:数据库地址需填入mysql镜像的名称(与docker-compose.yml中的配置相对应),数据库名与 mysql.env 中创建的数据库名一致如果出现以上界面,只需要按照提示在你的typecho软件目录下新建config.inc.php文件,并写入内容即可5.博客迁移迁移时只需要把整个blog目录打包传输至安装有docker和docker-compose的新服务器,然后重新编排即可docker-compose up -d如果是将原有博客结构升级为docker容器的话,只需要将你的typecho文件夹复制到www文件夹中,然后将你的数据库sql文件导入到新建的数据库内即可!PS:记得修改config.inc.php数据库配置和mysql.env对应噢,或者你直接把config.inc.php删掉,重新初始化一下6.参考资料通过docekr搭建typecho详细教程
2021年02月26日
350 阅读
0 评论
0 点赞
2021-02-26
ubuntu安装docker和docker-compose
1.前提(同步源,更新依赖)apt-get update apt upgrade2.安装dockerapt install docker apt install docker.io3.安装docker-composecurl -L "https://github.com/docker/compose/releases/download/1.25.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose如果慢也可以换一个curl -L "https://get.daocloud.io/docker/compose/releases/download/1.27.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose然后修改docker-compose文件夹权限chmod +x /usr/local/bin/docker-compose
2021年02月26日
1,018 阅读
0 评论
1 点赞