本文共 4911 字,大约阅读时间需要 16 分钟。
docker安装nginx
1 |
|
2.拉取官方的镜像
1 |
|
3.创建并运行容器,绑定映射端口
1 |
|
--name 这里是别名,使用docker ps 会最后显示names 这个名字 可以通过 docker
exec
-it name名字 bash 进入这个容器 修改配置 修改后使用 exit 退出 这个后面进行配置文件修改用的上
-p 80:80 第一个80是服务器的端口,第二个80是docker容器端口,
-d 要运行的容器名称 这里是nginx
以上命令开启 nginx 进行配置文件修改 需要每次进入容器中
如果不想每次进入容器修改配置文件 也可以将容器里的配置文件 包括静态页面访问路径 映射到宿主机上面的
就在镜像run的时候 加上参数 -v :绑定一个卷
-v 宿主机的路径:容器路径
宿主机路径必须存在 如果你映射配置文件 nginx.conf 宿主机上不存在 需要自己手动创建 然后填写相对应的配置文件内容 然后再执行命令
比如所有关于web的配置信息都在一个目录中 你就手动自己建个目录 /mydata/nginx/ 或 /mydata/php 或 /mydata/redis 根据自己习惯创建
例如:docker run -d -p 80:80 --name nginx --privileged=true -v /mydata/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /mydata/nginx/html:/usr/share/nginx/html -v /mydata/nginx/log:/var/log/nginx nginx
上面运行报错了,这里是以前装了nginx,通过docker ps -a 查看
现在进行清除命令:
1 |
|
现在运行第三步 ,会成功。
1 |
|
此刻访问IP,nginx 正常运行起来
docker安装php
1.查找Docker Hub上的php镜像
1 |
|
2.拉取官方的镜像,标签为 php 冒号后面可跟版本号 php 截图中选择的phpdockerio/php72-fpm 这个一般不是官方的 我建议直接选择第一个 php
1 |
|
3.现在需要查看nginx 默认运行的路径 先进入nginx 容器 再找到/etc/nginx/conf.d/default.conf 查看默认访问路径
1 2 |
这个命令必须这个镜像跑起来后才能 进到这个容器里进行配置文件修改 如果不想每次进入容器修改配置文件 也可以将容器里的配置文件 包括静态页面访问路径 映射到宿主机上面的 就在镜像run的时候 加上参数 -v :绑定一个卷 -v 宿主机的路径:容器路径 宿主机路径必须存在 如果你映射配置文件 nginx.conf 宿主机上不存在 需要自己手动创建 然后填写相对应的配置文件内容 然后再执行命令 例如:docker run -d -p 80:80 --name nginx --privileged=true -v /mydata/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /mydata/nginx/html:/usr/share/nginx/html -v /mydata/nginx/log:/var/log/nginx nginx |
4.创建并运行php容器
1 |
|
5.指定映射php文件目录为 /mydata/nginx/php 就在这个文件下创建个 index.php文件 随便写一段php代码
6.现在就是要nginx 配置访问php 文件了,如果直接访问就会是404
6.1 获取到phpfpm 这个容器的ip
1 |
|
最后这个内网ip是:172.17.0.3,这个ip 会配置到/etc/nginx/conf.d/default.conf
6.2 配置nginx 支持php 文件访问 如果上面在启动 nginx 已经映射了nginx的配置文件 则不需要再进入容器中修改 直接去映射的那个文件进行修改
1 2 3 4 5 6 |
|
在代码里面加入 9000 端口这段代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
|
安装redis扩展
1.进入php容器
docker exec -it myFpm bash
2.如下操作挨个去执行:
curl -L -o /tmp/redis.tar.gz https://github.com/phpredis/phpredis/archive/3.1.3.tar.gz
tar xfz /tmp/redis.tar.gz
rm -r /tmp/redis.tar.gz
mkdir -p /usr/src/php/ext
mv phpredis-3.1.3 /usr/src/php/ext/redis
docker-php-ext-install redis
重启php
docker restart phpfpm
6.3 重启nginx ,即可访问index2.php
1 |
|
docker安装mysql
1.查找镜像:
docker search mysql
也可以去官网查看镜像tag,选择自己需要的版本,否则会下载最新版本:https://hub.docker.com/_/mysql/
2.下载镜像(如上一步,可以指定想要的版本,不指定则为最新版):
docker pull mysql
3.通过镜像创建容器并运行:
docker run -p 3306:3306 --name mymysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql
-
-p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口。
-
-v -v $PWD/conf:/etc/mysql/conf.d:将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf。
-
-v $PWD/logs:/logs:将主机当前目录下的 logs 目录挂载到容器的 /logs。
-
-v $PWD/data:/var/lib/mysql :将主机当前目录下的data目录挂载到容器的 /var/lib/mysql 。
-
-e MYSQL_ROOT_PASSWORD=123456:初始化 root 用户的密码。
此时,用navicat for mysql连接mysql发现报错:Client does not support authentication protocol requested by server。。。
解决方案:
进入容器:
docker exec -it 62349aa31687 /bin/bash
进入mysql:
mysql -uroot -p
授权:
mysql> GRANT ALL ON *.* TO 'root'@'%';
刷新权限:
mysql> flush privileges;
更新加密规则:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
更新root用户密码:
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
刷新权限:
mysql> flush privileges;
以上是MySQL安装的全过程,目前的环境搭建已经全部完成了。
转载地址:https://jsonll.blog.csdn.net/article/details/113178708 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!