用户登录

这个 MYSQL_VERSION 环境变量的值,用在了这个 docker-compose 里面的这个 mysql 服务的 image 属性里面了。服务的 image 属性设置的是这个服务,或者叫这个容器要使用的镜像的名字还有版本号。MYSQL_VERSION 就是这个镜像的版本号。

定义这个服务的时候,设置公开了一个端口号,前面这个 3306 指的是本地主机上的一个端口号,后面这个 3306 是在这个服务容器里的一个端口号。默认 MySQL 数据库用的就是 3306 这个端口,这个数据库是在容器里运行的,用的端口号是 3306。在本地主机上访问这个服务容器里的 MySQL 数据库,可以使用本地主机上的 3306 这个端口。

如果你发现这个端口有冲突,可以修改一下本地主机上的这个端口号的值,比如 3307,3308 都可以。

在这个 mysql 服务里面,可以再设置一个数据卷,添加一个 volumes ,注意这个 volumes 跟上面的 environment,ports 这些东西是在同一个级别,也就是它们的位置需要对齐。

在 volumes 下面添加一个项目,注意要缩进两个字符。

一个小横线,数据卷本地的位置是 ./db,表示当前目录下的 db 这个目录 ,冒号,对应的是容器里的 /var/lib/mysql 。这样启动这个服务以后,会在项目下面创建一个 db 目录,里面的东西就是在这个容器里的 /var/lib/mysql 目录下的东西,也就是数据库系统里的数据库文件。

下面可以使用 Docker 运行一下在这个 docker-compose 文件里定义的服务,先确定一下在你的系统上已经安装好了 Docker 桌面版,并且它现是运行的状态。

在终端,docker-compose 文件所在的目录的下面,可以执行一下 docker-compose up -d ,在后台运行在 docker-comopse 文件里定义的容器服务。

第一次启动运行服务的时候,Docker 会去下载服务需要的镜像,然后基于这个镜像,去创建并且运行需要的容器。

执行一下 docker-compose ps ,可以查看一下服务的状态,显示在这个项目下面创建了两个容器,它们的 State,都是 Up,表示正在运行。

Ports 这里显示的是公开的端口,比如这个容器,本地主机的 3306 对应的是容器里的 3306 端口。如果你发现本地主机的 3306 端口被占用了,可以修改一下公开的端口的设置。

比如可以改成 3307,回到终端,重新再执行一下 docker-compose up -d ,这样会重新创建 mysql 这个服务容器。再查看一下容器的状态。这次你会发现,mysql 这个服务,本地主机的 3307 对应的是容器里的 3306 。

再回到项目。

mysql 容器启动之后,会在项目里创建一个 db 目录,它里面的东西就是 mysql 这个容器里的数据库系统里的数据库文件。

db 里面的东西不需要做源代码管理,所以我们可以在源代码管理里面忽略掉它。打开 .gitignore 文件,里面添加一个 /db

运行数据库服务(Docker)《 Nest.js 应用案例:启动 》

统计

14696
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点