Docker系列---Docker Compose | 容器编排 | 理论详解

news2024/9/24 7:23:47

目录

1.Docker Compose 概述(YML)

2.Docker Compose 安装

3.Docker Compose 配置常用字段

4.Docker Compose 常用命令

5.基于 Compose 创建 镜像

1.首先安装好Compose

2.使用Dockerfile环境:


1.Docker Compose 概述(YML)

         我们再在使用 Docker 的时候,通过定义 Dockerfile 文件,然后使用 docker build 、docker run 等命令来生成镜像与启动容器。然而微服务架构的应用系统一般包含若干个微服务,每个微服务一般都会部署多个实例,如果每个微服务都要手动启停,那么效率之低,维护量之大可想而知。使用 Docker Compose 可以轻松、高效的管理容器,它是一个用于定义和运行多容器 Docker 的应用程序工具。Docker Compose 使用 YML 文件来配置应用程序所需要的的所有服务,非常适合组合使用多个容器进行开发的场景,且不再需要使用 shell 脚本来启动容器。

YML(重点):

1.YAML是一种标记语言很直观的数据序列化格式,通常以.yml或.yaml为后缀的文件,阅读性很友好
2.不支持制表符tab键缩进,需要使用空格缩进,使用缩进表示层级关系
3.通常开头缩进 2 个空格,缩进的空格数不重要,只要相同层级的元素左对齐即可
4.字符后缩进一个空格,如冒号、逗号、横杆,如果包含特殊字符用单引号引起来
5.用'#'号表示注释

2.Docker Compose 安装

yum install -y  docker-ce

cd /usr/local/bin/   把本地软件包拖进来docker-compose
或者
curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose

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

docker-compose -v		

3.Docker Compose 配置常用字段

字段描述
build dockerfile context指定Dockerfile文件名构建镜像上下文路径
image指定镜像
command执行命令,覆盖默认命令
container name指定容器名称由于容器名称是唯一的,不要随意自定义名称
deploy指定部署和运行服务相关配置
environment添加环境变量
networks加入网络
volumes挂载宿主机路径或命令卷
restart重启策略,默认为no、always、no-failure、unless-stoped
hostname容器主机名

4.Docker Compose 常用命令

'命令格式:'
docker-compose [选项] [命令] [参数]

'常用选项:'
-verbose:输出更多调试信息
-version:打印版本并退出
-f:使用特定的compose模板文件,默认为docker-compose.yml
-p:指定项目名称,默认使用目录名称
字段解释
build重新构建服务
ps列出容器
up创建和启动容器
exec在容器内执行命令
scale指定一个服务容器的启动数量
top显示容器进程
logs查看容器输出
down删除容器、网络、数据卷和镜像
stop/start/restart停止/启动/重启服务

5.基于 Compose 创建 镜像

1.首先安装好Compose

2.使用Dockerfile环境:

mkdir -p /root/compose_nginx/nginx
cd /compose_nginx/nginx/
nginx-1.12.2.tar.gz

vim Dockerfile

FROM centos:7

MAINTAINER dark

RUN yum -y install pcre-devel openssl-devel zlib-devel gcc gcc-c++ make 

RUN useradd -M -s /sbin/nologin nginx

ADD nginx-1.12.2.tar.gz /usr/local/src

WORKDIR /usr/local/src/nginx-1.12.2
RUN ./configure --prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-file-aio \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-http_flv_module \
--with-http_ssl_module

RUN make && make install

RUN ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
RUN ln -s /usr/local/nginx/conf/nginx.conf /etc/


RUN rm -rf /lib/systemd/system/nginx.service

ADD nginx.service /lib/systemd/system/nginx.service
RUN chown nginx.nginx /lib/systemd/system/nginx.service

RUN chmod 754 /lib/systemd/system/nginx.service

EXPOSE 80
EXPOSE 443


RUN echo "daemon off;" >> /usr/local/nginx/conf/nginx.conf

CMD ["/usr/local/nginx/sbin/nginx"]

(1)准备依赖文件

 

(2)编写配置文件docker-compose.yml

echo 1 > /proc/sys/net/ipv4/ip_forward
sysctl -w net.ipv4.ip_forward=1
sysctl -p /etc/sysctl.conf

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

docker ps -a
docker-compose ps

 

浏览器访问:http://192.168.156.10:1216

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

docker + K8S + Rancher + Harbor的安装

docker K8S Rancher Harbor的安装 1. 系统初始化 关闭防火墙 systemctl stop firewalld禁用防火墙开机自启 systemctl disable firewalld永久-关闭selinux sed -i s/enforcing/disabled/ /etc/selinux/config # 重启 reboot关闭swap分区 # 永久 sed -ri s/.*swap.*/#&/…

重启电脑数据丢失怎么恢复?这篇指南很受用!

案例分享:“你好,我重新启动了我的win10电脑,电脑为什么再次开机后,下载的软件就不见了?不仅如此,我的文档也消失不见了,这令我很困惑。请问重启电脑数据丢失怎么恢复?请大家帮帮我&…

系统分析师考试,信息安全常错题

计算机网络---其他 Stub区域是一种比较特殊的区域,因为它不能像其他区域那样,经过该区域中的ABR接收其他OSPF AS路由。在Stub区域的内部路由器仅需要配置一条到达该区域ABR的默认路由(0.0.0.0.0.0.0.0)来实现与同一AS中不同区域间…

CloudCompare插件开发之如何设计界面ui与功能实现?

文章目录 0.引言1.使用文件说明2.添加界面ui相关文件到插件目录3.修改工程相关文件并生成4.结果展示 0.引言 CloudCompare源代码编译成功后,即可进行二次开发,可通过修改源码实现二次开发基础功能(见:CloudCompare如何进行二次开发…

#mysql binlog 备份恢复数据流程#

模式:mysql全量备份binlog日志完整恢复数据 首先,数据库在误操作之前必须已经开启了binlog日志功能,且binlog日志的保存周期必须大于全备份的时间周期! 所谓恢复,就是让将全备份的数据全部恢复后,再使用my…

HTB-Time

HTB-Time 信息收集80端口 立足pericles -> root 信息收集 80端口 有两个功能,一个是美化JSON数据。 一个是验证JSON,并且输入{“abc”:“abc”}之类的会出现报错。 Validation failed: Unhandled Java exception: com.fasterxml.jackson.core.JsonPa…

当⻉借⼒阿⾥云落地云原⽣架构转型,运维降本、效率稳定性双升

作者:当贝技术团队 随着业务飞速发展,当贝的传统 IT 资产也渐显臃肿,为了避免制约发展的瓶颈,痛定思痛,技术团队果断变革:核心业务云原生化之后,运维效率、整体稳定性和研发效率均得到了全面提…

网络基础知识

网络基础知识 一、什么是二层互通与三层互通?1.1 二层网络互通1.2 三层网络互通 二、什么是Overlay网络?2.1 Underlay网络2.2 Overlay网络2.3 Underlay网络 vs Overlay网络 三、什么是SNMP?3.1 SNMP概念3.2 为什么需要SNMP?3.3 SN…

基于ubuntu18.04.6 LTS服务器安装nvidia驱动

1对于一个刚刚配置的服务器,首先nvidia-smi,自然无法显示Driver Version、最高cuda版本等信息。 nvidia-smi: command not found 需要我们自己安装nvidia驱动 2禁用老驱动 禁用自带nouveau驱动 sudo vim /etc/modprobe.d/blacklist.conf 打开后在CONF文…

本地配置nacos例子

nacos的加载顺序 0、application.properties 1、bootstrap.properties 2、bootstrap-{profile}.properties #本地启动 nacos的配置文件的生成规则,当我正常启动项目时 nacos的配置文件名字生成规则为 ${spring.application.name}.yaml spring:application:name…

面试redis之两大金刚,你懂吗

前言 Redis持久化,一个老掉牙的问题,但是面试官就是喜欢问。这也是我们学Redis必会的一个知识点。Redis作为内存数据库,它工作时,数据都保存在内存里,这也是它为什么很快的一个原因。但存到内存里肯定是有丢数据的风险…

为什么我们能判断声音的远近

想象一下,当我们走在路上时,听到了头顶的鸟儿在树梢间的叫声,即使无法透过浓密的树叶看见它,也可以大致知道鸟儿的距离。此时身后传来由远到近自行车铃铛声,我们并不需要回过头去看,便为它让开了道路。这些…

查找文件路径——whereis、which、locate、find命令

目录标题 whereis命令——通过环境变量查找所有文件(包括可执行文件)which命令——查找系统命令文件与whereis命令区别 locate命令——全局搜索find命令(全盘搜索)find命令中的参数及作用按照文件名搜索按照文件大小搜索按照修改时…

离散数学-考纲版-02-谓词

文章目录 2. 谓词参考2.1 命题2.1 个体谓词和量词2.1.1 个体2.1.2 谓词2.1.3 量词引入个体域符号化量词真值确定谓词符号化举例示例一示例二示例三示例四 2.3谓词合式公式2.3.1 四类符号2.3.2 项2.3.3 合式公式 2.4 自由变元与约束变元2.4.1 定义2.4.2 判定2.4.3 两个规则2.4.4…

【京东】商品详情页+商品列表数据采集

作为国内最大的电商平台之一,京东数据采集具有多个维度。 有人需要采集商品信息,包括品类、品牌、产品名、价格、销量等字段,以了解商品销售状况、热门商品属性,进行市场扩大和重要决策; 有人需要采集产品评论&…

Android OpenGL 渲染相机预览画面显示体系

OpenGL能进行高效得渲染图形图像,并支持各种复杂的特效和动画。 而在 Android 当中,运用的是OpenGL ES,它是OpenGL的一个轻量级版本,专门用于在移动设备、游戏控制台、嵌入式系统等嵌入式环境中使用。 它可以做相机滤镜或者图片…

基于html+css的图片展示31

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

yield用法理解,配有代码块和解析

包含 yield 关键字的函数,是一个生成器 yield和return的区别 1、return是返回return关键字的值,被调用一次就返回一次,return只能放在一个函数代码块的最后面,运行到return的时候,就结束循环,结束这个函数…

IO、存储、硬盘、文件系统相关常识

目录 IO 文件系统 存储 存储这些数据的硬盘 IO io分为io设备和io接口, 我们日常生活中的打印机, 固态硬盘等都是io设备. IO(Input-Output)是指计算机中输入输出的相关操作,包括数据的读取、存储、传输和显示等。存储是指将数据保存在计算…

美国肝素钠专用树脂,医药肝素钠提取工艺专用树脂

具有控制孔径的大孔强碱性Ⅰ型阴离子交换树脂 Tulsimer A-72 MP 是一款具有便于颜色和有机物去除的控制孔径的,专门开发的大孔强碱性Ⅰ型阴离子交换树脂。 Tulsimer A-72 MP专门应用于去除COD以及其他有机物等。 Tulsimer A-72 MP 由于其本身的大孔特性而显示出…