一、Docker Compose简介
Docker Compose是Docker官方提供的一个开源工具,用于定义和运行多容器的Docker应用程序。通过简化容器的部署过程,在多个容器之间自动构建网络,并使用Docker文件定义整体的应用程序。这样,用户不需要一遍遍地手动编写Docker代码,以便在本地容器和云容器之间部署应用程序。
所以,Docker Compose是一个优秀的工具,它可以使得开发人员使得容器的部署更加简单,也使得运维人员管理容器的环境更加方便。
二、使用Docker Compose快速构建应用程序
在 CentOS 7 安装 Docker 和 Docker Compose是必要的,执行下面的命令以安装它们。
#安装Docker
sudo yum remove docker \
docker-common \
container-selinux \
docker-selinux \
docker-engine \
docker-ce
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
sudo yum makecache fast
sudo yum install -y docker-ce
sudo systemctl enable docker
sudo systemctl start docker
# 安装Docker Compose
sudo yum install -y epel-release
sudo yum install -y python-pip
sudo pip install docker-compose
安装完成后,您可以检查Docker和Docker Compose的版本:
# 查看Docker版本
docker version
# 查看Docker Compose版本
docker-compose version
三、使用Docker Compose 搭建LAMP
在CentOS 7上搭建LAMP(Linux-Apache-MySQL-PHP)环境非常普遍。而使用Docker Compose,搭建LAMP环境变得更加快速和便捷。
1、创建Docker Compose文件:
首先,我们需要在CentOS 7上创建一个Docker Compose文件,该文件将定义LAMP中使用的所有容器。在您的服务器上,创建一个名为 docker-compose.yml 的文件,并在其中添加以下内容:
version: '2'
services:
web:
image: webdevops/php-apache-dev:${LATEST_TAG:-16.04}
container_name: web
ports:
- "80:80"
volumes:
- .:/app:rw,cached
mysql:
image: mysql
container_name: mysql
ports:
- "3306:3306"
environment:
MYSQL_RANDOM_ROOT_PASSWORD: "yes"
MYSQL_DATABASE: "lamp"
MYSQL_USER: "lamp"
MYSQL_PASSWORD: "lamp"
volumes:
- mysql-data:/var/lib/mysql
phpmyadmin:
image: phpmyadmin/phpmyadmin
container_name: phpmyadmin
ports:
- "8080:80"
environment:
- PMA_HOST=mysql
volumes:
- /sessions
volumes:
mysql-data:
上面的Docker Compose文件将定义一个包含三个容器的LAMP应用程序。一个用于 Web 的 Apache/PHP 容器(web),一个用于MySQL的容器(mysql)和一个用于管理MySQL的PHPMyAdmin容器(phpmyadmin)。
2、启动容器
在 CentOS 7 上启动 LAMP 环境,请运行以下命令,该命令将使用Docker Compose来启动容器。
sudo docker-compose up -d
3、检查容器
使用 Docker Compose 启动容器后,您可以使用以下命令检查容器是否正在运行。
sudo docker ps
4、使用Web容器
Web 容器公开了端口 80,因此你可以通过公网IP地址访问它。要确定 CentOS 7 服务器的 IP,请运行以下命令。
sudo ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'
您可以将服务器的IP地址放入浏览器中,然后在浏览器中访问它:
http://localhost/
在web容器上挂载了一个数据卷以访问web目录。您可以在web容器中创建你的Web应用程序的文件,并在docker-compose.yml 中进行更改时,所做的更改将反映在您运行的容器上。
四、总结
本文介绍了如何在CentOS 7上使用Docker Compose快速构建应用程序,尤其是使用Docker Compose 搭建LAMP(Linux-Apache-MySQL-PHP)环境。使得您可以快速搭建开发环境,更加方便地进行开发和维护您的应用程序。