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和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 常用命令与配置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 #下载服务镜像