Mac利用Docker安装宝塔,部署php使用环境

本人小白一个,在知乎上看到大佬写的教程,这里拷贝备份一下。
主要的思路就是在macOS上利用docker装宝塔替换mamp pro搭建本地免费开发环境。

第一步:

先去(https://docker.p2hp.com/)下载Docker软件并进行安装,网站打不开多试几次或者找梯子。

第二步:

macOS系统里按“command + 空格”搜索“终端”回车,启动「终端」程序,并执行下面的命令,拉取docker镜像。

docker pull pch18/baota:clear

pch18/baota 或 pch18/baota:latest 等同 pch18/baota:lnmp
pch18/baota:lnmp 为最新版本的官方纯净安装的基础上安装nginx,mysql,php
pch18/baota:lnp 为官方版本纯净安装的基础上安装nginx,php(不内置mysql,用于外置数据库的环境)
pch18/baota:lamp 为官方版本纯净安装的基础上安装apache,php
pch18/baota:lap 为官方版本纯净安装的基础上安装apache,php(不内置mysql,用于外置数据库的环境)
pch18/baota:clear 为官方版本纯净安装, 不默认安装nginx,mysql,php等程序

(这里我们拉取一个纯净的版本。然后到BT里再安装我们需要的环境和版本。)

第三步:

下载完成之后打开你刚下载的docker.app在images里可以看到刚下载的镜像

镜像拉好以后,打开你刚下载的docker.app在images里可以看到刚下载的镜像,接着在「终端」程序中,执行下面的命令,创建一个volume数据卷

docker volume create baota

第四步:

启动容器,在「终端」程序中,执行下面的命令

docker run -tid --name baota -p 80:80 -p 443:443 -p 8888:8888 -p 888:888 -p 8022:8022 --privileged=true --shm-size=1g --restart always -v baota:/www -v ~/wwwroot:/www/wwwroot pch18/baota:clear

第五步:

进入容器,在「终端」程序中,执行下面的命令

docker exec -it baota /bin/bash

第六步:

七、在「终端」程序中,输入命令”bt”修改宝塔登录账号和密码。

选择第5项和第6项进行修改,修改完成后通过http://ip:8888 或 localhost:8888 访问。到这里基本就算完成了。剩下的就是宝塔的使用了。

这里我说一说我的使用案例及问题和解决。

我在宝塔里安装php7.4 和 nginx1.18.0使用。假设我后续需要新增映射端口怎么办?以下操作不会删除数据,你的宝塔环境配置及安装的软件都是存在了baota这个volume数据卷,站点文件都是存放在wwwroot目录里。

先停止容器

docker stop baota

删除容器

docker rm baota

启动新容器

docker run -tid --name baota -p 80:80 -p 443:443 -p 8888:8888 -p 888:888 -p 8022:8022 -p 3306:3306 --privileged=true --shm-size=1g --restart always -v baota:/www -v ~/wwwroot:/www/wwwroot pch18/baota:lnp

注意这里的启动命令与第五步的区别,新增了一个 -p 3306:3306(我们需要新增的端口,有多个就按这个格式继续在后面加上,还有就是末尾处镜像由pch18/baota:clear变成了pch18/baota:lnp(如果不改变的话,会因为linux系统缺少相应的依赖而无法启动nginx和php,当然你不怕麻烦也可以不改,自己去解决依赖问题,改了也不会使用镜像的版本,依然是你之前安装的版本)。

原文地址:https://zhuanlan.zhihu.com/p/603194729