docker-compose使用
###
###
docker-compose简介
docker-compose是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。
docker-compose使用的三个步骤:
使用 Dockerfile 定义应用程序的环境。
使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。
最后,执行 docker-compose up 命令来启动并运行整个应用程序。
###
docker-compose安装
这个mac安装了桌面版本的docker之后,是默认就是安装了docker-compose的,因此 Mac 用户不需要单独安装 Compose。
查看docker-compose的版本,命令:
docker-compose --version
###
###
###
使用docker部署flaskweb项目,
###
要使用docker-compose,首先要把每个部分的Dockerfile写好,然后在docker-compose.yml文件中统一构建和启动
整个docker-compose项目的目录结构为
三个目录下分别有它们的Dockerfile和相关的配置文件或代码
####
启动 docker-compose up 时报错
错误如下:
> docker-compose up
ERROR: for mysql Cannot start service mysql: driver failed programming external connectivity on endpoint flaskgunicornnginxmysql_mysql_1 (e885614f633d51c24a8428685259b317f8f64f342aced10b57da1fcd78fb627c): Error starting userland proxy: Bind for 0.0.0.0:3306 failed: port is already allocated
ERROR: Encountered errors while bringing up the project.
解决:
> docker-compose down
> docker rm -fv $(docker ps -aq)
> sudo lsof -i -P -n | grep 9000
> kill -9 <process id>
> sudu kill <process id>
> docker-compose up
原因就是端口被占用了,
####
mac操作
1、查看进程号
ps -ef | grep 进程名
2、查看端口被哪个进程监听
sudo lsof -i :端口
3、查看进程监听的端口
sudo lsof -nP -p 进程号 | grep LISTEN
sudo lsof -nP | grep LISTEN | grep 进程号
4、查看监听端口的进程
sudo lsof -nP | grep LISTEN | grep 端口号
————————————————
示例:
查看3306端口号被占用情况
sudo lsof -nP | grep LISTEN 3306
###