Docker-compose单机容器集群编排

yml文件概述

是一种标记语言,以竖列的形式展示序列化的数据,可读性高。 类似于json格式,语法简单。 YAML通过缩进来标识数据结构,连续的项目用-减号来表示。

yml文件使用注意事项:

  • 1、大小写敏感
  • 2、通过缩进表示层级关系
  • 3、只能用空格缩进,不能用tab键
  • 4、可以使用#注释
  • 5、符号字符后面都有一个空格
  • 6、单引号引起来的字符,会被当做普通字符串处理,""#&"双引号里面是特殊字符,就是本义

Docker-compose单机容器编排

Dockerfile:先配置好文件,然后build镜像,再创建容器
Dockerfile-compose:既可以基于dockerfile,也可以基于镜像,一键式拉起镜像和容器。

Docker-compose核心就是yml文件,可以定义容器的一切,通过yml配置直接运行容器。

Docker-compose的常用命令:
build:构建服务
ps:列出由docker-compose编排出来的容器
up:创建和启动容器
top:显示容器的进程
logs:查看容器的输出日志
down:删除容器、网络、数据卷
exec:再容器中执行命令
stop/start/restart:停止,启动,重启容器
scale:指定启动的容器数量(副本)

Docker-compose搭建nginx

cd /opt
--上传docker-compose-linux-x86_64--
mv docker-compose-linux-x86_64 docker-compose
mv docker-compose /usr/local/bin/
chmod 777 /usr/local/bin/docker-compose
docker-compose -v

mkdir compose-nginx
cd compose-nginx
mkdir nginx
cd nginx
--上传nginx-1.22.0.tar.gz--
vim Dockfile

FROM centos:7
RUN yum -y install pcre-devel zlib-devel gcc gcc-c++ make && useradd -M -s /sbin/nologin nginx
ADD nginx-1.22.0.tar.gz /usr/local/src/
WORKDIR /usr/local/src/nginx-1.22.0
RUN ./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx  \
--with-http_stub_status_module && make -j 4 && make install
ENV PATH /usr/local/nginx/sbin:$PATH
EXPOSE 80
ENTRYPOINT ["/usr/local/nginx/sbin/nginx","-g","daemon off;"]
cd ..
mkdir www
cd www
echo this is nginx1 > index.html
cd /opt/compose-nginx
tree

vim docker-compose.yml

#指定docker-compose的文件版本
version: '3'
#定义需要运行的服务
services:
#指定创建容器的名字
  nginx:
    container_name: web1
#指定容器的主机名
    hostname: nginx
#指定构建nginx容器的上下文以及Dockerfile
    build:
#指定Dockerfile的位置,如果用镜像则换成image:
      context: /opt/compose-nginx/nginx
      dockerfile: Dockerfile
#指定宿主机和容器的端口映射关系
    ports:
      - 1213:80
#声明给容器指定的IP地址
    networks:
#自定义网络
      mynet:
        ipv4_address: 172.18.0.10
    volumes:
      - /opt/compose-nginx/www:/usr/local/nginx/html
#创建自定义网桥接口配置
networks:
  mynet:
#声明网段的类型
    driver: bridge
#声明网段,ip地址的管理和配置
    ipam:
#子网配置,指定ip地址的范围
      config:
        - subnet: 172.18.0.0/16

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

-------------------------------------------------------------------------------------------
docker-compose:命令开头,使用docker-compose进行容器编排
-f:使用特定的compose的模板文件,一般都用docker-compose.yml
-p:project-name:指定项目名称,如果不加会使用目录名称
-d:后台运行
-------------------------------------------------------------------------------------------

浏览器访问:20.0.0.10:1213

Docker-compose搭建LNMP

cd /opt
mkdir lnmp
cd lnmp
mkdir ngin mysql php
--Dockerfile文件配置具体参考上篇博客--
vim docker-compose.yml

version: '3'
services:
  nginx:
    hostname: nginx
    build:
      context: /opt/lnmp/nginx/
      dockerfile: Dockerfile
    ports:
      - 1314:80
    container_name: nginx_server
    networks:
      lnmp:
        ipv4_address: 172.111.0.10
    volumes:
      - "nginx-data:/usr/local/nginx/html/"

  mysql:
    hostname: mysql
    build:
      context: /opt/lnmp/mysql
      dockerfile: Dockerfile
    ports:

   - 3306:3306
     ntainer_name: mysql_server
         networks:
           lnmp:
     ipv4_address: 172.111.0.20
         privileged: true
     #虽然我们登录容器,显示的是root用户,没有给privileged的话只是个伪管理员,一旦privileged: true,则容器内的root用户和宿主机的root用户拥有一样的权限,在生产中能不给就不给。
         volumes:
        - "mysql-data:/usr/local/mysql/"
          php:
              hostname: php
              build:
                context: /opt/lnmp/php
                dockerfile: Dockerfile
              ports:
             - 9000:9000
               ntainer_name: php_server
                   networks:
                     lnmp:
               ipv4_address: 172.111.0.30
                   volumes:
                  - "nginx-data:/usr/local/nginx/html/"
                    "mysql-data:/usr/local/mysql/"

networks:
  lnmp:
    driver: bridge
    ipam:
      config:
        - subnet: 172.111.0.0/16

volumes:
  nginx-data:
  mysql-data:
docker-compose -f docker-compose.yml up -d

浏览器访问:http://20.0.0.10:1314/wordpress/index.php

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/240900.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

文心一言 VS 讯飞星火 VS chatgpt (155)-- 算法导论12.3 2题

二、用go语言,假设通过反复向一棵树中插人互不相同的关键字来构造一棵二叉搜索树。证明:在这棵树中查找关键字所检查过的结点数目等于先前插入这个关键字所检查的结点数目加 1。 文心一言: 为了证明这个结论,我们可以使用二叉搜…

JavaScript中的构造函数是什么,如何使用ES6中的类来进行构造函数的封装和继承?

目录 学习目标: 学习内容: 学习时间: 学习讲解: 深入对象 创建对象三种方式 构造函数 练习 实例化执行过程 说明:1. 创建新对象2. 构造函数this指向新对象3. 执行构造函数代码,修改this&#xff…

Qt使用Cryptopp生成HMAC-MD5

近期项目中HTTPS通讯中,token需要使用HMAC-MD5算法生成,往上找了一些资料后,仍不能满足自身需求,故次一记。 前期准备: ①下载Cryptopp库(我下载的是8.8.0 Release版本):Crypto Li…

搬运机器人行业分析:中国市场销量已达到6.3万台左右

近年来,随着我国人口红利的逐渐消失,企业用工成本不断上涨,各种工业机器人获得了广泛的应用。焊接、装配、切割、分拣、搬运等机器人的出现,不仅通过“机器换人”解放了企业和行业的生产力,更推动了产业发展由劳动密集…

2012r2无法启动此程序,因为计算机中丢失api-ms-win-crt-runtime-l1-1-0.dll。测试成功,完美解决。

2012r2修复api-ms-win-crt-runtime-l1-1-0.dll资源-CSDN文库csdn的下载地址 若要开始下载,请单击“下载”按钮,然后执行以下操作之一,或者从“更改语言”中选择另一种语言,然后单击“更改”。 单击“运行”立即开始安装。单击“保…

[C++] 继承

文章目录 1、继承的概念及定义1.1 继承的概念1.2 继承的定义1.2.1 定义格式1.2.2 继承关系和访问限定符1.2.3 继承基类成员访问方式的变化 2、基类和派生类对象赋值转换3、继承中的作用域4、派生类的默认成员函数5、继承与友元6、继承与静态成员7、菱形继承,菱形虚拟…

Qt提升绘制效率,绘制加速。

在我们绘制一些复杂逻辑且数据量巨大的图形时,经常会出现流畅性问题,本文就是来进行讲解如何提升绘制效率的。 实现思路: 场景1:我们绘制多个静态图形和绘制一张图片哪个更快。很明显绘制多个图形的时候要慢很多。所以我们将多个图…

K8S(一)—安装部署

目录 安装部署前提以下的操作指导(在master)之前都是三台机器都需要执行 安装docker服务下面的操作仅在k8smaster执行 安装部署 前提 以下的操作指导(在master)之前都是三台机器都需要执行 关闭防火墙 [rootk8smaster ~]# vim /etc/selinux/config [rootk8smaster ~]# swa…

深入源码解析ArrayList:探秘Java动态数组的机制与性能

文章目录 一、 简介ArrayList1.1 介绍ArrayList的基本概念和作用1.2 与数组的区别和优势 二、 内部实现2.1 数据结构:动态数组2.2 添加元素:add()方法的实现原理2.3 扩容机制:ensureCapacity()方法的实现原理 三、 常见操作分析3.1 获取元素&…

