原文:本地使用 docker 快速搭建一个 PHP7.4 学习环境 | Laravel China 社区
安装 docker#
安装方法:https://hub.docker.com/?overlay=onboarding
文档手册:https://docs.docker.com/docker-hub/
安装完成后使用命令查看版本
$ docker --version
下载镜像#
1、拉取需要的镜像#
去 hub.docker.com 拉取需要的镜像
2、查看拉取方法#
3、转到终端界面#
拉取镜像
$ docker pull centos
查看镜像
$ 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 exec -it a75482c765e5febee126 /bin/bash
之后可以安装自己想要安装的服务比如安装一个 nginx 和 php 7.4。不管安装什么,第一步
$ yum update -y
配置容器对外端口#
可以使用 nginx 来代理对外的 80 端口
1、安装 net-tools 工具
$ yum install -y net-tools
2、查看网络端口
3、如果您的端口监听正常,就可以在你的本地访问 http://localhost:1234
4、安装 php 7.4
通过 yum 快速安装,大家可以参考这个链接 https://computingforgeeks.com/how-to-insta...
注意安装完成后将 /etc/php-fpm.d/www.conf 中的 listen 改为 端口监听,否则会出现权限问题
容器转成本地镜像,推送到 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
注意事项#
1、使用 docker 创建的容器,默认什么服务或者软件都没有需要自己安装
2、连接容器后,安装的服务或者软件默认都不会跟随容器的启动而启动;可以配置 linux 启动项来完成此目的
使用 yum 安装的服务或者软件可以通过这个命令来将它设为自启动,
$ systemctl enable nginx
同样,也可以编写 自启动脚本
$ vi /etc/rc.d/rc.local
然后换行写入需要启动的命令就好了比如
3、确保容器挂载目录和本地同步目录拥有其相应权限,否则无法实时编写代码
原文地址:https://www.cnblogs.com/lonelyxmas/p/12200657.html