哪个网站可以在线做高考题,记事本做网站背景,招聘网站开发的背景,个体户45万以下免个税文章目录 Docker-compose容器编排1. 是什么2. 能干嘛3. 去哪下4. Compose 核心概念5. 实战 #xff1a;linux 配置dns 服务器#xff0c;搭建lemp环境#xff08;Nginx MySQL (MariaDB) PHP #xff09;要求6. 配置dns解析配置 lemp Docker-compose容器编排
1. 是什么
… 文章目录 Docker-compose容器编排1. 是什么2. 能干嘛3. 去哪下4. Compose 核心概念5. 实战 linux 配置dns 服务器搭建lemp环境Nginx MySQL (MariaDB) PHP 要求6. 配置dns解析配置 lemp Docker-compose容器编排
1. 是什么
Compose 是 Docker 公司推出的一个工具软件可以管理多个 Docker 容器组成一个应用。你需要定义一个 YAML 格式的配置文件docker-compose.yml写好多个容器之间的调用关系。然后只要一个命令就能同时启动/关闭这些容器
· Docker-Compose是Docker官方的开源项目 负责实现对Docker容器集群的快速编排。
2. 能干嘛
docker建议我们每一个容器中只运行一个服务,因为docker容器本身占用资源极少,所以最好是将每个服务单独的分割开来但是这样我们又面临了一个问题
如果我需要同时部署好多个服务,难道要每个服务单独写Dockerfile然后在构建镜像,构建容器,这样累都累死了,所以docker官方给我们提供了docker-compose多服务部署的工具
例如要实现一个Web微服务项目除了Web服务容器本身往往还需要再加上后端的数据库mysql服务容器redis服务器注册中心eureka甚至还包括负载均衡容器等等。。。。。。
Compose允许用户通过一个单独的docker-compose.yml模板文件YAML 格式来定义一组相关联的应用容器为一个项目project。
可以很容易地用一个配置文件定义一个多容器的应用然后使用一条指令安装这个应用的所有依赖完成构建。Docker-Compose 解决了容器与容器之间如何管理编排的问题。
3. 去哪下
官网 · 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-compose4. 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 命令安装 basehttps://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-machine5. 实战 linux 配置dns 服务器搭建lemp环境Nginx MySQL (MariaDB) PHP
要求
1 在Linux虚拟机中配置ip地址为192.168.90.215x为自己学号后3位y自行指定并且虚拟机能正常访问互联网
2 配置DNS服务器域为 cr.comabc为自己的姓名首字母配置完成后用nslookup进行正向和反向解析的校验
3 配置LEMP(即 Nginx MySQL (MariaDB) PHP通过真实主机访问 www.cr.comabc为自己的姓名首字母能访问搭建好的LEMP。不能去修改hosts文件做本地解析而必须使用自己配置的DNS
6. 配置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; };
};:wq 进行保存
编辑对应配置文件 vim /var/named/com.cr.loop
加入以下内容
$TTL 1DIN 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 1DIN 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 反向解析 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: truemysql:image: mysql:latestvolumes_from:- dataenvironment:MYSQL_ROOT_PASSWORD: secretMYSQL_DATABASE: bookmarksMYSQL_USER: crMYSQL_PASSWORD: cr123data:image: mysql:latestvolumes:- /var/lib/mysqlcommand: truephpmyadmin: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 Docker ps 查看容器运行情况
成功启动
本机通过ip 访问 php 环境和nginx 环境
访问成功 将本机配置dns的服务器为 虚拟机即192.168.90.215 打开cmd 窗口对 cr.com 进行ping 测试
成功ping通
通过域名访问搭建的php环境 修改nginx配置文件 最终域名直接访问网站