Postswigger 靶场 XSS 通关

文章目录 PostSwigger靶场XSS通关学徒:第一关学徒:第二关学徒:第三关学徒:第四关学徒:第五关学徒:第六关学徒:第七关学徒:第八关学徒:第九关 PostSwigger靶场XSS通关 靶…

2023_Spark_实验二十六:编写Shell模拟生成点击实时数据

引言:流式数据处理主要处理实时数据,由于实验教学过程中,每个同学无法拿到实时数据,因此我们开发shell脚本模拟实时数据生成,支持后续实验。 实验目的:通过开发模拟实时点击流shell脚本,模拟实时…

<JavaEE> 经典设计模式之 -- 线程池

目录 一、线程池的概念 二、Java 标准库中的线程池类 2.1 ThreadPoolExecutor 类 2.1.1 corePoolSize 和 maximumPoolSize 2.1.2 keepAliveTime 和 unit 2.1.3 workQueue 2.1.4 threadFactory 2.1.5 handler 2.1.6 创建一个参数自定义的线程池 2.2 Executors 类 2.3…

java答题小程序源码带后台

尊敬的客户大家好!接下来由我来介绍一下晟讯答题小程序,晟讯答题小程序是一款专业性的答题小程序,技术方式为前端原生开发的小程序,服务端为java程序,且拥有独立知识产权,软著登字2019SR0657453。其功能集个…

全球化表达:TikTok在文化交流中的崭露头角

TikTok,这一短视频平台自问世以来,迅速蔓延至全球,成为年轻一代创意表达的热门平台。其简便易用的特性和多元创作方式使得TikTok在全球范围内崭露头角。本文将深入探讨TikTok在文化交流中的作用,以及它在全球化表达方面的独特之处…

解决RuntimeError: CUDA error: invalid device ordinal

步骤 首先查看自己设备的cuda版本 #如下linux指令都可以,主要还是以nvidia-smi为主 nvidia-smi nvcc -V用的python版本是3.8 torch版本用的1.12.1cu113 torch网址:https://pytorch.org/get-started/previous-versions/ 安装完后发现出现如下问题&#…

蓝桥杯小白赛第一场(1~6)(期望DP)

1、模拟 2、贪心 3、前缀和 4、猜结论 5、双指针 6、期望DP 1. 蘑菇炸弹 思路&#xff1a;一个简单的暴力模拟。 #include <bits/stdc.h> using namespace std; int main() {int n;cin >> n;vector<int>a(n , 0);for(int i 0 ; i < n ; i )cin &…

深度学习中的各类评价指标

深度学习中的各类评价指标 1 Dice Loss2 Precision&#xff08;精度&#xff09;3 Recall&#xff08;召回率&#xff09;4 F-Score5 mAP 1 Dice Loss Dice Loss&#xff0c;也叫Soft Dice Coefficient&#xff0c;是一种用于图像分割任务的损失函数。它基于目标分割图像与模型…

分库分表,可能真的要退出历史舞台了!

即使是不懂编程的玩家&#xff0c;在对比 NAS 的时候&#xff0c;也会两眼放光&#xff0c;考虑很多因素&#xff0c;比如 RAID 级别、速度、易用程度等。作为时时刻刻与代码打交道的我们&#xff0c;更需要关注数据的存取问题。 一开始&#xff0c;开箱即用的 MySQL&#xff0…

AI一键生成增删改查代码

AI一键生成增删改查代码 在线体验&#xff1a;体验地址 使用教程 1. 描述需求 准确清晰的描述你的需求&#xff0c;如&#xff1a;基于RBAC模型的权限管理系统&#xff0c;点击AI图标 2. AI生成SQL语句 AI将根据你的需求描述生成SQL语句 CREATE TABLE users (id INT A…

高危性行为感染HPV几率有多大?谭巍主任阐述三大要点

高危性行为是指与多个性伴侣发生性行为&#xff0c;或者与性伴侣发生无保护措施的性行为。这些行为增加了感染性传播疾病的风险&#xff0c;包括人乳头瘤病毒(HPV)。 一、HPV感染的风险 1. 性伴侣数量&#xff1a;性伴侣数量越多&#xff0c;感染HPV的几率就越高。与多个性伴…