Docker容器化部署实践Docker Compose

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 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编排,后期我将持续分享更多相关内容,从容器化入门使用到部署实践编排技术,欢迎大家持续进行关注。

相关文章
|
5天前
|
监控 Java 应用服务中间件
tomcat相关概念与部署tomcat多实例-zabbix监控(docker部署)
通过上述步骤,您可以在Ubuntu系统上成功编译并安装OpenCV 4.8。这种方法不仅使您能够定制OpenCV的功能,还可以优化性能以满足特定需求。确保按照每一步进行操作,以避免常见的编译问题。
36 23
|
6天前
|
监控 Java 应用服务中间件
tomcat相关概念与部署tomcat多实例-zabbix监控(docker部署)
通过上述步骤,您可以在Ubuntu系统上成功编译并安装OpenCV 4.8。这种方法不仅使您能够定制OpenCV的功能,还可以优化性能以满足特定需求。确保按照每一步进行操作,以避免常见的编译问题。
37 22
|
9天前
|
监控 Java 应用服务中间件
tomcat相关概念与部署tomcat多实例-zabbix监控(docker部署)
通过上述步骤,您可以在Ubuntu系统上成功编译并安装OpenCV 4.8。这种方法不仅使您能够定制OpenCV的功能,还可以优化性能以满足特定需求。确保按照每一步进行操作,以避免常见的编译问题。
49 25
|
21天前
|
Ubuntu Linux 开发工具
docker 是什么?docker初认识之如何部署docker-优雅草后续将会把产品发布部署至docker容器中-因此会出相关系列文章-优雅草央千澈
Docker 是一个开源的容器化平台,允许开发者将应用程序及其依赖项打包成标准化单元(容器),确保在任何支持 Docker 的操作系统上一致运行。容器共享主机内核,提供轻量级、高效的执行环境。本文介绍如何在 Ubuntu 上安装 Docker,并通过简单步骤验证安装成功。后续文章将探讨使用 Docker 部署开源项目。优雅草央千澈 源、安装 Docker 包、验证安装 - 适用场景:开发、测试、生产环境 通过以上步骤,您可以在 Ubuntu 系统上成功安装并运行 Docker,为后续的应用部署打下基础。
docker 是什么?docker初认识之如何部署docker-优雅草后续将会把产品发布部署至docker容器中-因此会出相关系列文章-优雅草央千澈
|
10天前
|
Kubernetes Linux 虚拟化
入门级容器技术解析:Docker和K8s的区别与关系
本文介绍了容器技术的发展历程及其重要组成部分Docker和Kubernetes。从传统物理机到虚拟机,再到容器化,每一步都旨在更高效地利用服务器资源并简化应用部署。容器技术通过隔离环境、减少依赖冲突和提高可移植性,解决了传统部署方式中的诸多问题。Docker作为容器化平台,专注于创建和管理容器;而Kubernetes则是一个强大的容器编排系统,用于自动化部署、扩展和管理容器化应用。两者相辅相成,共同推动了现代云原生应用的快速发展。
68 11
|
27天前
|
存储 Kubernetes 开发者
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
Docker 是一种开源的应用容器引擎,允许开发者将应用程序及其依赖打包成可移植的镜像,并在任何支持 Docker 的平台上运行。其核心概念包括镜像、容器和仓库。镜像是只读的文件系统,容器是镜像的运行实例,仓库用于存储和分发镜像。Kubernetes(k8s)则是容器集群管理系统,提供自动化部署、扩展和维护等功能,支持服务发现、负载均衡、自动伸缩等特性。两者结合使用,可以实现高效的容器化应用管理和运维。Docker 主要用于单主机上的容器管理,而 Kubernetes 则专注于跨多主机的容器编排与调度。尽管 k8s 逐渐减少了对 Docker 作为容器运行时的支持,但 Doc
130 5
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
|
10天前
|
SQL 关系型数据库 MySQL
docker-compose部署mysql8
使用docker-compose容器化部署mysql8
|
24天前
|
存储 Kubernetes Docker
Kubernetes(k8s)和Docker Compose本质区别
理解它们的区别和各自的优势,有助于选择合适的工具来满足特定的项目需求。
116 19
|
18天前
|
存储 人工智能 调度
容器服务:智算时代云原生操作系统及月之暗面Kimi、深势科技实践分享
容器技术已经发展成为云计算操作系统的关键组成部分,向下高效调度多样化异构算力,向上提供统一编程接口,支持多样化工作负载。阿里云容器服务在2024年巴黎奥运会中提供了稳定高效的云上支持,实现了子弹时间特效等创新应用。此外,容器技术还带来了弹性、普惠的计算能力升级,如每分钟创建1万Pod和秒级CPU资源热变配,以及针对大数据与AI应用的弹性临时盘和跨可用区云盘等高性能存储解决方案。智能运维方面,推出了即时弹性节点池、智能应用弹性策略和可信赖集群托管运维等功能,进一步简化了集群管理和优化了资源利用率。
|
8月前
|
存储 机器学习/深度学习 中间件
快速上手 Elasticsearch:Docker Compose 部署详解
本文介绍了如何使用Docker Compose快速搭建Elasticsearch学习环境。Elasticsearch是一款用于实时搜索和分析的分布式中间件,适用于多种场景,如搜索、日志分析、机器学习等。首先,创建docker网络,拉取最新版8.12.2镜像。接着,编写docker-compose.yml文件,配置单节点集群,设置端口映射、内存限制及数据卷挂载。然后,创建并配置数据卷目录,允许远程访问和跨域。最后,启动服务并验证,通过浏览器访问确认服务运行正常。本文为初学者提供了一个简便的Elasticsearch部署方法。
962 4
快速上手 Elasticsearch:Docker Compose 部署详解

相关产品

  • 容器服务Kubernetes版