1 # 一、数据库搭建(MySQL)
2 # 1.拉取mysql镜像
3 docker pull mysql:5.6.50
4 # 2.启动镜像:--name(容器名), MYSQL_ROOT_PASSWORD指定root用户的密码,MYSQL_DATABASE指定创建镜像的时候自动创建的数据库名,-d后台运行
5 docker run --name mysql -e MYSQL_ROOT_PASSWORD=123123 -e MYSQL_DATABASE=DBname -d mysql:5.6.50
6 # 3.从镜像容器里备份数据库,你也可以通过-U指定备份哪个数据库
7 docker exec mysql sh -c 'exec mysqldump --all-databases -uroot -p"123123"' > ~/all-databases.sql
8 # 4.恢复数据库到容器:-u指定mysql用户,-p指定密码,-D指定需要恢复的数据库名
9 docker exec -i some-mysql sh -c 'exec mysql -uroot -p"123123" -DDBname' < ~/b2b_20220501_hbh_20220620_160337.sql
10 # 5.其他操作:
11 # 进入容器:docker exec -it --user root mysql(容器名) /bin/sh
12 # 连接数据库:mysql -u root -p
13 # 查询所有数据库名:show DATABASES;
14 # 选择数据库:use DBname;
15 # 查询数据库中所有表:SELECT TABLE_NAME 表名,TABLE_COMMENT 表注释,TABLE_ROWS 数据量 FROM information_schema.tables ORDER BY TABLE_NAME;
16 # 查询容器IP地址:docker inspect 容器ID或容器名 |grep '"IPAddress"'
17 # 二、php环境搭建
18 # 1.编写dockerfile
19 # php:5.6-fpm镜像并不包含gd、mysqli拓展内容,所以可以自己制作镜像把依赖提前写进去,这样就不用到容器了去手动安装了
20 FROM php:5.6-fpm
21 RUN apt-get update && apt-get install -y \
22 libfreetype6-dev \
23 libjpeg62-turbo-dev \
24 libpng-dev \
25 && docker-php-ext-configure gd --with-freetype --with-jpeg \
26 && docker-php-ext-install -j$(nproc) gd \
27 && docker-php-ext-install mysql \
28 && docker-php-ext-install mysqli
29 RUN docker-php-ext-configure gd --enable-gd-native-ttf --with-freetype-dir=/usr/include/freetype2 --with-png-dir=/usr/include \
30 && docker-php-ext-install gd
31 RUN apt-get update && apt-get install -y libmemcached-dev zlib1g-dev \
32 && pecl install memcached-2.2.0 \
33 && docker-php-ext-enable memcached
34 # 2.制作镜像:
35 docker image build -t myphp:v1 -f php.Dockerfile(这个文件内容就是上面的) .
36 # 3.启动镜像
37 # 你的php项目目录:我这里是/home/pc1/docker/home目录下的home目录(你们项目没有特殊要求大可不必加),这个目录需要在容器运行的时候配置映射,在nginx配置fastcgi解释代理器(也就是当前容器)的时候需要配置
38 # 项目文件夹权限:chmod -R 766 home/runtime
39 # -v(目录映射) -p端口映射 --name(指定容器名) -d(后台运行) --privileged(设置为true开启更多权限)
40 docker run -d -v /home/pc1/docker/home:/var/www/html -p 9000:9000 --privileged=true --name xqw_php myphp:v1
41
42 # 三、nginx环境搭建
43 # 如果你要自己搭建的话也简单:https://www.cnblogs.com/watermeloncode/p/15476317.html
44 # 你也可以通过docker去做:/home/pc1/docker/home是我们的php项目路径、~/nginx.conf是我们nginx配置代理文件,-p端口映射
45 docker run --name some-nginx -v /home/pc1/docker/home:/usr/share/nginx/html:ro -v ~/nginx.conf:/etc/nginx/nginx.conf:ro -d -p 8080:80 nginx
46 # 最重要的nginx.conf配置
47 location / {
48 if (!-e $request_filename){
49 # 这里的/home就是我多加一层目录的原因
50 rewrite ^/home/index.php(.*)$ /home/index.php?p=$1 last; # 重定向到index.php((.*)$的值可能是目录或者其他任何东西,都交给index.php去处理)
51 rewrite ^/home/(.*)$ /home/index.php?p=$1 last; # 这里重定向是为了,你访问/home/的时候也默认让index.php去处理
52 }
53 }
54
55 location ~ \.php$ { # 配置php代理解释器
56 fastcgi_pass localhost:9000; # 指定代理解释器。也就是我们开启的php容器,映射的9000端口
57 fastcgi_index index.php; # 默认php文件
58 fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name; # 这里的/var/www/html是php容器启动是映射的值
59 include fastcgi_params;
60 }
1 # 伪静态配置
2 # 在php项目文件夹根目录下新增文件:.htaccess
3 <IfModule mod_rewrite.c>
4 Options +FollowSymlinks
5 RewriteEngine on
6 RewriteCond %{REQUEST_FILENAME} !-d
7 RewriteCond %{REQUEST_FILENAME} !-f
8 RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
9 </IfModule>

有空再来整理成yml

