docker-compose搭建lamp

文章介绍了如何在CentOS7上安装Docker-compose,并通过Dockerfile创建不同服务的镜像,包括LAMP环境、MySQL和PHPMyAdmin。接着,利用Docker-compose将这些容器化服务进行集成和管理。
摘要由CSDN通过智能技术生成

1. Docker-compose安装

在CentOS 7上安装Docker-compose,可以使用以下命令:

```
sudo yum install -y epel-release
sudo yum install -y python-pip
sudo pip install docker-compose
```

2. Dockerfile制作镜像

在制作镜像之前,需要先创建一个文件夹,用于存放相关文件。在该文件夹下,创建一个名为Dockerfile的文件,用于定义镜像的构建规则。

以下是一个示例Dockerfile:

```
FROM centos:7

RUN yum -y update && \
    yum -y install httpd && \
    yum -y install php php-mysql && \
    yum -y install mysql && \
    yum clean all

EXPOSE 80

CMD ["/usr/sbin/httpd", "-D", "FOREGROUND"]
```

该Dockerfile的作用是创建一个基于CentOS 7的镜像,安装Apache、PHP、MySQL,并将80端口暴露出来。

使用以下命令构建镜像:

```
docker build -t my-lamp-image .
```

其中,my-lamp-image是镜像的名称,最后的"."表示Dockerfile所在的当前目录。

3. MySQL Dockerfile编写

以下是一个示例MySQL Dockerfile:

```
FROM mysql:5.7

ENV MYSQL_ROOT_PASSWORD=root

EXPOSE 3306

CMD ["mysqld"]
```

该Dockerfile的作用是创建一个基于MySQL 5.7的镜像,设置root用户的密码为root,并将3306端口暴露出来。

使用以下命令构建镜像:

```
docker build -t my-mysql-image .
```

其中,my-mysql-image是镜像的名称。

4. PHP-Apache Dockerfile

以下是一个示例PHP-Apache Dockerfile:

```
FROM my-lamp-image

COPY index.php /var/www/html/

EXPOSE 80
```

该Dockerfile的作用是创建一个基于my-lamp-image的镜像,将index.php文件复制到Apache的默认网站目录,并将80端口暴露出来。

使用以下命令构建镜像:

```
docker build -t my-php-apache-image .
```

其中,my-php-apache-image是镜像的名称。

5. PHPMyAdmin Dockerfile

以下是一个示例PHPMyAdmin Dockerfile:

```
FROM phpmyadmin/phpmyadmin

ENV PMA_HOST=my-mysql-container
ENV PMA_PORT=3306

EXPOSE 80
```

该Dockerfile的作用是创建一个基于phpMyAdmin的镜像,设置MySQL服务器的主机名和端口,并将80端口暴露出来。

使用以下命令构建镜像:

```
docker build -t my-phpmyadmin-image .
```

其中,my-phpmyadmin-image是镜像的名称。

6. YAML

在创建完以上四个镜像之后,可以使用Docker-compose来启动这些容器,并将它们连接起来。

以下是一个示例docker-compose.yml文件:

```
version: '3'

services:
  mysql:
    image: my-mysql-image
    environment:
      MYSQL_ROOT_PASSWORD: root
    ports:
      - "3306:3306"
    volumes:
      - ./mysql-data:/var/lib/mysql

  php-apache:
    image: my-php-apache-image
    ports:
      - "80:80"
    depends_on:
      - mysql

  phpmyadmin:
    image: my-phpmyadmin-image
    ports:
      - "8080:80"
    depends_on:
      - mysql
```

该文件定义了三个服务:mysql、php-apache和phpmyadmin。其中,mysql服务使用my-mysql-image镜像,设置root用户的密码为root,并将3306端口映射到主机的3306端口。php-apache服务使用my-php-apache-image镜像,将80端口映射到主机的80端口,并依赖于mysql服务。phpmyadmin服务使用my-phpmyadmin-image镜像,将80端口映射到主机的8080端口,并依赖于mysql服务。

使用以下命令启动容器:

```
docker-compose up -d
```

其中,"-d"参数表示在后台运行容器。

7. 在网页中显示MySQL的表格

在浏览器中访问http://localhost/phpmyadmin,即可打开phpMyAdmin界面。在该界面中,可以连接到MySQL服务器,并查看其中的表格。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值