10Docker Compose快速入门

Docker Compose快速入门

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

基本步骤

使用Compose大致有三个步骤:

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

入门示例

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

  • 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"]
  • 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选项,注意使用字符串形式
  • docker-compose.yml 所在路径执行以下命令。

    复制代码
    docker-compose up

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

  • 访问: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个容器实例。

相关推荐
BullSmall几秒前
Sonarqube9.9 docker 镜像启动后 conf 下的配置文件没有了
docker·容器·eureka
ruofu337 分钟前
wsl端是py312,但是项目是py311, 如何下载py311的依赖包(wheels)
python·docker
spider_xcxc1 小时前
Docker 实战:容器化多服务应用,Dockerfile 与 Compose 配置全解析
docker·云原生·eureka·虚拟化·容器化
晚风吹长发2 小时前
Docker使用——Docker容器及相关命令
linux·运维·服务器·docker·容器·架构
ShiXZ2132 小时前
Docker Compose 安装与配置指南
运维·docker·容器
BullSmall3 小时前
Anolis OS 8.10 Docker 部署 SonarQube 9.9 完整教程
运维·docker·容器
java_logo7 小时前
Apache Doris Docker 部署指南:实时分析数据库实战
数据库·docker·apache·doris·apache doris·轩辕镜像·docker部署doris
生活爱好者!19 小时前
我把NAS当作下载机,docker一键部署qb
运维·docker·容器
java_logo20 小时前
Docker Compose 部署 ClickHouse:快速搭建高性能列式数据库
数据库·clickhouse·docker·列式数据库·轩辕镜像·高性能数据库·clickhouse部署教程
MC皮蛋侠客20 小时前
uv 系列(七):CI/CD、Docker 与私有索引——生产级交付
python·ci/cd·docker·uv