文章目录

  • Docker-compose容器编排
    • 是什么
    • 能干嘛
    • 去哪下
    • Compose 核心概念
    • 实战 :linux 配置dns 服务器,搭建lemp环境(Nginx + MySQL (MariaDB) + PHP )
    • 要求
    • 配置dns解析
      • 配置 lemp

Docker-compose容器编排

是什么

Compose 是 Docker 公司推出的一个工具软件,可以管理多个 Docker 容器组成一个应用。你需要定义一个 YAML 格式的配置文件docker-compose.yml,写好多个容器之间的调用关系。然后,只要一个命令,就能同时启动/关闭这些容器

  • · Docker-Compose是Docker官方的开源项目, 负责实现对Docker容器集群的快速编排。

能干嘛

docker建议我们每一个容器中只运行一个服务,因为docker容器本身占用资源极少,所以最好是将每个服务单独的分割开来但是这样我们又面临了一个问题?

如果我需要同时部署好多个服务,难道要每个服务单独写Dockerfile然后在构建镜像,构建容器,这样累都累死了,所以docker官方给我们提供了docker-compose多服务部署的工具

例如要实现一个Web微服务项目,除了Web服务容器本身,往往还需要再加上后端的数据库mysql服务容器,redis服务器,注册中心eureka,甚至还包括负载均衡容器等等。。。。。。

Compose允许用户通过一个单独的docker-compose.yml模板文件(YAML 格式)来定义一组相关联的应用容器为一个项目(project)。

可以很容易地用一个配置文件定义一个多容器的应用,然后使用一条指令安装这个应用的所有依赖,完成构建。Docker-Compose 解决了容器与容器之间如何管理编排的问题。

去哪下

  • 官网 · https://docs.docker.com/compose/compose-file/compose-file-v3/
  • https://docs.docker.com/compose/install/

加速下载地址

sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.29.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

添加可执行权限

chmod +x /usr/local/bin/docker-compose

查看是否安装成功

docker-compose --version
  • 卸载

    sudo rm / usr/ local/ bin/docker-compose
    

Compose 核心概念

  • Compose使用的三个步骤

    编写Dockerfile定义各个微服务应用并构建出对应的镜像文件

    使用 docker-compose.yml 定义一个完整业务单元,安排好整体应用中的各个容器服务。

    最后,执行docker-compose up命令 来启动并运行整个应用程序,完成一键部署上线

  • Compose常用命令

    docker-compose -h # 查看帮助

    docker-compose up # 启动所有docker-compose服务

    docker-compose up -d # 启动所有docker-compose服务并后台运行

    docker-compose down # 停止并删除容器、网络、卷、镜像。

    docker-compose exec yml里面的服务id # 进入容器实例内部

    docker-compose exec docker-compose.yml文件中写的服务id /bin/bash

    docker-compose ps # 展示当前docker-compose编排过的运行的所有容器

    docker-compose top # 展示当前docker-compose编排过的容器进程

    docker-compose logs yml里面的服务id # 查看容器输出日志

    docker-compose config # 检查配置

    docker-compose config -q # 检查配置,有问题才有输出

    docker-compose restart # 重启服务

    docker-compose start # 启动服务

    docker-compose stop # 停止服务

docker-machine 命令安装

 base=https://get.daocloud.io/docker/machine/releases/download/v0.14.0 &&curl -L $base/docker-machine-$(uname -s)-$(uname -m) >/tmp/docker-machine &&sudo install /tmp/docker-machine /usr/local/bin/docker-machine

实战 :linux 配置dns 服务器,搭建lemp环境(Nginx + MySQL (MariaDB) + PHP )

要求

1) 在Linux虚拟机中,配置ip地址为192.168.90.215(x为自己学号后3位,y自行指定),并且虚拟机能正常访问互联网;

2) 配置DNS服务器,域为 cr.com(abc为自己的姓名首字母),配置完成后,用nslookup进行正向和反向解析的校验;

3) 配置LEMP(即 Nginx + MySQL (MariaDB) + PHP),通过真实主机访问 www.cr.com(abc为自己的姓名首字母)能访问搭建好的LEMP。(不能去修改hosts文件做本地解析,而必须使用自己配置的DNS)

配置dns解析

首先给linux 配置好静态ip http://alleniverrui.top/archives/linux-pei-zhi-jing-tai-ip (打不开就换下面的地址)

//to do

编辑 /etc/named.conf 文件

vim /etc/named.conf

将 listen on 和 query 值改为any

配置dns解析 cr.com 到192.168.90.215

vim /etc/named.rfc1912.zones

文件末尾添加

zone "cr.com" IN {type master;file "cr.com.zone";allow-update { none; };
};
zone "215.90.168.192.in-addr.arpa" IN {type master;file "com.cr.loop";allow-update { none; };
};

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gDF1B26D-1670514103699)(https://s3.uuu.ovh/imgs/2022/12/08/db36668ee91e6c0c.png)]

:wq 进行保存

编辑对应配置文件 vim /var/named/com.cr.loop

加入以下内容

$TTL 1D
@       IN SOA  cr.com. rname.invalid. (0       ; serial1D      ; refresh1H      ; retry1W      ; expire3H )    ; minimumNS      @A       127.0.0.1AAAA    ::1PTR     cr.com.NS      ns.cr.com.
ns      A       192.168.90.215
201     PTR     www.cr.com.
201     PTR     email.cr.com.

编辑 vim /var/named/cr.com.zone

加入以下内容

$TTL 1D
@       IN SOA  cr.com. rname.invalid. (0       ; serial1D      ; refresh1H      ; retry1W      ; expire3H )    ; minimumNS      @A       192.168.90.215AAAA    ::1NS      ns.server.com.
ns      IN A    192.168.90.215
www     IN A    192.168.90.215
email   IN A    192.168.90.215

重启dns

systemctl restart named

查看dns 状态

systemctl status named

启动成功

正向解析 nslookup cr.com

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GNRoXb8O-1670514103700)(https://s3.uuu.ovh/imgs/2022/12/08/bc0aece54bba5182.png)]

反向解析 nslookup 192.168.90.215

配置 lemp

编写docker-compose.yml 文件到/mydocker/lemp

vim /mydocker/lemp/docker-compose.yml 填入以下内容

nginx:build: ./nginx/ports:- 80:80links:- phpvolumes_from:- appphp:build: ./php/expose:- 9000links:- mysqlvolumes_from:- appapp:image: php:7.0-fpmvolumes:- .:/var/www/htmlcommand: "true"mysql:image: mysql:latestvolumes_from:- dataenvironment:MYSQL_ROOT_PASSWORD: secretMYSQL_DATABASE: bookmarksMYSQL_USER: crMYSQL_PASSWORD: cr123data:image: mysql:latestvolumes:- /var/lib/mysqlcommand: "true"phpmyadmin:image: phpmyadmin/phpmyadminports:- 8080:80links:- mysqlenvironment:PMA_HOST: mysql

在/mydocker/lemp/当中创建 nginx/Dockerfile

填入

FROM nginx:latestCOPY ./default.conf /etc/nginx/conf.d/default.conf

创建 default.conf

填入以下内容

server {listen 80 default_server;root /var/www/html;index index.html index.php;charset utf-8;location / {try_files $uri $uri/ /index.php?$query_string;}location = /favicon.ico { access_log off; log_not_found off; }location = /robots.txt  { access_log off; log_not_found off; }access_log off;error_log  /var/log/nginx/error.log error;sendfile off;client_max_body_size 100m;location ~ \.php$ {fastcgi_split_path_info ^(.+\.php)(/.+)$;fastcgi_pass php:9000;fastcgi_index index.php;include fastcgi_params;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;fastcgi_intercept_errors off;fastcgi_buffer_size 16k;fastcgi_buffers 4 16k;}location ~ /\.ht {deny all;}}

在/mydocker/lemp/当中创建 php/Dockerfile

填入

FROM php:7.0-fpmRUN docker-php-ext-install mysqli

编排docker 容器

 docker-compose up -d

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-T1AJZ2pZ-1670514103701)(https://s3.uuu.ovh/imgs/2022/12/08/f62fcfff02dd9bf7.png)]

Docker ps 查看容器运行情况

成功启动

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-r3qsdvmZ-1670514103701)(G:\部署\云原生\Docker-compose容器编排.assets\fd03d0bf28369f44.png)]

本机通过ip 访问 php 环境和nginx 环境

访问成功

将本机配置dns的服务器为 虚拟机即192.168.90.215

打开cmd 窗口对 cr.com 进行ping 测试

成功ping通

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TVOI5Rk0-1670514103702)(G:\部署\云原生\Docker-compose容器编排.assets\wps100.jpg)]

