快捷搜索:  汽车  科技

docker compose的基本步骤(DockerCompose详解)

docker compose的基本步骤(DockerCompose详解)FROM openjdk:8-jdk-alpine3.9 RUN mkdir -p /app/myblog WORKDIR /app/myblog #Copy Jar COPY myblog.jar /app/myblog/ ENV TZ Asia/Shanghai EXPOSE 8080 ENTRYPOINT ["java" "-jar" "-Dserver.port=8080" "myblog.jar"]在 jar 包所在路径创建文件 docker-compose.yml,添加以下内容version: '2' # 表示该 Docker-Compose 文件使用的是 Version 2 file services: myblog: # 指定服务名称 build: . # 指定 Docker

docker是一个很棒的工具,但要真正充分发挥其潜力,最好是应用程序的每个组件都在自己的容器中运行。对于具有大量组件的复杂应用程序,编排所有容器以一起启动和关闭(更不用说彼此交谈)可能很快变得难以处理。

Docker社区提出了一个名为Fig的流行解决方案,它允许您使用单个YAML文件来编排所有Docker容器和配置。这变得如此受欢迎,以至于Docker团队最终决定基于Fig源制作他们自己的版本。他们称之为Docker Compose。简而言之,它使得处理Docker容器的编排过程(例如启动,关闭和设置容器内链接和卷)非常容易。

在本文结束时,您将安装Docker和Docker Compose,并对Docker Compose的工作原理有基本的了解。

docker compose的基本步骤(DockerCompose详解)(1)

Docker和Docker撰写概念

使用Docker Compose需要将一堆不同的Docker概念合二为一,所以在我们开始之前,让我们花一点时间来回顾一下所涉及的各种概念。如果您已经熟悉Docker概念,如卷,链接和端口转发,那么您可能希望继续前进到下一部分。

Docker镜像

每个Docker容器都是Docker镜像的本地实例。您可以将Docker镜像视为完整的Linux安装。通常,最小安装仅包含运行映像所需的最少包。这些映像使用主机系统的内核,但由于它们在Docker容器内运行并且只能看到自己的文件系统,因此完全可以在Ubuntu主机上运行像CentOS这样的分发(反之亦然)。

大多数Docker镜像都是通过Docker Hub分发的,Docker Hub由Docker团队维护。大多数流行的开源项目都有相应的镜像上传到Docker Registry,您可以使用它来部署软件。在可能的情况下,最好抓住“官方”镜像,因为Docker团队保证他们遵循Docker最佳实践。


下面进入主题,安装Docker Compose

安装 Docker Compose
  • 安装 Docker Compose 可以通过下面命令自动下载适应版本的 Compose,并为安装脚本添加执行权限

sudo curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose sudo chmod x /usr/local/bin/docker-compose

  • 查看安装是否成功

docker-compose -v

快速入门
  • 打包项目,获得 jar 包 myblog.jar
  • 在 jar 包所在路径创建 Dockerfile 文件,添加以下内容

FROM openjdk:8-jdk-alpine3.9 RUN mkdir -p /app/myblog WORKDIR /app/myblog #Copy Jar COPY myblog.jar /app/myblog/ ENV TZ Asia/Shanghai EXPOSE 8080 ENTRYPOINT ["java" "-jar" "-Dserver.port=8080" "myblog.jar"]

  • 在 jar 包所在路径创建文件 docker-compose.yml,添加以下内容

version: '2' # 表示该 Docker-Compose 文件使用的是 Version 2 file services: myblog: # 指定服务名称 build: . # 指定 Dockerfile 所在路径 ports: # 指定端口映射 - "80:8080"

  • 在 docker-compose.yml 所在路径下执行该命令 Compose 就会自动构建镜像并使用镜像启动容器

docker-compose up docker-compose up -d // 后台启动并运行容器

  • 访问 http://localhost:80即可访问微服务接口

容器报错的话,请执行以下命令:

ERROR: Couldn't connect to Docker daemon at http docker://localhost - is it running?

If it's at a non-standard location specify the URL with the DOCKER_HOST environment variable.解决办法:

sudo groupadd dockersudo usermod -aG docker $USER

注意:执行完上面命令之后,一定要退出终端重新登录。

docker compose的基本步骤(DockerCompose详解)(2)

Docker Compose 常用命令与配置

docker-compose ps #列出所有运行容器 docker-compose logs #查看服务日志输出 docker-compose port myblog 80 #打印绑定的公共端口,下面命令可以输出 eureka 服务 8761 端口所绑定的公共端口 docker-compose build #构建或者重新构建服务 docker-compose start myblog #启动指定服务已存在的容器 docker-compose stop myblog #停止已运行的服务的容器 docker-compose rm myblog #删除指定服务的容器 docker-compose up #构建、启动容器 docker-compose kill eureka #通过发送 SIGKILL 信号来停止指定服务的容器 docker-compose scale user=3 movie=3 #设置指定服务运气容器的个数,以 service=num 形式指定 docker-compose run web bash #在一个服务上执行一个命令 pull #下载服务镜像

docker compose的基本步骤(DockerCompose详解)(3)

猜您喜欢: