docker build -t_Docker入门-docker compose的使用

论坛 期权论坛     
选择匿名的用户   2021-5-30 02:23   793   0
<div>
<h2>Compose简介</h2>
<p>Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。其代码目前在https://github.com/docker/compose 上开源。</p>
<p>Compose定位是定义和运行多个Docker容器的应用,其前身是开源项目Fig。</p>
<p>通过前面内容的介绍,我们知道使用一个Dockerfile模板文件,可以让用户很方便的定义一个单独的应用容器。然而,在日常工作中,经常会碰到需要多个容器相互配合来完成某任务的情况。例如要实现一个Web项目,除了Web服务容器本身,往往还需要加上后端的数据库服务容器,甚至还包括负载均衡容器等。</p>
<p>Compose恰好满足了这样的需求。它允许用户通过一个单独的docker-compose.yml模板文件来定义一组相关联的应用容器为一个项目(project)。</p>
<p>Compose中有两个重要的概念:</p>
<ul><li>服务(service):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例。</li><li>项目(project):由一组关联的应用容器组成的一个完整业务单元。</li></ul>
<p>Compose的默认管理对象是项目,通过子命令对项目中的一组容器进行便捷地生命周期管理。</p>
<p>Compose项目由Python编写,实现上调用了Docker服务提供的API来对容器进行管理。</p>
<h2>安装和卸载</h2>
<p>Compose支持Linux、macOS、Windows10三大平台。</p>
<p>Compose可以通过Python的包管理工具pip进行安装,也可以直接下载编译好的二进制文件使用,甚至能够直接在Docker容器中运行。</p>
<p>Docker for Mac、Docker for Windows自带docker-compose二进制文件,安装Docker之后可以直接使用。</p>
<p>docker-compose --version</p>
<p><br>Linux系统需要单独使用二进制或者pip方式进行安装。</p>
<h3>Linux安装docker-compose</h3>
<h3>二进制包</h3>
<p>在Linux上的安装十分简单,从官方GitHub Release处直接下载编译好的二进制文件即可。例如,在Linux64位系统上直接下载对应的二进制包。</p>
<p>sudo curl -L &#34;https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)&#34; -o /usr/local/bin/docker-compose<br>sudo chmod &#43;x /usr/local/bin/docker-compose #赋予可执行权限</p>
<p></p>
<div style="text-align:center;">
  <img alt="bfb1c7bc45e9346f139a842061b9f6dd.png" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-4e849dc0eabec5b5221a1fb773d54472.png">
</div>
<h3>PIP安装</h3>
<p>如果您计算机的架构是ARM(例如,树莓派),建议使用pip安装。</p>
<p>sudo pip install -U docker-compose</p>
<h2>使用</h2>
<p>场景:最常见的项目是web网站,一般的web网站都会依赖第三方提供的服务(比如:DB和cache),我们拿dubbo-admin进行讲解(dubbo-admin依赖zookeeper)。</p>
<h3>Compose构建dubbo-admin服务</h3>
<p>从github上获取dubbo-admin的master分支源码</p>
<p>git clone -b master https://github.com/apache/incubator-dubbo-ops.git</p>
<p>修改admin中的application配置,把zookeeper地址改为zookeeper://zookeeper:2181</p>
<p></p>
<div style="text-align:center;">
  <img alt="eed9a37773b0f1c7fee4082c6f4d44e0.png" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-e54d8904fcc2a1ed1619bbb81906c934.png">
</div>
<p>使用maven进行编译打包</p>
<p>mvn clean package -Dmaven.test.skip&#61;true</p>
<p></p>
<div style="text-align:center;">
  <img alt="6058ea66491f0ddd71699908e61aa4a2.png" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-12f90c1cd5b4082f5592eff6f5662196.png">
</div>
<p>在dubbo-admin目录下编写Dockerfile文件,内容为</p>
<p></p>
<div style="text-align:center;">
  <img alt="104005fc63f8485bf63e368338c21759.png" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-97bd6d347953c09f5be396b77c7bda9a.png">
</div>
<p>使用docker build -t dubbo-admin:1.0 .命令进行构建。</p>
<p></p>
<div style="text-align:center;">
  <img alt="9aa6feac90bf97ceddf090d833315391.png" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-9695bb17d227ac2dc65c86d42e6530f9.png">
</div>
<p>在项目根目录下编写docker-compose.yml文件,这个是Compose使用的主模板文件。</p>
<p></p>
<div style="text-align:center;">
  <img alt="dfe07c75b8ff5521d07ce70a82326b41.png" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-e7dcc00ec8b693eed75e9e846c1c626b.png">
</div>
<p>在docker-compose.yml文件所在目录执行:</p>
<p>docker-compose up</p>
<p></p>
<div style="text-align:center;">
  <img alt="f51d6f5cc64b7b6e3f20956037d00c3b.png" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-538efda54c8d831b83abb6e84349ac3f.png">
</div>
<p>在浏览器中访问http://服务器ip:7001 进行验证,用户名密码为:root/root guest/guest</p>
<p></p>
<div style="text-align:center;">
  <img alt="bd77984cdc6b71db0bee11874208d85a.png" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-8c9243d1355ac249d53961b0933294fb.png">
</div>
<h2>Compose命令说明</h2>
<h3>命令对象与格式</h3>
<p>执行docker-compose [COMMAND] --help或者
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP