Docker系列教程21-Docker Compose快速入门

本节我们来探讨Compose使用的基本步骤,并编写一个简单示例快速入门。

基本步骤

使用Compose大致有三个步骤:

  • 使用Dockerfile(或其他方式)定义应用程序环境,以便在任何地方重现该环境。
  • 在docker-compose.yml文件中定义组成应用程序的服务,以便各个服务在一个隔离的环境中一起运行。
  • 运行docker-compose up命令,启动并运行整个应用程序。

入门示例

下面笔者以之前课上用到的Eureka为例讲解Compose的基本步骤。

(1) 在 microservice-discovery-eureka-0.0.1-SNAPSHOT.jar 所在路径(默认是项目的target目录)创建Dockerfile文件,并在其中添加如下内容。

FROM java:8
VOLUME /tmp
ADD microservice-discovery-eureka-0.0.1-SNAPSHOT.jar app.jar
RUN bash -c 'touch /app.jar'
EXPOSE 9000
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

(2) 在 microservice-discovery-eureka-0.0.1-SNAPSHOT.jar 所在路径创建文件docker-compose.yml,在其中添加如下内容。

version: '2'            # 表示该docker-compose.yml文件使用的是Version 2 file format
services:
  eureka:                # 指定服务名称
    build: .            # 指定Dockerfile所在路径
    ports:
      - "8761:8761"        # 指定端口映射,类似docker run的-p选项,注意使用字符串形式

(3) 在 docker-compose.yml 所在路径执行以下命令。

docker-compose up

Compose就会自动构建镜像并使用镜像启动容器。我们也可使用 docker-compose up-d 后台启动并运行这些容器。

(4) 访问: http://宿主机IP:8761/ ,即可访问Eureka Server首页。

工程、服务、容器

Docker Compose将所管理的容器分为三层,分别是工程(project),服务(service)以及容器(container)。Docker Compose运行目录下的所有文件(docker-compose.yml, extends文件或环境变量文件等)组成一个工程(默认为docker-compose.yml所在目录的目录名称)。一个工程可包含多个服务;每个服务中定义了容器运行的镜像、参数和依赖,一个服务可包括多个容器实例。

对应《入门示例》一节,工程名称是docker-compose.yml所在的目录名。该工程包含了1个服务,服务名称是eureka;执行docker-compose up时,启动了eureka服务的1个容器实例。

原文发布于微信公众号 - A周立SpringCloud(gh_e6849e368b5f)

原文发表时间:2018-05-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏编程坑太多

『中级篇』docker-swarm中的Service创建维护和水平扩展(45)

PS:docker service 内部有很多复杂的操作,虽然各位老铁用了简单的 一个创建一个删除,但是底层里面会知道有多个容器,在那个机器上边,这些机器里面...

9430
来自专栏老司机的技术博客

docker实战(7)使用docker快速搭建gitlab私服

下载镜像 docker pull gitlab/gitlab-ce 使用镜像 镜像中有三个目录用于保存gitlab的数据,出于安全考虑,应该使宿主机目录挂载这三...

320100
来自专栏从零学习云计算

openshift/origin学习记录(10)——基于已有镜像部署应用

本部分记录如何基于已有的镜像部署应用。参考的博客为《OpenShift_034:部署 mywebsql docker image 访问 mysql 数据库》(...

36500
来自专栏草根专栏

Docker & ASP.NET Core (5):Docker Compose

Compose是一个用来定义和运行多容器Docker应用的工具。使用Compose的时候,你可以使用一个YAML文件来配置你应用的服务。然后根据配置,使用一个命...

14120
来自专栏云计算教程系列

如何在Ubuntu 14.04上使用Ghost和Nginx创建博客

Ghost是一个轻量级(~7.5MB)的开源博客平台,非常易于使用。Ghost是完全可定制的。互联网上有很多可供Ghost使用的免费或付费的主题。

13300
来自专栏编程坑太多

跟我一起学docker(五)--仓库

19240
来自专栏bdcn

在docker for win中使用portainer管理容器

如何安装docker for win请参考我之前的文章《Docker在Win10下的安装和配置》

1K40
来自专栏云原生架构实践

Docker Compose 安装 on centos7

github地址:https://github.com/docker/compose/releases。这里下载1.22.0版本。

23420
来自专栏有困难要上,没有困难创造困难也要上!

Docker 远程管理

34070
来自专栏未闻Code

使用Docker Swarm搭建分布式爬虫集群

在爬虫开发过程中,你肯定遇到过需要把爬虫部署在多个服务器上面的情况。此时你是怎么操作的呢?逐一SSH登录每个服务器,使用git拉下代码,然后运行?代码修改了,于...

24220

扫码关注云+社区

领取腾讯云代金券