docker-compose 单机容器编排

docker-compose 单机容器编排

Dockerfile:先配置好的文件,然后bulid,镜像容器。

docker-compose 既可以基于dockerfile,也可以基于镜像,一键式拉起镜像和容器。

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

什么场景下我们用到docker

docker:单节点。docker没有同一对外提供的端口和配置。docker一般都是内部访问。无需使用https。如果要对外和分布式的方式提供统一访问的端口,k8s+ingress。

docker-compose的常用命令:

build:构建服务

ps:列出由docker-compose编排出来的容器

up:创建和启动容器

top:显示容器的进程

logs:查看容器的输出日志

down:删除容器,网络,数据卷。

exec:在容器当中执行命令。

stop/start/restart

scale:指定容器启动的副本(一模一样的容器)nginx3

安装docker-compose

mv docker-compose-linux-x86_64 docker-compose

mv docker-compose /usr/local/bin/

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

docker-compose -v

查看结构:

yum -y install tree

创建简单nginx

mkdir compose-nginx

cd compose-nginx/

mkdir nginx

vim Dockerfile

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

CMD ["/usr/local/nginx/sbin/nginx","-g","daemon off;"]

配置访问页面

mkdir www

echo "this is nginx1" > index.html

在nginx和www目录下创建docker-compose.yml

vim docker-compose.yml

version: '3'

#指定docker-compose的文件版本

services :

#定义需要运行的服务

nginx:

container_name: web1

#指定创建容器的名字。

hostname: nginx

#指定容器的主机名

build:

#指定构建nginx容器的.上”下文以及dockerfile

context: /opt/compose-nginx/nginx

#指定dockerfile的位置,如果用镜像换成image:

dockerfile: Dockerfile

ports:

#直接指定宿主机和容器的端口映射关系

- 1213:80

networks:

#声明给容器指定的IP地址

mynet:

#自定义网络

ipv4_address: 172.18.0.10

volumes:

- /opt/compose-nginx/www:/usr/local/nginx/html

networks:

#创建自定义网桥接口配置

mynet:

driver: bridge

#声明网段的类型

ipam:

#声明网段,ip地址的管理和配置

config:

#子网配置,指定IP地址的范围:

- subnet: 172.18.0.0/16

启动:

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

查看结构:

先拉镜像 docker pull centos:7

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

docker-compose:命令的开头,使用docker-compose进行容器编排

-f:使用特定的compose的模版文件, -般都用docker-compose.yml

-p:project-name:指定项目名称,如果不加,会使用目录名称

-d:后台运行

只能要在 docker-compose.yml文件下才能用命令

进入直接 docker exec -it web1 bash

docker-compose最直接的 作用就是一键拉起镜像容器。不需要docker run

实验:直接拉起lnmp

mkdir lnmp

nginx:

mysql:

php:

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

container_name: mysql_server

networks:

lnmp:

ipv4_address: 172.111.0.20

privileged: true

volumes:

- "mysql-data:/usr/local/mysql/"

php:

hostname: php

build:

context: /opt/lnmp/php/

dockerfile: Dockerfile

ports:

- 9000:9000

- "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:

privileged: true

#虽然我们登录容器,显示的是root用户,伪管理员,一旦privileged: true,容内的root用户和宿主机的root用户,拥有一-样的权限,在生产中能不给就不给。

设置网络:

启动

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

进入数据库,打开远程连接权限

create database wordpress;

grant all privileges on wordpress.* to 'wordpress'@'%' identified by '123456';

grant all privileges on *.* to 'root'@'%' identified by '123456';

flush privileges;

docker-compose 特点:

单机容器编排构建,可以实现以及是的拉起镜像和创建容器。

yml文件的格式:

version: '3'

解析代码的版本,声明解释器

services:

声明服务,可以由多个services

networks:

写在服务配置,赋予容器ip当中

写在定格,大的模块,创建网段!

volumes:

nginx nginx-data: /usr/local/nginx

volumes:

nginx-data:

mysql-data:

docker-compose核心就是yml文件, yml就是把docker run的命令写成代码。

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

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

相关文章

idea__SpringBoot微服务11——整合Druid数据源(新依赖)(新注解)

整合JDBC 一、导入依赖二、配置Druid————————创作不易,如觉不错,随手点赞,关注,收藏(* ̄︶ ̄),谢谢~~ 接着 第10的 新注解: ConfigurationProperties ConfigurationPropert…

介绍一款上传漏洞fuzz字典生成工具

介绍一款上传漏洞fuzz字典生成工具 1.工具概述2.安装3.参数解析4.使用案例1.工具概述 upload-fuzz-dic-builder是一个上传漏洞fuzz字典生成脚本,生成时给的上传点相关信息越详细,生成的字典越精确 upload-fuzz-dic-builder 2.安装 克隆项目: git clone git@github.com:c…

TCP/IP详解——TCP 协议

文章目录 一、传输层协议1. TCP1.1 TCP 的字节流1.2 TCP 端口号1.3 TCP 头部1.4 TCP 选项部分字段1.5 TCP 三次握手1.6 TCP 三次握手不成功1.6.1 TCP 拒绝(被RST重置)1.6.2 TCP 半连接1.6.3 TCP 连接无响应 1.7 TCP 传输过程及原理1.7.1 TCP 传输过程1.7…

现代雷达车载应用——第2章 汽车雷达系统原理 2.4节 雷达波形和信号处理

经典著作,值得一读,英文原版下载链接【免费】ModernRadarforAutomotiveApplications资源-CSDN文库。 2.4 雷达波形和信号处理 对于连续波雷达来说,波形决定了其基本信号处理流程以及一些关键功能。本节将以FMCW波形为例,讨论信号…

【MySQL命令】show slave status\G 超详细全面解释

