docker-compose的部署

这篇具有很好参考价值的文章主要介绍了docker-compose的部署。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、compose的概述

1.1 yaml的概述

1.2 yaml的数据结构

1.2.1 docker composeyml文件的常用手段

1.3 docker compose

1.4 yml文件编写

 二、部署compose

2.1 下载docker-compose安装包

 2.2 部署docker-compose

2.3 部署docker-compose

2.4 开启验证

 三、compose编排安装tomcat容器

总结


一、compose的概述

compose是docker官网开发的,负责实现对docker容器集群的快速编排。

docker-compose是基于docker的编排工具,使容器的操作能够批量的,可视的执行,是一个管理多个容器的工具,比如可以解决容器之间的依赖关系,当在宿主机启动较多的容器时候,
如果都是手动操作会觉得比较麻烦而且容器出错,这个时候推荐使用 dockerd的单机编排工具 docker-compose。

  • compose是一个用于定义及允许多个Docker容器的工具,主要是通过一个YAML文件进行服务配置

  • 使用Docker Compose不再需要使用Shell脚本来启动容器

  • Docker Compose非常适合组合使用多个容器进行开发的场景

Compose有2个重要的概念:

  • 项目(Project):由一组关联的应用容器组成的一个完整业务单元,在 docker-compose.yml 文件中定义。
  • 服务(Service):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例。

使用Compose 基本上分为三步:

1. Dockerfile      定义应用的运行环境
2. docker-compose.yml 定义组成应用的各服务
3. docker-compose up 启动整个应用

1.1 yaml的概述

yaml语言是方便人读写,它的实质就是通用的数据串行化格式

它的基本语法规则如下:

  • 大小写敏感
  • 使用缩进表示层级关系
  • 缩进时不允许使用Tab键,只允许使用空格
  • 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可

1.2 yaml的数据结构

  • 对象,键值对的集合
  • 数组,一组按次序排列的值,又称序列
  • 纯量,单个的,不可再分的值

1.2.1 docker compose.yml文件的常用手段

                字段                                                         描述
build  docker   filecontext    指定Dockerfile文件名构建镜像上下文路径
image                          指定镜像
command                   执行命令,覆盖默认命令
container name         指定容器名称,由于容器名称是唯一的,如果指定自定义名称,则无法scale
deploy                        指定部署和运行服务相关配置,只能在Swarm模式使用
environment               添加环境变量
networks                    加入网络
ports                           暴露容器端口,与-p相同,但端口不能低于60
volumes                      挂载宿主机路径或命令卷
restart                          重启策略,默认no,always,no-failure,unless-stoped
hostname                    容器主机名
 

1.3 docker compose

docker-compose -h                           # 查看帮助
docker-compose up                           # 创建并运行所有容器
docker-compose up -d                        # 创建并后台运行所有容器
docker-compose ps                           # 显示所用容器信息
docker-compose -f docker-compose.yml up -d  # 指定模板
docker-compose down                         # 停止并删除容器、网络、卷、镜像。
docker-compose rm                           # 删除容器
docker-compose logs                         # 查看容器输出日志
docker-compose pull                         # 拉取依赖镜像
dokcer-compose config                       # 检查配置
dokcer-compose config -q                    # 验证yaml配置文件是否正确,有问题才有输出
docker-compose pause                        # 暂停容器
docker-compose unpause                      # 恢复暂停
docker-compose restart                      # 重启服务
docker-compose start                        # 启动服务
docker-compose stop                         # 停止服务

1.4 yml文件编写

模板文件是使用 Docker Compose 的核心,涉及到的指令关键字也比较多。默认的模板文件名称为 docker-compose.yml ,格式为YAML 格式。一个 docker-compose.yml 文件可以分为三层:

#第一层 版本号
version: "3"  #代表使用docker-compose项目的版本号
#第二层:services 服务配置
services:
  web:
    build: .
    ports:  #宿主机和容器的端口映射
      - "5000:5000"
    volumes:
      - .:/code
  redis:
     image: "redis:alpine"
# 第三层 其他配置 网络、卷、全局规划

 

 二、部署compose

2.1 下载docker-compose安装包

从github上下载docker-compose二进制文件安装

curl -L https://github.com/docker/compose/releases/download/1.21.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
 

 2.2 部署docker-compose

