通过该link可以下载兼容mac m1核心的docker-desktop:
Docker Desktop - Docker
所有基于amd64架构核心的都加上--platform linux/amd64来运行,这样就能愉快的玩耍了:
docker search centos7 php56 #搜索
docker images #显示所有镜像
docker pull sglim2/centos7
建议使用lnmp一键安装php环境
个人还是喜欢先运行好docker,然后进入后,采用一键lnmp的方式安装,因为后面要用到nginx服务器,lnmp一键安装链接(这个可以节省你太多太多时间,linux下装软件是一个很痛苦的过程,千万别去尝试,除非你是运维):lnmp、lamp、lnmpa一键安装包(Updated: 2022-03-14) | Linux运维笔记
这里有各种php版本绝对够用了,还有php完整版的扩展,非常方便,虽然没有python的conda那么屌,但也是解决方案。
装完后,重启后环境变量不能自动引入,跟虚拟机还是有点差别:我们手动来搞
vim ~/.bashrc 尾部添加 source /etc/profile
以后重启后系统就会自动载入环境变量了。
将虚拟机配置成ssh方式可以连接:
第一步,就是暴露端口下方的连接中已经将端口暴露为1022了;
第二步,就是一轮ssh操作,具体参考链接:
(centos7)创建支持ssh服务的docker镜像_还好还好啦的博客-CSDN博客_docker 创建支持sshd的centos 镜像
yum -y install passwd openssl openssh-server openssh-clients
mkdir /var/run/sshd/
sed -i "s/UsePAM.*/UsePAM no/g" /etc/ssh/sshd_config
#以下keygen不要加口令密码,不然你链接时要输入一堆密码,比较恶心
ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key
ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key
/usr/sbin/sshd -D & #报个UsePAM啥的不能用警告,直接忽略
#改密码,就可以登陆了
passwd
phpstorm中建立远程连接:
配置完成后,本地就可以使用远程的php解释器了,此外采用docker共享文件夹的方式,可以做到代码修改的是同一个位置,达到了无需再将phpstorm上传到docker中去
使用php56调试:
唯一注意点是,docker机器在mac上无法桥接,这个有点二逼,但没办法,只有用给定的host,docker才能将远程调试信息发过来,如图配置不能少:
此时右键就可以调试了。
docker run -dit --platform linux/amd64 --privileged -v /Users/senwang/workspace:/home -p 1022:22 -p 8080:80 -p 15672:15672 c13a516c5bea /usr/sbin/init
# elasticsearch docker 配置
docker run -dit --platform linux/amd64 --privileged --name elastic -v /Users/senwang/workspace:/home -p 2202:22 -p 8088:80 -p 15672:15672 -p 9200:9200 -p 9300:9300 c13a516c5bea /usr/sbin/init
php5.6.40中xdebug没有附带安装解决方案:
这里本来不应该是个问题的,可能40是最新版,直接通过pecl无法安装,很神奇,经过比对,xdebug2.5.4对应php5.6.40,从github上找到xdebug,进行编译安装:
GitHub - xdebug/xdebug at XDEBUG_2_5_4 下载zip,解压,然后按照github的步骤,一步步搞下来,就装成功了
在配置xdebug.ini时,参照以下截图,docker访问宿主机时必须是要docker自己提供的host才能访问,再次强调
[xdebug]
zend_extension=xdebug.so
xdebug.remote_enable=1
xdebug.remote_host=docker.for.mac.host.internal
xdebug.remote_port=9000
配置完毕后,就可以用远程解释器调试代码了
进如docker命令:
docker exec -it 容器ID /bin/bash
通过docker ps -a 可以查看容器ID
学习docker入门,直接看bilibili的狂神说docker,通俗易懂,看完就会了:【狂神说Java】Docker最新超详细版教程通俗易懂_哔哩哔哩_bilibili