Docker安装LNMP环境
1、安装Docker
1
2
3
4
|
yum install docker # 启动并加入开机启动 sudo systemctl start docker sudo systemctl enable docker |
2、 安装nginx
1
2
3
4
5
|
# 拉取管方镜像 docker pull nginx # 创建并运行容器,映射端口为80 docker run --name nginx -p 80:80 -d nginx # 访问IP,nginx能够正常运行 |
3、 安装PHP
1
2
|
# 拉取管方镜像,这里拉取的是php7,根据自己所需拉取 docker pull phpdockerio /php7-fpm |
4、 查看nginx运行路径
1
2
3
4
5
6
7
8
|
# 进入nginx容器 docker exec -it nginx bash # 查看nginx配置文件 cat /etc/nginx/conf .d /default .conf -n # 找到location / { # root /usr/share/nginx/html;#这是nginx默认运行路径 # index index.html index.html; # } |
5、 创建并运行php容器
1
|
docker run --name phpfpm -d 9000:9000 - v /var/www/html : /usr/share/nginx/html -d phpdockerio /php7-fpm |
6、 进入php容器,创建index2.php测试文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
# 进入php容器 docker exec -it phpfpm bash # 进入运行目录 cd /usr/share/nginx/html # vim 创建index2.php # 因为docker没有安装vim,此时运行 apt-get update apt-get install vim cat << EOF > /root/ .vimrc : set encoding=utf-8 : set fileencodings=ucs-bom,utf-8,cp936 : set fileencoding=gb2312 : set termencoding=utf-8 EOF # 创建index2.php vim index2.php <?php echo 1; ?> # esc :wq 保存退出 |
7、 获取到phpfpm 这个容器的ip
1
2
|
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' phpfpm # 172.17.0.3 |
8、配置nginx 以便支持php文件访问
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
|
docker exec -it nginx bash # 进入nginx配置目录 cd /etc/nginx/conf .d # 安装vim apt-get update apt-get install vim # 编辑default.conf配置文件 vim default.conf # 在default.conf中加入 location / { root /usr/share/nginx/html/tp5 .1 /public ; #不是tp的话去掉/tp5.1/public index index.html index.htm index.php; if (!-e $request_filename){ rewrite ^(.*)$ /index .php?s=/$1 last; break ; } } location ~ \.php$ { root /usr/share/nginx/html/tp5 .1 /public ; #不是tp的话去掉/tp5.1/public fastcgi_pass 172.17.0.3:9000; fastcgi_index index.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; fastcgi_split_path_info ^((?U).+\.php)(/?.+)$; include fastcgi_params; } # 保存退出,重启nginx docker restart nginx # 访问ip/index2.php,成功 |
9、 拉取Mysql镜像
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
docker pull mysql # 创建并运行mysql容器 docker run --name mysql -p 3306:3306 - v $PWD /conf : /etc/mysql/conf .d - v $PWD /logs : /logs - v $PWD /data : /var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql #这是使用navicat连接会报错 docker exec -it mysql /bin/bash mysql -uroot -p #授权 GRANT ALL ON *.* TO 'root' @ '%' ; #刷新权限 flush privileges; #更新加密规则 ALTER USER 'root' @ 'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #更新root密码 ALTER USER 'root' @ '%' IDENTIFIED WITH mysql_native_password BY '123456' ; #刷新权限 flush privileges; |
10、 服务器文件放入容器中
1
2
|
docker ps #查看容器id docker cp linux文件 容器 id :容器路径 |
1
2
3
4
5
6
7
|
#linux中查找php.ini php -i | grep 'php.ini' #docker 因配置文件出错无法进入容器内解决办法 #将容器配置文件复制到服务器上 1.docker cp mynginx: /etc/nginx/conf .d /default .conf /users/nginx/default .conf #修改后再写回容器中 2.docker cp /users/nginx/default .conf mynginx: /etc/nginx/conf .d /default .conf |
到此这篇关于Docker简单安装LNMP环境(可部署TP项目)的文章就介绍到这了,更多相关Docker 安装LNMP环境内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://www.cnblogs.com/ljkltt/p/14876054.html