2019-10-30 18:24:16
围观(3103)
一直都想折腾学习下 docker ,但都因懒而放弃。
最近腾讯云给了台一个月的服务器,放着吃灰不如就用这台服务器折腾学习下。
顺便将 docker 搭建 lnmp 环境的过程记录下。使用的服务器是 CentOS 7.3
一、安装 docker
yum install docker
开启 docker 并设置为开机自启
systemctl start docker.service systemctl enable docker.service
完成后可执行命令查看 docker 版本。
docker -—version
输出版本信息,则为安装成功:
Docker version 1.13.1, build 7f2769b/1.13.1
二、拉取镜像
(1) 获取 mysql 的镜像
docker pull mysql:5.7
创建 mysql 容器
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=bubaijuncom --name test_mysql mysql:5.7
命令中的 bubaijuncom 为需要设置的密码,test_mysql 为需要设置的名称。
(2) 获取 php 7.2 的镜像
docker pull php:7.2-fpm
创建 php-fpm 容器
docker run -d -v /var/nginx/www/html:/var/www/html -p 9000:9000 --link test_mysql:mysql --name test_phpfpm php:7.2-fpm
(3) 进入容器
进入到PHP容器
docker exec -it test_phpfpm /bin/bash
就会到了 var/www/html 目录,执行命令新建一个PHP文件 test.php:
touch test.php
然后退出容器
exit
到 var/nginx/www/html 目录下也会出现了个 test.php。执行命令:
vim test.php
给 test.php 写入代码:
<?php phpinfo();
(4) 安装 PHP 扩展
docker-php-ext-install pdo_mysql
注意,使用上面这个命令安装扩展,需要先进入到容器,也就是需要执行
docker exec -it test_phpfpm /bin/bash
进入到容器的目录才能完成安装扩展。
还有另外的安装方式,比如安装 php-redis
pecl install redis && docker-php-ext-enable redis
执行命令后会出现需要应答,可输入 no 或者直接空格回车。
(5) 获取 Nginx 镜像
docker pull nginx
如果获取镜像出现报错 not found: does not exist or no pull access 那就是没找到这个镜像,可以使用命令查找可用的镜像:
docker search nginx
创建 Nginx 容器
docker run -d -p 80:80 --name test_nginx -v /var/nginx/www/html:/var/www/html --link test_phpfpm:phpfpm --name test_nginx nginx
另外,如果需要查找已经获取的镜像,可执行命令:
docker images
(6) 配置 Nginx 支持 PHP
进入 Nginx 容器
docker exec -it test_nginx /bin/bash
cd 到 conf 配置文件目录
cd etc/nginx/conf.d/
修改配置文件 default.conf
vim default.conf
修改文件代码块(开头的井号都删掉,几个模块修改为下面这样):
location = / { root /var/www/html/; index index.php index.htm index.html; } location ~ .php$ { root /var/www/html; fastcgi_pass phpfpm:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
修改配置后,需要重新加载 Nginx:
nginx -s reload
最后退出容器
exit
至此,docker 环境已经配置完毕,访问服务器外网 IP 加 /test.php 即可看到环境信息。
三、常用命令
删除容器
docker rm id
ID 为容器的ID
删除镜像
docker rmi id
ID 为镜像的ID
查看所有运行的容器列表(可查看到容器ID)
docker ps -a
查看已经安装的镜像(可查看到镜像ID)
docker images
搜索可获取的镜像
docker search name
name 为镜像名称
本文地址 : bubaijun.com/page.php?id=144
版权声明 : 未经允许禁止转载!
上一篇文章: 分享创造-使用PHP开发一键获取网页所有图片
下一篇文章: CentOS7安装PHP7.3和MySQL8.0