Docker Php + mysql + nginx的更多相关文章

  1. docker部署mysql,nginx,php,并上传镜像到私有仓库

    前言 最近公司准备把现有环境全部搞成容器化,所以笔者就先了解了一下docker,并搞了一搞,并把自己搞的过程记录下来.话不多说直接开干 环境说明 Centos7 Docker version 18.0 ...

  2. docker完整配置nginx+php+mysql

    首先了解一个方法: 使用docker exec进入Docker容器 docker在1.3.X版本之后还提供了一个新的命令exec用于进入容器,这种方式相对更简单一些,下面我们来看一下该命令的使用: s ...

  3. 【原创】运维基础之Docker(2)通过docker部署zookeeper nginx tomcat redis kibana/elasticsearch/logstash mysql kafka mesos/marathon

    通过docker可以从头开始构建集群,也可以将现有集群(配置以及数据)平滑的迁移到docker部署: 1 docker部署zookeeper # usermod -G docker zookeeper ...

  4. win7下docker环境搭建nginx+php-fpm+easyswoole+lavarel+mysql开发环境

    win7环境基础在上一篇win7下docker环境搭建nginx+php-fpm+easyswoole开发环境中已经详细叙述搭建完成 本篇文章将叙述如何在上述基础上搭建laravel开发环境,这个其实 ...

  5. 原lnmp环境服务器升级为mysql+nginx+php单个docker容器构建的lnmp环境

    时间:2018年2月 一.项目背景 我单位现web服务架构为lnmp环境,服务器软件.硬件升级部署难:同时开源软件日新月异,考虑到技术升级,领导决定服务器架构整体升级为容器架构,维护性.移植性强. 二 ...

  6. 云服务器配置 docker java mysql mongodb redis nginx 环境

    磁盘挂载 fdisk -l #查看磁盘列表 mkfs.ext4 /dev/vdb #格式化磁盘 mount /dev/vdb /data #挂载磁盘在/data echo '/dev/vdb /dat ...

  7. Docker安装mysql、nginx、redis、tomcat

    拉取mysql 5.7官方镜像 docker pull mysql:5.7 启动容器 docker run --name mysql5.7 -p 3306:3306 -e MYSQL_ROOT_PAS ...

  8. Docker安装Mysql和Nginx

    1. 序言 将应用容器化更方便于管理,昨天辛辛苦苦安装在宿主机上的,今天狠心重置服务器,学下docker练练手. 2. Get start 2.1 安装Docker 公司的云用的是ubuntu,我自己 ...

  9. Docker + node(koa) + nginx + mysql 线上环境部署

    在上一篇 Docker + node(koa) + nginx + mysql 开发环境搭建,我们进行了本地开发环境搭建 现在我们就来开始线上环境部署 如果本地环境搭建没有什么问题,那么线上部署的配置 ...

随机推荐

  1. vue设计模式

    vm 的设计模式. mvvm 是 model-view-viewModel 的简写. model 是数据模块,view 是渲染视图,viewModel 是沟通视图和数据模块的桥梁. vue 中使用了哪 ...

  2. 做一个能对标阿里云的前端APM工具(下)

    上篇请访问这里做一个能对标阿里云的前端APM工具(上) 样本多样性问题 上一小节中的实施方案是微观的,即单次性的.具体的.但是从宏观上看,我需要保证性能测试是公允的,符合大众预期的.为了达到这种效果, ...

  3. SQLServer2008中的Merge

    SqlServer2008 +  中的 Merge Merge:  合并   融合 SqlServer2008 中的Merge 用于匹配两种表中的数据,根据源表和目标表中的数据的比较结果对目标表进行对 ...

  4. HYPERMESH-NASTRAN梁的方向与偏置

    Nastran关于梁的定义 我们知道,在定义梁单元时,一般需要定义单元的方向,或者说是单元的局部坐标系.对于Nastran内CBAR单元来说,梁轴向为X方向,我们需要给出向量\(\overrighta ...

  5. Go微服务框架go-kratos实战03:使用 gorm 实现增删改查操作

    一.简介 在上一篇文章 go-kratos实战02 中,详细介绍了用 kratos 编写项目代码的步骤.这篇就在上篇基础上,再结合 Go 数据库操作库 gorm 一步一步来实现一个简单的增删改查操作. ...

  6. 渗透测试之sql注入验证安全与攻击性能

    由于渗透测试牵涉到安全性以及攻击性,为了便于交流分享,本人这里不进行具体网址的透露了. 我们可以在网上查找一些公司官方网站如(http://www.XXXXXX.com/xxxx?id=1) 1.拿到 ...

  7. npm init cabloy背后的故事

    背景 我们知道许多框架会提供一个脚手架工具,我们先下载安装脚手架工具,然后再通过脚手架命令行来创建项目.在npm@6.1.0中引入了npm init <initializer>的语法.简单 ...

  8. golang的defer踩坑汇总

    原文链接:http://www.zhoubotong.site/post/50.html defer语句用于延迟函数调用,每次会把一个函数压入栈中,函数返回前再把延迟的函数取出并执行.延迟函数可以有参 ...

  9. BUUCTF-snake

    snake 这是我最想吐槽的一个题目,搞这个蛇在这里.我看的这个图就头皮发麻. 最不愿意做的题,建议以后出题能不能搞个正常的啊. 16进制打开发现压缩包,binwalk提取,得到三个文件 key中是b ...

  10. Windows-VS2017创建.NET项目

    首先新建->项目 选择如下, 注意要选择.NET Framework4.x 选择对应的项目类型 建议选上Web窗体(如果是用于实验的话) 完成后进行测试 如果出现 HTTP Error 403. ...