通过域名访问搭建的php环境

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-45sHeONa-1670514103703)(https://s3.uuu.ovh/imgs/2022/12/08/a2df7ab807a627ea.png)]

修改nginx配置文件

最终域名直接访问网站

Docker-compose容器编排相关推荐

  1. Docker compose 容器编排

    1. 概述 问题:如果要使用 Docker 运行 LNMP 架构,那么 Nginx.MySQL.PHP. Linux三个服务运行在一个容器里,还是运行在多个容器里呢? 答案是都可以. 你可以分别放在三 ...

  2. Docker学习(六):docker compose容器编排

    Docker-compose 实现对容器集群的快速编排 多服务部署的管理工具 定义docker-compose.yml文件,写好容器之间的调用关系,通过命令完成多个容器的同时启动关闭 解决了容器与容器 ...

  3. Docker Compose 容器编排基础使用

    Compose 是用于定义和运行多容器 Docker 应用程序的工具.通过 Compose,可以使用 YML 文件来配置应用程序需要的所有服务.然后,使用一个命令,就可以从 YML 文件配置中创建并启 ...

  4. Docker Compose容器编排

    Compose 是 Docker 公司推出的一个工具软件,可以管理多个 Docker 容器组成一个应用.你需要定义一个 YAML 格式的配置文件docker-compose.yml, 写好多个容器之间 ...

  5. 这就是你日日夜夜想要的docker!!!---------Docker Compose容器编排理论+实操

    文章目录 一.Compose简介 1.在Compose中有两个重要的概念 2.docker,dockerfile与docker-compose区别 二.Compose安装与卸载 1.Centos系统安 ...

  6. Docker 多容器编排Swarm(六)

    docker swarm简介 Docker Swarm 和 Docker Compose 一样,都是 Docker 官方容器编排项目,但不同的是,Docker Compose 是一个在单个服务器或主机 ...

  7. 浅述 Docker 的容器编排

    作者 | 天元浪子 来源 | CSDN博客 概述 作为容器引擎,Docker为容器化的应用程序提供了开放标准,使得开发者可以用管理应用程序的方式来管理基础架构,实现快速交付.测试和部署代码.随着容器的 ...

  8. docker Swarm容器编排工具

    目录 一.什么是docker swarm 二.Docker Swarm 基本结构 三.Swarm的几个关键概念 四.swarm的调度策略 五.Swarm Cluster模式特性 六.搭建docker ...

  9. dockers-系统学习-docker compose服务编排

    dockers-系统学习-docker compose服务编排 一.服务编排 1.1.概念 按照一定的业务规则批量管理容器 1.2.问题 微服务架构的应用系统中一般包含若干个微服务,每个微服务一般都会 ...

  10. 基于 Docker Compose 容器化搭建 Wordpress

    基于 Docker Compose 容器化搭建 Wordpress 最近由于业务需求帮公司搞了几个 Wordpress 作为官网,中间也是踩了不少坑,倒不是搭建 wordpress 难,主要是 wor ...

最新文章

  1. linux shell 字符串查找
  2. IDEA搭建Maven Web(SSM)项目(一)——创建项目
  3. 11、mybatis的功能架构分析
  4. MPI Maelstrom——Dijkstra
  5. WordPress 添加网页图标
  6. drupalchina--如何翻译及如何上传翻译的内容?
  7. idea 2020和2017下载
  8. C语言 显示器键盘io
  9. 沪江前端由H5页面引起的一场前端数据结构讨论
  10. CentOS 7 配置Java环境变量
  11. 7.Django|分页器
  12. 中医为什么会发明比血管更玄乎的经脉呢
  13. faster rcnn源码阅读笔记2
  14. 【Luyten反编译工具】
  15. 信度spss怎么做_实用干货!信度分析超全步骤总结!
  16. 日期倒计时App——SpecialDay
  17. RTOS系列(12):使用SVC或PendSV启动OS流程详细分析
  18. PAT 乙级 1040 有几个PAT (25分)
  19. 什么是 RESTful ?
  20. [2008-05-26]我的梦

热门文章

  1. bzoj-1031 字符加密Cipher
  2. 跨行交易的一些常见的知识
  3. 【python+pyqt5】B站直播弹幕姬
  4. mac 下安装 Crypto
  5. 群晖 6.1 重置 mysql,重置群晖Synology NAS
  6. word怎么显示计算机数字,如何使word文档自动显示字数统计 Word自动统计文档字数在哪里...
  7. 51nod《拉勾专业算法能力测评》测试有感
  8. linux命令一键卸载nginx,linux服务器nginx的卸载和安装
  9. 腾讯入股山东福瑞达生物,投前估值36亿元,再次加码医美赛道
  10. 图像绘制到屏幕上的原理。