docker-compose一键部署LNMP

目录

docker-compose概念

安装

yml文件

数据结构

列表结构

maps映射

多行文本块

docker-compose命令

实验:部署单个nginx实验

实验:部署LNMP实验


docker-compose概念

它是容器一键化部署的工具,是针对dockerfile,可以按照定制化的模式一键部署dockerfile创建的容器。

定制:YAML文件

安装

把docker-compose拖进来

mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose

chmod 777 /usr/local/bin/docker-compose

docker-compose --version

yml文件

YAML是一种标记语言,直观的展示数据序列化的格式,可读性高。它的数据格式的结构是通过缩进来进行表示的。

注意事项:

1.大小写敏感,严格区分

2.通过缩进表示层级关系

3.不能用tab缩进,必须用空格缩进

4.#可以注释

5.符号之后必须缩进一格

6.特殊字符用单引号' ';字符串用双引号“ ”

数据结构

数据结构:字符串、整数、布尔类型,也可以是小数点

列表结构

列表结构:表示有序的元素的集合,使用-开头

maps映射

maps(映射),相当于字典或者对象,用键值对表示

多行文本块

多行文本块:|

docker-compose命令

ps  基于docker-compose拉取的镜像生产的容器

up docker-compose 创建和启动容器

scale  创建容器的数量

top  显示容器的进程

logs 看容器的输出日志

stop /start /restart 停止、启动、重启

down 删除容器,网络,数据卷,镜像

docker-compose -f docker.compose.yml up -d

docker-compose :使用docker-compose一键编排容器

-f:使用模版文件,必须是.yml结尾

up:启动

-d:后台运行

实验:部署单个nginx实验

version: '3'
#定义docker-compose文件的版本,2.0之后都是3,顶格写就是全局使用。
services:
#定义镜像和容器的配置
  nginx:
    container_name: web1
#定义容器的名字web1
    hostname: nginx1
#定义创建好之后,容器的主机名
    build:
#构建的是dockerfile
      context: /opt/nginx1
#声明上下文,上文是构建dockerfile,下文是context,告诉你dockerfile的路径
      dockerfile: Dockerfile
    ports:
     #声明宿主机和容器的端口映射
      - 80:80
      - 443:443
    networks:
      #指定容器的ip地址
      mynet:
        ipv4_address: 172.18.0.10
    volumes:
    #创建容器的挂载卷 
      - /opt/nhtml:/usr/local/nginx/html/
networks:
#创建自定义网络
  mynet:
    driver: bridge
    ipam:
      config:
        - subnet: 172.18.0.0/16

如果有自定义网络下面就不需要创建了改为

其中mynet需要执行docker network ls查看它的全部名字,然后把其中所有的mynet都改过来

实验:部署LNMP实验

注:基于dockerfile写了LNMP镜像

vim docker-compose.yml

version: '3'
services:
  nginx:
    container_name: nginx_server
    hostname: nginx
    build:
      context: /opt/nginx
      dockerfile: Dockerfile
    ports:
      - 80:80
      - 443:443
    networks:
      lnmp:
        ipv4_address: 172.111.0.10
    volumes:
      - /opt/nhtml1:/opt/docker-nginx
  mysql:
    container_name: mysql_server
    hostname: mysql
    build:
      context: /opt/mysql
      dockerfile: Dockerfile
    ports:
      - 3306:3306
    networks:
      lnmp:
        ipv4_address: 172.111.0.20
    privileged: true
    volumes:
      - /opt/mysql2:/opt/docker-mysql

  php:
    container_name: php_server
    hostname: php
    build:
      context: /opt/php
      dockerfile: Dockerfile
    ports:
      - 9000:9000
    networks:
      lnmp:
        ipv4_address: 172.111.0.30
    volumes_from:
      - nginx
      - mysql
networks:
  lnmp:
    driver: bridge
    ipam:
      config:
        - subnet: 172.111.0.0/16

docker-compose -f docker-compose.yml up -d

这样即为成功

  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值