首先安装docker,按照官网Install Docker Engine on CentOS | Docker Documentation
下载好需要的镜像,一般默认拉取就行了,都是最新的
docker images
先创建网络
首先启动nginx
docker run -p 80:80 -d --name nginx -v /www:/usr/share/nginx/html:cached --network web --ip 172.18.0.2 --privileged=true nginx
-p 80:80 端口映射
--name nginx 容器名称
-v /www:/usr/share/nginx/html:cached 将本地/www目录映射到容器内的/usr/share/nginx/html目录,增加容器缓存
-d 后台运行
--network web 网络
--ip 172.18.0.2 容器ip
--privileged=true root权限
进入项目目录添加index.html
echo hellow world! > index.html
启动php-fpm
docker run -p 9000:9000 -d --name php -v /www:/usr/share/nginx/html:cached --network web --ip 172.18.0.3 --privileged=true php:7.4-fpm
-p 9000:9000 端口映射
--name php 容器名称
-v /www:/usr/share/nginx/html:cached 文件夹映射
-d 后台运行
--network web 网络
--ip 172.18.0.3 容器ip
--privileged=true root权限
配置nginx配置文件
docker cp nginx:/etc/nginx/conf.d/default.conf ./default.conf
将容器内默认配置文件复制出来后修改关键部分
把配置文件复制进去,重启
docker cp ./default.conf nginx:/etc/nginx/conf.d/default.conf
docker restart nginx
在www文件夹新建index.php输出phpinfo(),查看浏览器
echo '<?php echo phpinfo();' > index.php
启动mysql
安装php扩展
首先进去容器查看已经安装的扩展
安装redis扩展参考
【docker】为docker下的php容器安装php-redis扩展【编译安装】 - 带着梦逃亡 - 博客园
安装mysql扩展直接执行命令
docker-php-ext-install pdo_mysql
启动mysql
docker run -d --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 --network web --ip 172.18.0.4 --privileged=true mysql
-p 3306:3306 端口映射
--name mysql 容器名称
-e MYSQL_ROOT_PASSWORD=123456 数据库密码
-d 后台运行
--network web 网络
--ip 172.18.0.4 容器ip
--privileged=true root权限
修改mysql远程权限,连贯操作,直接粘贴
docker exec -it mysql bash
mysql -uroot -p
use mysql
select host,user from user;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
flush privileges;
项目文件中的数据库地址需要更改为容器的ip,以laravel为例
运行redis
docker run -d --name redis -p 6379:6379 --network web --ip 172.18.0.5 --privileged=true redis
-p 6379:6379 端口映射
--name redis容器名称
-d 后台运行
--network web 网络
--ip 172.18.0.5 容器ip
--privileged=true root权限