docker-compose的使用

使用docker-compose简化部署

上一篇中介绍了使用Dockerfile搭建一个lnmp环境的步骤。虽然我们搭建好了一个能用的lnmp环境,但是感觉还是很麻烦,特别是"docker build"和"docker run"这两个命令使用。而且为了启动一个lnmp环境,我们需要分别build、run多次。事实上我们可以简化些步骤,简化的方法就是本篇要介绍的docker compose。

安装

docker compose是使用python编写的,因此可以通过pip来进行安装。当然,也可以通过下载二进制安装包来安装,具体的方法官网上都有介绍:https://docs.docker.com/compose/install/#install-compose

docker-compose项目配置

为了简化流程,我们需要手动编写一个项目启动配置文件。在上一篇的Dockerfile配置文件的根目录下,添加一个docker-compose.yml文件,以下是docker-compose.yml的内容

version: '3'

networks:
	somehow_network:

services:
    mysql:
        build: ./mysql
        image: "somehow/mysql"
        container_name: somehow_mysql
		networks:
			- somehow_network
        ports:
            - "3306:3306"
        volumes:
            - /home/website/mysql/data:/var/lib/mysql
        environment:
            - MYSQL_ROOT_PASSWORD:123456

    php-fpm:
        build: ./php
        image: "somehow/php"
        container_name: somehow_php
		networks:
			- somehow_network
        ports:
            - "9000:9000"
        volumes:
            - /home/website/html:/home/website/html
            - /home/website/php/logs:/home/website/php/logs

    nginx:
        build: ./nginx
        image: "somehow/nginx"
        container_name: somehow_nginx
		networks:
			- somehow_network
        depends_on: 
            - php-fpm
        ports:
            - "80:80"
        volumes:
            - /home/website/html:/home/website/html
            - /home/website/nginx/logs:/home/website/nginx/logs

简要说明一下

version: 指定compose的版本。注意每个version的语法不同,具体可以参考官方。
networks: 指定网络名称,用于网络隔离和访问
services: 指定了要启动的服务。我们可以将要启动的服务相关的一些配置,列举在services下。

以下是服务各个参数说明

  • mysql是服务名,用来做启动时的服务标识。
  • build:指定"docker build"执行的Dockerfile文件路径
  • image:指定启动服务的镜像
  • container_name:指定运行该服务的容器名
  • network是:指定所在网络名称
  • ports:指定端口映射关系
  • volumes:指定目录映射关系
  • environment:指定环境变量
  • depends_on:指定依赖关系,例如上述nginx的启动依赖php-fpm。

使用

  1. 如果PHP的镜像配置文件Dockerfile有所改变(例如加入一个phalcon扩展),需要重新生成镜像启动。则只需编写好了Dockerfile文件之后,直接执行命令
docker-compose build php-fpm

这样,就可以更新该镜像了。

备注:需要跳转到docker-compose.yml目录下,才能执行docker-compose的相关命令

  1. 如果现在我们要启动该lnmp环境,只需要执行命令
docker-compose up -d

-d: 指定启动的服务为后台运行。

当然,如果我们只需要启动一个mysql服务,可以直接

docker-compose up -d mysql

当我们想要关闭服务(并且立即删除它)时,直接使用命令

docker-compose down

当然,我们也可以停止某个服务而不删除它,使用命令

docker-compose stop mysql

如果再想启动的话,就可以直接使用命令

docker-compose start mysql
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hober.z

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值