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

 

 

###

posted @ 2021-08-08 09:32  技术改变命运Andy  阅读(591)  评论(0编辑  收藏  举报