docker进阶-初探Docker-compose

发表于:2018-4-03 10:22

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:51testing软件测试网采编

  什么是Docker-compose
  compose 翻译成中文的意思是"构成"和"组成"的意思。Docker我之前把他比作一个大轮船,这个轮船上面可以放很多很多的箱子。这个箱子我们可以看做是一个个的容器(container)。那么Docker-compose可以看到是就是把一个个箱子组合在一起成为一个大整体的意思。可以统一卸货,上货。放在我们的应用中就是可以通过Docker-compose管理我们容器(container)。这里只是一个通俗的比喻。理论至少可以参考Docker-compose官方文档 。
  为什么要用Docker-compose
  docker-compose 是一个用来把 docker 自动化的东西,有了 docker-compose 你可以把所有繁复的 docker 操作简化成一条命令,自动化的完成。他有以下几个特点:
  "一键"启动,停止和重建服务
  可以查看运行服务的状态
  实时的日志输出
  使用docker-compose可以大大减少docker的部署时间。减少加班。比较有时间可以多多陪陪家人。
  Docker-compose安装和使用
  安装
  要想安装和使用Docker-compose必须保证当前本机的docker的版本大于1.3。首先检查当前当前本机docke版本和检查有没有安装Docker-compose:
  #检查docker版本 sudo docker -v #检查Docker-compose的版本。 sudo docker-compose -v #安装Docker-compose命令。安装完成之后再次使用上面命令检查版本。 https://github.com/docker/ compose/releases/download/1.6.0/ docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose #如果提示Permission denied。执行以下语句赋权 sudo chmod +x /usr/local/bin/docker-compose
  Docker-compose常用命令
  #以下所有命令需要和d.yml在同一目录。也可以通过 -f 执行.yml文件 #查看当前容器运行的状态。显示容器名称|执行脚本|当前运行状态|当前监听端口信息。 指定.yml文件用法 sudo docker-compose -f ./docker-compose.yml ps sudo docker-compose ps #重启或者重启某个服务 sudo docker-compose restart ||sudo docker-compose xxxx sudo docker-compose restart #构建服务 sudo docker-compose build #显示日志 sudo docker-compose logs #-d表示后台。up命令会构建,(重新)创建,启动,链接一个服务相关的容器。默认情况下如果容器已经存在,将会停止并尝试重新创建他们。并使用之前挂载的卷。 # --no-recreate参数可以让容器不被停止或者重新创建 sudo docker-compose up -d #stop和start停止当前运行的某个容器 sudo docker-compose stop xxxx sudo docker-compose start xxxx #停止所有容器,并删除容器 docker-compose down
  编写.yml文件
  docker-compose的配置文件是以.yml为后缀的。一般文件名默认为docker-compose.yml。当然也可以自己定义。首先我们需要创建一个.yml文件,我这里还是以前docke入门那个images为例。这里推荐一个插件。如何你用的是vscode的话,可以试试。地址 他可以很方便的帮我们编写Dockerfile和docker-compose.yml文件。
  mkdir docker-compose
  cd docker-compose
  touch docker-compose.yml
  vi docker-compose.yml
  然后写入以下内容。
  version: '2.1'
  services:
  docker_demo:
  image: docker_demo
  build: .
  environment:
  NODE_ENV: production
  ports:
  - 8000:3000
  保存完成之后。在当前目录下面运行
  #启动命令
  robin:docker-compose robin$ sudo docker-compose up -d
  Recreating dockercompose_docker_demo_1 ... done
  #查看当前容器运行状态
  robin:docker-compose robin$ sudo docker-compose ps
  Name Command State Ports
  dockercompose_docker_demo_1 /bin/sh -c npm start Up 0.0.0.0:9000->3000/tcp
  robin:docker-compose robin$
  #显示logs
  robin:docker-compose robin$ sudo docker-compose logs
  Attaching to dockercompose_docker_demo_1
  docker_demo_1 |
  docker_demo_1 | > docker_demo@0.1.0 start /usr/src/app
  docker_demo_1 | > node server.js
  docker_demo_1 |
  robin:docker-compose robin$
  然后带来浏览器输入http://localhost:9000 就可以看到我们熟悉的"Hello docker"。
  docker-compose.yml文件结构参考
  #版本
  version: '2.1'
  #服务部门
  services:
  #服务名称
  docker_demo:
  #镜像名称或者images id 。如果本地不存在自己会下载
  image: docker_demo
  #使用up命令启动时会执行构建任务。可以指向 Dockerfile 文件。
  build: .
  #环境变量
  environment:
  NODE_ENV: production
  #监听端口。对外暴露端口:容器内端口
  ports:
  - 8000:3000
  以上这个.yml的执行的结果和我们之前使用 docker run -d -p 9000:3000 docker_demo的效果一致。上面的docker-compose.yml比较简单。也没有用到volumes。只是用来入门。下篇会继续详细讲解docker-compose。



上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号