docker 安装 lnmp
标签(空格分隔): php,docker
安装MySql
1 搜索镜像docker search mysql2 安装镜像docker pull mysql:5.73 创建镜像并运行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-fpm2 创建容器[创建主机映射容器的配置文件]mkdir wwwwmkdir -p nginx/conf.d/default.conf mkdir -p php/php.inidocker 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 nginx2 添加配置文件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 images2 查看进程
docker ps3 启动镜像
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]