1、安装Docker-compose
-
执行安装命令
sudo curl -L "https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose
-
测试是否安装成功
docker-compose --version
2、编写Dockerfile(LNMP)
-
创建docker_compose目录&&构建文件
-
编写Dockerfile
default.conf
dockerfile_mysql
dockerfile_nginx
dockerfile_php
index.php
index.html
3、Compose实现多容器运行机制
-
编写compose文件
-
执行docker-compose文件
sudo docker-compose up -d --build
-
访问localhost/index.html
-
访问localhost/index.php
4、服务测试
-
连接到数据库服务器
- 修改index.php文件
- 访问localhost/index.php
-
创建数据库
修改index.php文件
进入mysql容器,登录数据库查询,可看到Hcr_Base数据库已创建
sudo docker exec -it mysql /bin/bash mysql -u root -p show databases;
-
数据库中创建表
修改index.php文件
查看表
use Hcr_Base show tables;
-
插入数据
修改index.php文件
查询数据
select * from Student;
-
修改&删除数据
- 修改index.php文件
- 查询数据
5、phpmyadmin容器
增加一个phpmyadmin容器,实现web端的数据库管理。
-
下载镜像
sudo docker pull phpmyadmin/phpmyadmin
-
在docker-compose.yml文件末尾中增加如下语句
-
增加dockerfile_phpmyadmin文件
-
重新执行docker-compose
docker-compose up -d --build
-
访问localhost:9192
6、问题&解决
在编写完compose文件后执行
sudo docker-compose up -d --build
时出现端口被apache2占用的情况,访问localhost/index.html进入的是apache2的页面,而非自己设置的页面。解决方法是修改apache2的配置文件,将端口改为8080并重启apache2。
7、总结
这次作业大概花了我4h的时间,其中大部分时间用在了查找资料和解决端口被占用的问题上,其他方面的话,感觉有很多地方和上一次的步骤很相似,做下来还算顺利。