Docker Compose 常用指令详解

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 #下载服务镜像

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值