//可以在任何目录下使用compose命令
cp -p docker-compose /usr/local/bin
chmod +x docker-compose
[root@localhost /]# docker-compose -v
docker-compose version 1.21.1, build 5a3f1a3

2.3 部署docker-compose

//可以在任何目录下使用compose命令
cp -p docker-compose /usr/local/bin
chmod +x docker-compose
[root@localhost /]# docker-compose -v
docker-compose version 1.21.1, build 5a3f1a3 

docker-compose的部署 首先创建一个总的目录

mkdir /root/compose_nginx
cd /root/compose_nginx
 
yum install -t tree
 

 添加docker-compose.yml

[root@server1 compose_nginx]# vi docker-compose.yml 
version: '3'
services:
  nginx:
    hostname: nginx
    build:
      context: ./nginx
      dockerfile: Dockerfile
    ports:
      - 1216:80
      - 1217:443
    networks:
      - zz
    volumes:
      - ./wwwroot:/usr/local/nginx/html
networks:

  zz:
 

docker-compose的部署 

 

 在nginx目录下添加配置文件

[root@server1 compose_nginx]# cd nginx/
[root@server1 nginx]# cat Dockerfile 

FROM centos:7
RUN yum -y update
RUN yum -y install pcre-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-http_stub_status_module
RUN make -j 4 && make install
RUN ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
#ENV PATH /usr/local/nginx/sbin/:PATH
EXPOSE 80
EXPOSE 443
RUN echo "daemon off;" >> /usr/local/nginx/conf/nginx.conf
CMD ["/usr/local/nginx/sbin/nginx"]
 

docker-compose的部署 

在网页上设置

[root@localhost compose_nginx]# ls
docker-compose.yml  nginx  wwwroot
 
echo "hello world" > index.html

docker-compose的部署 

 

2.4 开启验证

 使用compose去安装运行nginx容器

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

 

docker-compose的部署 

 

docker-compose的部署 

 三、compose编排安装tomcat容器

cd /opt
mkdir compose-tomcat
cd compose-tomcat
mkdir tomcat
cd tomcat
==拖入安装包apache-tomcat-9.0.16.tar.gz 、jdk-8u91-linux-x64.tar.gz==
 
vim Dockerfile
FROM centos:7
 
ADD apache-tomcat-9.0.16.tar.gz /usr/local
ADD jdk-8u91-linux-x64.tar.gz /usr/local
 
WORKDIR /usr/local
 
RUN mv apache-tomcat-9.0.16 tomcat
RUN mv jdk1.8.0_91 java
 
ENV JAVA_HOME /usr/local/java
ENV CLASSPATH $JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
ENV PATH $JAVA_HOME/bin:$PATH
 
EXPOSE 8080
CMD ["/usr/local/tomcat/bin/catalina.sh","run"]
 
====>:wq
 
cd ..
vim tomcat-compose.yml
 
version: '3'
services:
 tomcat:
  hostname: tomcat
  build :
   context: ./tomcat
   dockerfile: Dockerfile
  ports:
   - 7788:8080
  networks:
   - cluster
networks:
 cluster:
 
====>:wq
 
docker-compose -f tomcat-compose.yml up -d
 
==真机访问http://IP:7788==

 

docker-compose的部署 

总结

 

docker-compose默认的模板文件是 docker-compose.yml,其中定义的每个服务都必须通过 image 指令指定镜像或 build 指令(需要 Dockerfile)来自动构建。

其它大部分指令都跟 docker run 中的类似。

如果使用 build 指令,在 Dockerfile 中设置的选项(例如:CMD, EXPOSE, VOLUME, ENV 等) 将会自动被获取,无需在 docker-compose.yml 中再次设置。 

使用Compose 基本上分为三步:

Dockerfile 定义应用的运行环境
docker-compose.yml 定义组成应用的各服务
docker-compose up 启动整个应用文章来源地址https://www.toymoban.com/news/detail-429039.html