这个命令是DBA日常运维中常用来查看主从状态的命令,很多备份,监控工具也会使用到该命令监控主从状态是否正常,主从延迟,获取位点信息等。作为常用日常命令,一定要完全理解该命令的输出。今天主要结合 官方文档 和 实际…

iptables详解

1、介绍 iptables 是一个在 Linux 系统上用于配置和管理防火墙规则的工具。它允许系统管理员定义数据包的过滤规则、网络地址转换(NAT)规则和数据包的网络地址和端口的转发规则。iptables 提供了非常灵活和强大的功能,可以用于保护网络安全、…

Python数据科学视频讲解:Python序列的概念及通用操作

2.10 Python序列的概念及通用操作 视频为《Python数据科学应用从入门到精通》张甜 杨维忠 清华大学出版社一书的随书赠送视频讲解2.10节内容。本书已正式出版上市,当当、京东、淘宝等平台热销中,搜索书名即可。内容涵盖数据科学应用的全流程,…

Python 自动化之收发邮件(一)

imapclient / smtplib 收发邮件 文章目录 imapclient / smtplib 收发邮件前言一、基本内容二、发送邮件1.整体代码 三、获取邮件1.整体代码 总结 前言 简单给大家写个如何用Python进行发邮件和查看邮件教程,希望对各位有所帮助。 一、基本内容 本文主要分为两部分…

为什么FPGA是战略芯片?

FPGA(Field Programmable Gate Array)是在PAL(可编程阵列逻辑)、GAL(通用阵列逻辑)等可编程器件的基础上进一步发展的产物,它是作为一种半定制电路而出现的,既解决了定制电路的不足&…

c++知识总结

一 细碎知识 1.27 # 1.27.1 # pragma once 参考 C++学习笔记之pragma once的理解_pragma once什么意思-CSDN博客https://blog.csdn.net/lynnlee_36/article/details/105322937作用 保证只被编译一次,和#ifndef,#define,#endif功能相同 1.27.2 #if defined(__cplusplus…

1688按关键字搜索工厂数据,商品详情页数据的采集

公共参数 名称类型必须描述keyString是调用key(必须以GET方式拼接在URL中,点击获取测试key和secret)secretString是调用密钥api_nameString是API接口名称(包括在请求地址中)[item_search,item_get,item_search_shop等]cacheStrin…

十个Vue3实用但是冷门的API

文章目录 一、前言二、readonly三、shallowRef四、shallowReactive五、toRef & toRefs5.1、 toRef5.2、toRefs 六、toRaw & markRaw & unref6.1、toRaw6.2、markRaw6.3、unref 七、effectScope & onScopeDispose7.1、收集副作用7.2、全局状态管理 八、provide …

如何防止订单重复支付的?

如图是一个简化的下单流程,首先是提交订单,然后是支付。 支付的话,一般是走支付网关(支付中心),然后支付中心与第三方支付渠道(微信、支付宝、银联)交互。 支付成功以后&#xff0c…

2023-03-27 在vmware 下安装 TrueNAS

Download TrueNAS SCALE - Data Storage Software 安装 TrueNAS 的,官网推荐系统要求: 处理器 记忆 启动装置 贮存 2 核 Intel 64 位或 AMD x86_64 处理器 8 GB 内存 16 GB SSD 引导设备 用于单个存储池的两个相同大小的设备 等待系统安装完成 esxi搭建true…

OpenHarmony应用开发——实现Toast提示功能-鸿蒙物联网应用开发-HarmonyOs应用开发

一、前言 本文我们将实现Toast样式的功能,以便于和用户进行简单、基本的信息交互。需要注意的是,本专栏(OpenHarmony应用开发)不阐述UI设计内容,而主要介绍大家开发中常遇到、常使用的功能问题,以及在物联网…

华为OD试题五(数列描述、矩阵最大值、数据分类)

1. 数列描述 示例代码&#xff1a; # 核心 从第一项 推 第N项目 # 第一项 a0 1 # 推到 第N项 N 4 def fun(a0):# 计算每一项的具体值result left 0cursor 0while cursor < len(a0):if a0[cursor] ! a0[left]:count cursor -leftresult "{}{}".format(str(…

H5开发App应用程序的常见问题以及解决方案

Hello大家好&#xff0c;我是咕噜铁蛋&#xff0c;天冷记得添衣&#xff0c;ok话说回来H5开发成为了一种流行的方式来构建跨平台的移动应用程序。然而&#xff0c;在H5开发App应用程序的过程中&#xff0c;我们常常会遇到一些问题&#xff0c;这些问题可能涉及性能、兼容性、用…

分层解耦—三层架构

目录 三层架构 分层解耦 IOC&DI 三层架构 在进行程序设计以及程序开发时&#xff0c;尽可能让每一个接口、类、方法的职责更单一些&#xff08;单一职责原则&#xff09;。 单一职责原则&#xff1a;一个类或一个方法&#xff0c;就只做一件事情&#xff0c;只管一块功…

MySQL主从复制与读写分离实验

实验一、MySQL主从服务器搭建 实验前准备 Master服务器&#xff1a;192.168.188.14 mysql5.7 Slave服务器1&#xff1a;192.168.188.15 mysql5.7 Slave服务器2&#xff1a;192.168.188.16 mysql5.7 关闭虚拟机防火墙 systemctl stop firewalld setenforce 0 主服务器准…

线性回归问题

目录 一、线性回归关键思想 1、线性模型 2、基础优化算法 二、线性回归的从零开始实现 1、生成数据集 2、读取数据集 3、初始化模型参数 4、定义模型 5、定义损失函数 6、定义优化算法 7、训练 三、线性回归的简洁实现 1、生成数据集 2、读取数据集 3、定义模型…