使用docker部署LAMP

引言

由于个人的服务器经常来回更换,在上边配置的LAMP也是一遍又一遍的来回配置,鉴此,我琢磨了一下docker工具,并学习用docker来开发和部署我的网络网络服务器。

docker环境

为了便于调试和安装,我先在我的MAC上安装配置docker环境,由于下载镜像的网络原因,我需要添加我的镜像源,如下(可以参考,阿里云镜像加速需要自己注册,我这里不提供)

{
  "builder": {
    "gc": {
      "defaultKeepStorage": "20GB",
      "enabled": true
    }
  },
  "experimental": false,
  "registry-mirrors": [
    "https://匿名.mirror.aliyuncs.com",
    "https://registry.docker-cn.com",
    "http://hub-mirror.c.163.com"
  ]
}

docker镜像拉取

使用docker需要pull拉取镜像并部署容器环境,我这里安装apache+php镜像php-7.2apache和mysql最新的镜像mysql:latest

docker pull php:7.2-apache
docker pull mysql

docker容器部署

php容器部署

docker run --name php-server \
-d \
-p 8080:80 \
-v /Users/hrilug/Documents/docker/php:/var/www/html \
php:7.2-apache

mysql容器部署

docker run \
-d \
--name mysql-server \
-p 3306:3306 \
-v /Users/hrilug/Documents/docker/mysql/log:/var/log/mysql \
-v /Users/hrilug/Documents/docker/mysql/data:/var/lib/mysql \
-v /Users/hrilug/Documents/docker/mysql/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=匿名 \
mysql:latest

我这里没有使用数据卷部署,二是本地目录调试,注意

php容器配置mysql插件

我这里参考:[随手记]docker php报错'mysqli_connect' is not a function 或 class 'mysqli' not found_i.connect is not a function-优快云博客

// 进入容器
docker exec -it php-container-name /bin/bash
// 切换目录
cd /usr/local/bin 
// 安装pdo_mysql扩展
./docker-php-ext-install pdo_mysql  
//  安装mysqli扩展
./docker-php-ext-install mysqli
// 退出容器
exit
// 重启容器
docker restart php-container-name

### 使用 Docker 部署 LAMP 栈 为了使用 Docker 部署 LAMP (Linux, Apache, MySQL, PHP) 栈,可以创建一个 `docker-compose.yml` 文件来定义所需的服务。这使得配置更加简单和可重复。 #### 创建项目目录结构 首先,在本地计算机上创建一个新的工作目录用于放置所有的文件: ```bash mkdir lamp-docker && cd $_ ``` #### 编写 docker-compose.yml 文件 接下来编写 `docker-compose.yml` 文件以定义服务组合。这里是一个简单的例子[^4]: ```yaml version: '3' services: web: image: 'php:7.4-apache' ports: - "8080:80" volumes: - ./src:/var/www/html networks: - lamp-network db: image: 'mysql:5.7' environment: MYSQL_ROOT_PASSWORD: example MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: wordpress volumes: - db_data:/var/lib/mysql networks: - lamp-network volumes: db_data: networks: lamp-network: ``` 上述 YAML 定义了两个主要组件——Web 和数据库服务器,并通过网络连接它们以便通信。PHP 版本可以根据需求调整;同样地,也可以更改 MySQL 的版本号。 #### 准备 Web 应用程序源码 在项目的根目录下建立名为 `src` 的子文件夹并将 PHP 脚本放入其中。这些脚本将会被挂载到容器内的 `/var/www/html` 目录中作为网站的内容。 #### 启动服务并运行容器 完成以上设置之后,可以通过下面命令启动所有必要的服务并在后台持续执行: ```bash docker-compose up -d ``` 此时应该可以在浏览器里访问 http://localhost:8080 来查看由 Apache 提供服务的网页内容[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值