docker 安装 lnmp
标签(空格分隔): php,docker
安装MySql
1 搜索镜像
docker search mysql
2 安装镜像
docker pull mysql:5.7
3 创建镜像并运行
docker run -d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=root --name mymysql mysql:5.7
参数:
-d 守护进程
-p 主机对容器的端口映射
-e 设置环境变量 mysqlroot用户的初始密码
--name 容器名字 但是必须是唯一
4 进入容器
docker exec -it mymysql /bin/bash
参数:
-t 在容器里模拟终端
-i 对容器内容标准输出进行交互
5 进入mymysql容器进行用户授权操作
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'root';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'127.0.0.1' IDENTIFIED BY 'root';
FLUSH PRIVILEGES;
安装PHPFPM
1 拉取镜像
docker pull php:7.1-fpm
2 创建容器
[创建主机映射容器的配置文件]
mkdir wwww
mkdir -p nginx/conf.d/default.conf
mkdir -p php/php.ini
docker run -d -p 9000:9000 -v $PWD/www:/usr/share/nginx/html -v $PWD/nginx/conf.d:/etc/nginx/conf.d --link mymysql:mysql --name myphpfpm php:7.1-fpm
参数:
-d 守护进程
-p 端口映射
-v 添加映射目录
--name 制定容器名称
--link 与另外一个容器建立起来联系 这样我们就可以在当前容器中去使用另外一个容器里的服务
3 在docker中安装php扩展
进入docker容器
docker exce -it myphpfpm /bin/bash
安装php扩展
docker-php-ext-install pdo_mysql
查看当前php安装成功的扩展
php -m
退出修改主机刚刚创建的php.ini中添加
extension=php_pdo.dll
安装Nginx
1 拉去镜像
docker pull nginx
2 添加配置文件
server {
listen 80 default_server;
server_name _;
root /usr/share/nginx/html; # 主机创建的目录
location / {
index index.html index.htm index.php;
autoindex off;
}
location ~ .php(.*)$ {
root /usr/share/nginx/html/;
fastcgi_pass myphpfpm:9000; # 容器名称加端口
fastcgi_index index.php;
fastcgi_split_path_info ^((?U).+.php)(/?.+)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
include fastcgi_params;
}
}
3 创建运行nginx
docker run -p 8080:80 -d -v $PWD/www:/usr/share/nginx/html -v $PWD/nginx/conf.d:/etc/nginx/conf.d --name mynginx nginx
参数:
-p 端口映射
-d 守护进程
-v 目录映射
基本命令
1 查看镜像
docker images
2 查看进程
docker ps
3 启动镜像
docker start 镜像名称[mymysql|myphpfpm|mynginx]
3 停止镜像
docker stop 镜像名称[mymysql|myphpfpm|mynginx]
4 杀死镜像
docker kill 镜像名称[mymysql|myphpfpm|mynginx]
5 重启镜像
docker restart 镜像名称[mymysql|myphpfpm|mynginx]
6 删除景象
docker rm 镜像名称[mymysql|myphpfpm|mynginx]