Docker容器化部署实践Docker Compose

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
简介: Docker容器化部署实践Docker Compose

上期我们讲了在Docker 容器化部署实践--入门讲了Docker作为云计算的优点以及它的安装常见命令。今天给大家介绍一个简单的编排工具docker compose。

在讲之前我继续沿用昨天的提到一个命令:


docker run -d -p 5000:5000 --name echo ubuntu:16.04 /bin/bash -c "while true; do echo 1; sleep 1; done"

-d 参数后台运行

-p 端口号映射

--name 自定义容器名字,容器命名是唯一的,若要使用需要删除之前的。


启动好了之后我们可以通过docker logs -f echo查看容器内数字1的打印。

我们从上面可以看到整个操作起来相对比较繁琐,既要输入各个参数,又有版本号,标签等等。如果我们只是一个容器还好用个shell定义一个快捷方式就行。

但是我们往往有多个容器,多个容器相互关联。比如一个web项目,我们可能有db容器,缓存容器,离线任务的容器,日志容器等等,这个时候如果我们还用手动输入进行控制,不仅非常麻烦还容易出错。


这时通过shell自定义命令就显得吃力一点了,并且不能做到多服务启动重启等等。

所以Docker官方出了一款编排工具,叫Compose,它通过一个单独docker-compose.yml模板文件来定义一组相关的容器,简单的理解就是通过这种方式把对应的各个容器相互组装起来,进行启动,停止,删除。


Compose这是由Python语言编写,通过Docker提供的API进行容器的管理,使用操作也非常方便。

下面来看一个docker-compose.yml 的文件形式:


version: "3"  # 注意版本号
services:  # 一个应用的容器,可以包括多个相同镜像容器实例
  dev:
    image: hub.yourdomain.com/test:1.0 # 镜像地址
    command: python app.py  # 容器执行命令
    container_name: test  # 容器名
    restart: always  
    volumes:
      - ./docker:/data  # 挂载地址
    ports:
      - "9527:9527" #端口
    environment:
      - PYTHONPATH=/data
      - XXX_API_SETTINGS=XXX.config.dev
    network_mode: bridge
    extra_hosts: # 配置额外的host名称
      - "test.yourdomain.com:127.0.0.1"
    external_links: # 链接到外部容器
      - redis:redis 
      - mysql:mysql


通过上面的简单配置,我们就能把多个容器链接处理好了:

通过docker-compose up dev就能把整个服务启动起来了并且把端口号已经环境变量地址等等都设置好了,非常方便。


下面我们来说一下docker-compose 安装,docker-compose 安装方式非常简单,一条命令就完事儿。


sudo pip install -U docker-compose

安装好了如果你Linux或者Mac终端是使用的ohmyzsh的话,可以在zshrc里面添加 plugins +=(docker-compose)

image.png

图片


给大家贴一下我自己常使用的自动补全命令行

plugins=(git ruby autojump osx tmux zsh-syntax-highlighting brew-cask brew colored-man rsync sudo node-docs history-substring-search docker docker-compose fabric redis-cli cp zsh-autosuggestions )

我简单介绍一下常使用的几个命令(和docker没有太多差别),更多的请参考 docker-compose -h


docker-compose logs dev  # dev 是定义service服务

docker-compose up -d dev # 启动服务,会进行自动拉取镜像,进行关联服务

docker-compose restart dev # 重启服务

docker-compose rm dev # 删除服务


通过Compose我们可以快速编写属于自己docker项目的启动配置文件,方便我们快速启动,重启服务,没有使用的同学可以用起来了,今天内容就先到这儿了。

容器化部署实践,我打算从基础操作到实战应用以一个系列进行分享,今天是第二篇docker-compose编排,后期我将持续分享更多相关内容,从容器化入门使用到部署实践编排技术,欢迎大家持续进行关注。

相关文章
|
6天前
|
弹性计算 运维 持续交付
探索Docker容器化技术及其在生产环境中的应用
探索Docker容器化技术及其在生产环境中的应用
36 5
|
3天前
|
容器 云栖大会
|
1天前
|
负载均衡 网络协议 开发者
掌握 Docker 网络:构建复杂的容器通信
在 Docker 容器化环境中,容器间的通信至关重要。本文详细介绍了 Docker 网络的基本概念和类型,包括桥接网络、宿主网络、覆盖网络和 Macvlan 网络等,并提供了创建、管理和配置自定义网络的实用命令。通过掌握这些知识,开发者可以构建更健壮和灵活的容器化应用,提高应用的可扩展性和安全性。
|
4天前
|
Kubernetes Cloud Native 开发者
云原生入门:从Docker到Kubernetes的旅程
【9月更文挑战第16天】 本文将带你进入云原生的世界,从理解Docker容器的基础开始,逐步深入到Kubernetes集群管理。我们将通过简单的代码示例和实际操作,探索这两个关键技术如何协同工作,以实现更高效、灵活的应用程序部署和管理。无论你是云原生新手还是希望深化理解,这篇文章都将为你提供清晰的指导和实用的知识。
30 11
|
2天前
|
运维 Ubuntu Linux
深入理解并实践Docker容器化技术
深入理解并实践Docker容器化技术
21 6
|
7天前
|
运维 Docker 微服务
掌握 Docker Compose:简化你的多容器应用部署
在微服务架构和容器化技术普及的今天,管理多容器部署变得颇具挑战。Docker Compose 通过一个 YAML 文件定义和运行多容器应用,简化了部署和运维。本文介绍其基本概念、使用方法及优势,包括服务、项目、卷和网络等核心概念,并提供从安装到管理服务的详细步骤,助你轻松掌握 Docker Compose,提高开发效率和应用运维质量。
|
8天前
|
Cloud Native 持续交付 Docker
探索Docker容器化技术及其在软件开发中的应用
探索Docker容器化技术及其在软件开发中的应用
17 7
|
5天前
|
Prometheus 监控 Cloud Native
docker安装prometheus+Granfan并监控容器
【9月更文挑战第14天】本文介绍了在Docker中安装Prometheus与Grafana并监控容器的步骤,包括创建配置文件、运行Prometheus与Grafana容器,以及在Grafana中配置数据源和创建监控仪表盘,展示了如何通过Prometheus抓取数据并利用Grafana展示容器的CPU使用率等关键指标。
|
6天前
|
Cloud Native 持续交付 Docker
探索容器化技术Docker的奥秘
探索容器化技术Docker的奥秘
23 3
|
存储 网络协议 API
Docker 官方出品丨Docker 最佳实践系列指南(一)
Docker 企业版 (Docker EE) 是 Docker Inc 推出的旨在用于整条软件供应链的企业级容器平台。
4614 0

相关产品

  • 容器服务Kubernetes版