到了这里,关于docker-compose的部署的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ES-部署(docker-compose)

    参考资料 http://www.baiyp.ren/elasticsearch-集群部署.html 说明 一个服务器,三个es服务节点,一个kibana容器,一个elasticsearch-head服务节点。 es版本为7.17.5。 服务器地址:192.168.127.142。 elasticsearch 不建议使用docker,容器部署不适合有状态服务。这里是为了学习方便。 安装流程 安装

    2024年02月08日
    浏览(33)
  • docker-compose部署milvus

    上一篇介绍了使用kubernetes来部署milvus,这篇介绍下使用docker-compose来部署milvus。 下载docker-compose 下载最新版的 docker-compose-linux-x86_64 在服务器上使用 安装docker-compose 将docker拷贝到/usr/local/bin目录下,重命名为 docker-compose 默认下载下来的文件只有读写权限,使用 chmod +x docker-

    2024年02月13日
    浏览(37)
  • docker-compose部署mysql

    docker-compose 虽然docker部署环境比自己下载安装包要方便不少,但是docker的命令还有挂载目录在每次启动容器的时候都去找命令对使用者是很不友好的,而且有时候要启动多个容器的时候显然一个个的启动是很麻烦的。所以如果可以事先将\\\"启动脚本\\\"写好的话,之后就算虚拟机

    2024年02月02日
    浏览(33)
  • Docker-Compose编排与部署

    目录 Docker Compose Compose的优点 编排和部署 Compose原理 Compose应用案例 安装docker-ce 阿里云镜像加速器 安装docker-compose docker-compose用法 Yaml简介 验证LNMP环境          Docker Compose 的前身是 Fig,它是一个 定义及运行多个 Docker 容器的工具 。可以使用 YAML 文件来配置应用程序的服

    2024年02月14日
    浏览(35)
  • 使用docker、docker-compose部署微服务

    这里已经在docker安装并启动好了Redis、nacos,配置好了“ruoyi-gateway-prod.yml”文件。 注意如果配置文件中有Redis、MySQL、nacos这些的连接信息,需要把IP地址改为服务器的公网地址或者内网地址,不会连接不到。 我这里以微服务版若依的网关服务为例,上传到指定目录。 官方文档

    2024年02月10日
    浏览(31)
  • docker-compose部署rabbitmq集群

    1、集群分类 RabbitMQ的是基于Erlang语言编写,而Erlang又是一个面向并发的语言,天然支持集群模式。 RabbitMQ的集群以下分类: 标准集群:是一种分布式集群,将队列分散到集群的各个节点,从而提高整个集群的并发能力。 镜像集群:是一种主从集群,标准集群的基础上,添加

    2024年02月16日
    浏览(28)
  • Docker-Compose部署ELK教程

    1. 环境 Ubuntu 20以上 Docker version 20以上 Docker-Compose version 1.25以上 安装Docker和Docker-Compose教程 2. 部署elasticsearch 2.1.创建elasticsearch.yml文件 vim elasticsearch.yml 2.2. 创建elasticsearch的docker-compose.yml文件 vim docker-compose.yml 2.3. 启动elasticsearch 3. 部署kibana和logstash 3.1. 创建kibana.yml文件 vim ki

    2023年04月08日
    浏览(31)
  • 使用 docker-compose 部署 Jenkins

    注:我是在虚拟机(Ubuntu)上部署了 docker-compose,然后才使用 docker-compose 部署 Jenkins! 关于如何在 Ubuntu 部署 docker-compose,可以看我其它的文章。 docker_jenkins_compose 目录下创建 docker-compose.yml 文件: 进入 docker-compose.yml 文件: 按下键盘上的 i ,进入可以编写的模式。 将下面的

    2024年02月17日
    浏览(31)
  • docker-compose 部署flink集群

    详见 https://blog.csdn.net/qq_42267173/article/details/124687804 https://blog.csdn.net/m0_72838865/article/details/126421685 https://www.cnblogs.com/cw2blog/p/16689584.html 容器启停相关的 启动报错 解决参考:https://blog.csdn.net/xiojing825/article/details/79494408 docker-compose up -d 后台运行,不输出日志到窗口 想web访问,但

    2024年02月05日
    浏览(35)
  • docker-compose方式部署skywalking

    报错:Thread#0\\\" - pthread_create failed (EPERM) for attributes: stacksize: 1024k, guardsize: 4k, detached. 官网参考 官网参考 报错信息 需要先删除容器和所有镜像 停止docker服务 卸载docker 安装docker 启动docker 配置/etc/docker/daemon.json 升级docker-compose

    2023年04月23日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包