本地使用 docker 快速搭建一个 PHP7.4 学习环境

安装 docker

安装方法:https://hub.docker.com/?overlay=onboarding
文档手册:https://docs.docker.com/docker-hub/

安装完成后使用命令查看版本

$ docker --version

本地使用 docker 快速搭建一个 PHP7.4 学习环境

下载镜像

1、拉取需要的镜像

hub.docker.com 拉取需要的镜像
本地使用 docker 快速搭建一个 PHP7.4 学习环境

2、查看拉取方法

本地使用 docker 快速搭建一个 PHP7.4 学习环境

3、转到终端界面

拉取镜像

$ docker pull centos

本地使用 docker 快速搭建一个 PHP7.4 学习环境

查看镜像

$ docker images

使用镜像创建容器

使用镜像创建一个容器,并挂在到本地目录(用于文件同步)

$ docker run -it -d -p 1234:80 -v /usr/local/var/www/docker/php:/usr/share/nginx/html --privileged --name centos-php7.4  centos /usr/sbin/init
参数 释义
run 启动容器的命令
-it i:交互模式 t:终端
-d 后台运行
-p 1234:80 端口代理 1234 为本地端口,80 为容器内服务端口
/usr/local/var/www/docker/php:/usr/share/nginx/html /usr/local/var/www/docker/php:本地路径,/usr/share/nginx/html:容器内路径;将本地和容器目录同步,之后可以直接在本地编写代码测试;/usr/share/nginx/html 是 yum 安装 nginx 服务的默认目录,如过其他方式安装请自行更换
--privileged 容器内默认使用 root 登录
--name centos-php7.4 自定义你的容器名称
centos 你的镜像名称
/usr/sbin/init centos 默认启动项

启动成功后会返回容器 id
本地使用 docker 快速搭建一个 PHP7.4 学习环境

连接容器

$ docker exec -it a75482c765e5febee126 /bin/bash 

本地使用 docker 快速搭建一个 PHP7.4 学习环境

之后可以安装自己想要安装的服务比如安装一个 nginx 和 php 7.4。不管安装什么,第一步

    $ yum update -y

配置容器对外端口

可以使用 nginx 来代理对外的 80 端口

1、安装 net-tools 工具

$ yum install -y net-tools

2、查看网络端口
本地使用 docker 快速搭建一个 PHP7.4 学习环境

3、如果您的端口监听正常,就可以在你的本地访问 http://localhost:1234
本地使用 docker 快速搭建一个 PHP7.4 学习环境

4、安装 php 7.4
通过 yum 快速安装,大家可以参考这个链接 https://computingforgeeks.com/how-to-insta...
注意安装完成后将 /etc/php-fpm.d/www.conf 中的 listen 改为 端口监听,否则会出现权限问题
本地使用 docker 快速搭建一个 PHP7.4 学习环境

容器转成本地镜像,推送到 hub.docker.com

容器配置完成后,你甚至可以将其 push 到你的 hub.docker.com 上,之后别人也可以直接下载你的镜像

1、将容器导出为本地文件(我的理解是快照)
查看容器列表

$ docker ps -a 
$ docker export a75482c765e5febee126 > ~/Study/docker/study-php7.4

2、导入本地快照

$ cat ~/Study/docker/study-php7.4 | docker import - wangfeiyang/centos-php7.4

3、推送到 hub.docker.com

$ docker push wangfeiyang/centos-php7.4

4、查看

$ docker images

本地使用 docker 快速搭建一个 PHP7.4 学习环境

注意事项

1、使用 docker 创建的容器,默认什么服务或者软件都没有需要自己安装

2、连接容器后,安装的服务或者软件默认都不会跟随容器的启动而启动;可以配置 linux 启动项来完成此目的
使用 yum 安装的服务或者软件可以通过这个命令来将它设为自启动,

$ systemctl enable nginx

同样,也可以编写 自启动脚本

$ vi /etc/rc.d/rc.local

本地使用 docker 快速搭建一个 PHP7.4 学习环境
然后换行写入需要启动的命令就好了比如

本地使用 docker 快速搭建一个 PHP7.4 学习环境

3、确保容器挂载目录和本地同步目录拥有其相应权限,否则无法实时编写代码

目前正在学习 docker 中,希望可以和大家一起交流交流(一几我里giao 🤞🖖🤘🤙🖕)

本作品采用《CC 协议》,转载必须注明作者和本文链接
未知的永远是最精彩的!
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 6

王飞洋小姐姐你好!

4年前 评论

有两个疑问,

  1. 为什么不用 alpine 系统
  2. 为什么不用 docker-compose
4年前 评论
看上隔壁小花了啦 (楼主) 4年前
fzpying (作者) 4年前
看上隔壁小花了啦 (楼主) 4年前

我居然认识贴主,留名

4年前 评论

慢慢来,docker-compose 编排的简单环境,可以交流下 https://github.com/839891627/dnpm

4年前 评论
rufo 4年前
看上隔壁小花了啦 (楼主) 4年前

镁铝,图方便的话肯定用docker-compose吧

4年前 评论
看上隔壁小花了啦 (楼主) 4年前

离架构师不远了

4年前 评论
看上隔壁小花了啦 (楼主) 4年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!