docker mysql开发环境_Docker搭建开发环境(Nginx+MySQL+PHP)

注意事项

1、像MySQL配置文件、Nginx配置文件、网站根目录这种比较经常操作的需要先使用 docker cp 将文件从容器里复制到主机目录,docker run的时候直接挂载目录就可以了

2、docker run MySQL和Nginx的时候注意使用 --link实现容器之间通信

3、运行容器的时候注意使用 --ip 固定容器IP

安装 MySQL

mysql 需要挂载的目录

/var/lib/mysql

/etc/mysql/conf.d

挂载详情

# 主机目录:容器目录

~/web/mysql/data:/var/lib/mysql

~/web/mysql/conf:/etc/mysql/conf.d

文件备份

将mysql的配置文件,自带数据库,sock配置 复制到主机目录

# docker cp container_ID:容器目录 主机目录

docker cp 2d19ae0acd5d:/var/lib/mysql ~/web/mysql/data

docker cp 2d19ae0acd5d:/etc/mysql/conf.d ~/web/mysql/conf

目录分解

docker run

--name mysql # 指定容器名称

-e MYSQL_ROOT_PASSWORD=root # 初始化root用户的密码为root

-p 3307:3306 # 将容器的3306端口映射到主机的3307端口

--privileged=true # 给容器加上特定的权限,否则可能会出现常见容器失败的情况

-v ~/web/mysql/data:/var/lib/mysql # 挂载目录 mysql数据文件

-v ~/web/mysql/conf:/etc/mysql/conf.d # 挂载目录 mysql配置文件

--restart=always # 设置失败自动重启 可写为 --restart=on-failure:5 最多重启五次

-d mysql:5.7

命令实现

docker run --name mysql -e MYSQL_ROOT_PASSWORD=root -p 3307:3306 --privileged=true -v ~/web/mysql/data:/var/lib/mysql -v ~/web/mysql/conf:/etc/mysql/conf.d --restart=always -d mysql:5.7

安装PHP

需要挂载的目录

/var/www/html

挂载详情

# 主机目录:容器目录

~/web/www/:/var/www/html

文件备份

# docker cp container_ID:容器目录 主机目录

docker cp 7da668050b8a:/var/www/html /docker-data/web/www

目录分解

docker run

--name php

-p 9000:9000

--privileged=true

-v ~/web/www/:/wwwroot

--link mysql:mysql # 使用link实现两个容器之间的通信

--restart=always

-d

php:7.2-fpm

命令实现

docker run --name php -p 9000:9000 --privileged=true -v ~/web/www/:/wwwroot --link mysql:mysql --restart=always -d php:7.2-fpm

扩展安装

# 进入容器执行命令安装扩展

docker-php-ext-install [扩展名称]

# 安装GD库

apt update #更新软件源

apt install -y libwebp-dev libjpeg-dev libpng-dev libfreetype6-dev #安装各种库

docker-php-source extract #解压源码

cd /usr/src/php/ext/gd #gd源码文件夹

docker-php-ext-configure gd --with-webp-dir=/usr/include/webp --with-jpeg-dir=/usr/include --with-png-dir=/usr/include --with-freetype-dir=/usr/include/freetype2 #准备编译

docker-php-ext-install gd #编译安装

php -m | grep gd

docker restart [container ID]#重启容器

安装Nginx

需要挂载的目录

/usr/share/nginx/html

/etc/nginx/conf.d

挂载详情

# 主机目录:容器目录

~/web/www:/usr/share/nginx/html

~/web/nginx/conf.d:/etc/nginx/conf.d

文件备份

# docker cp container_ID:容器目录 主机目录

docker cp e0babc8a32ad:/usr/share/nginx/html ~/web/www

docker cp e0babc8a32ad:/etc/nginx/conf.d ~/web/nginx/conf.d

目录分解

docker run

--name nginx

-p 8080:80

--privileged=true

-v ~/web/www:/wwwroot

-v ~/web/nginx/conf.d:/etc/nginx/conf.d

--link php:php

--restart=always

-d

nginx

命令实现

docker run --name nginx -p 8080:80 --privileged=true -v ~/web/www:/wwwroot -v ~/web/nginx/conf.d:/etc/nginx/conf.d --link php:php --restart=always -d nginx

Nginx配置文件参考

server {

listen 80;

server_name tplay.yulongcode.com;

root /wwwroot/tplay/public; # 项目在容器里的目录

index index.php index.html index.htm;

location / {

if (!-e $request_filename){

rewrite ^(.*)$ /index.php?s=$1 last; break;

}

}

error_page 500 502 503 504 /50x.html;

location ~ \.php$ {

fastcgi_pass PHP容器IP:PHP端口;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值