我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Docker Compose与Docker镜像仓库详解

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Docker Compose与Docker镜像仓库详解

1.Docker Compose

Docker Compose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器!

1.1.初识DockerCompose

Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。格式如下:

version: "3.8"
 services:
  mysql:
    image: mysql:5.7.25
    environment:
     MYSQL_ROOT_PASSWORD: 123 
    volumes:
     - "/tmp/mysql/data:/var/lib/mysql"
     - "/tmp/mysql/conf/hmy.cnf:/etc/mysql/conf.d/hmy.cnf"
  web:
    build: .
    ports:
     - "8090:8090"

上面的Compose文件就描述一个项目,其中包含两个容器:

  • mysql:一个基于mysql:5.7.25镜像构建的容器,并且挂载了两个目录
  • web:一个基于docker build临时构建的镜像容器,映射端口时8090

Docker Compose的详细语法参考官网:Compose file specification

其实Docker Compose文件可以看做是将多个docker run命令写到一个文件,只是语法稍有差异。

1.2.安装Docker Compose

参考安装Docker

1.3.部署微服务集群

需求:将之前的cloud-demo微服务集群利用Docker Compose部署

实现思路

① 根据集群建立的cloud-demo文件夹,编写好了docker-compose文件

② 修改自己的cloud-demo项目,将nacos地址都命名为docker-compose中的服务名

③ 使用maven打包工具,将项目中的每个微服务都打包为app.jar

④ 将打包好的app.jar拷贝到cloud-demo中的每一个对应的子目录中

⑤ 将cloud-demo上传至虚拟机,利用docker-compose up -d来部署

1.3.1.compose文件

根据集群建立的cloud-demo文件夹,编写好了docker-compose文件,而且每个微服务都准备了一个独立的目录:

内容如下:

version: "3.2"

services:
  userservice:
    build: ./user-service
  orderservice:
    build: ./order-service
  gateway:
    build: ./gateway
    ports:
      - "10010:10010"

可以看到,其中包含4个service服务:

  • nacos:作为注册中心和配置中心
    • image: nacos/nacos-server: 基于nacos/nacos-server镜像构建
    • environment:环境变量
    • MODE: standalone:单点模式启动
    • ports:端口映射,这里暴露了8848端口
  • userservice、orderservice、gateway:都是基于Dockerfile临时构建的

查看微服务目录,可以看到都包含Dockerfile文件:

内容如下:

FROM java:openjdk-8u111-alpine
COPY ./gateway.jar /tmp/app.jar
ENTRYPOINT java -jar /tmp/app.jar
FROM java:openjdk-8u111-alpine
COPY ./order-service.jar /tmp/app.jar
ENTRYPOINT java -jar /tmp/app.jar
FROM java:openjdk-8u111-alpine
COPY ./user-service.jar /tmp/app.jar
ENTRYPOINT java -jar /tmp/app.jar

1.3.2.修改微服务配置

因为微服务将来要部署为docker容器,而容器之间互联不是通过IP地址,而是通过容器名。这里我们将order-serviceuser-servicegateway服务的nacos地址都修改为基于容器名的访问。

如下所示:

spring:
  application:
    name: orderservice
  cloud:
    nacos:
      server-addr: nacos:8848 # nacos服务地址

1.3.3.打包

接下来需要将我们的每个微服务都打包。

可以通过修改pom.xml中的打包名称来实现,每个微服务都需要修改:

<build>
  <!-- 服务打包的最终名称 -->
  <finalName>gateway</finalName>
  <plugins>
    <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
    </plugin>
  </plugins>
</build>

打包后:

1.3.4.拷贝jar包到部署目录

编译打包好的jar包文件,需要放到Dockerfile的同级目录中。注意:每个微服务的jar包放到与服务名称对应的目录,别搞错了。

user-service

order-service

gateway

1.3.5.部署

最后,我们需要将文件整个cloud-demo文件夹上传到虚拟机中,理由DockerCompose部署。

上传到任意目录:

部署:

进入cloud-demo目录,然后运行下面的命令:

docker-compose up -d

2.Docker镜像仓库

2.1.搭建私有镜像仓库

参考安装Docker

2.2.推送、拉取镜像

推送镜像到私有镜像服务必须先tag,步骤如下:

① 重新tag本地镜像,名称前缀为私有仓库的地址:192.168.0.111:8080/

docker tag nginx:latest 192.168.0.111:8080/nginx:1.0 

② 推送镜像

docker push 192.168.0.111:8080/nginx:1.0 

③ 拉取镜像

docker pull 192.168.0.111:8080/nginx:1.0 

到此这篇关于Docker Compose与Docker镜像仓库的文章就介绍到这了,更多相关Docker镜像仓库内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Docker Compose与Docker镜像仓库详解

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Docker Compose与Docker镜像仓库详解

Docker Compose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器,这篇文章主要介绍了Docker Compose与Docker镜像仓库,需要的朋友可以参考下
2023-03-21

Docker Compose与Docker镜像仓库怎么创建

今天小编给大家分享一下Docker Compose与Docker镜像仓库怎么创建的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧
2023-07-05

使用docker-compose与私有仓库

介绍Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。它允许开发人员将他们的应用程序堆栈定义为一个 YAML 文件,只需几个命令就可以轻松创建复杂的环境。然而,使用 Docker Compose 与私
2023-10-22

Docker镜像仓库有什么用

这篇文章给大家分享的是有关Docker镜像仓库有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一:简介仓库用来集中存储Docker镜像,支持镜像发布和更新。仓库的名字通常由两部分组成,中间以斜线分开。斜线之
2023-06-04

Docker私有镜像仓库是什么?

镜像仓库作为Docker技术的核心组件之一,其主要作用就是负责镜像内容的存储和分发。Docker镜像仓库从使用范围来说分为“公有镜像仓库”和“私有镜像仓库”,公有镜像仓库是可以被任何人使用的,例如Docker公司维护的在线存储库Docker

Docker的镜像仓库怎么创建

本篇内容介绍了“Docker的镜像仓库怎么创建”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一. 镜像仓库Registry是Docker公
2023-06-30

docker私有镜像仓库怎么搭建

要搭建一个Docker私有镜像仓库,可以按照以下步骤进行操作:1. 安装Docker:首先确保你的服务器上已经安装了Docker引擎。可以参考Docker官方文档来完成安装。2. 下载并运行Docker Registry容器:Docker官
2023-09-23

怎么删除docker私有仓库镜像

要删除Docker私有仓库中的镜像,可以按照以下步骤进行操作:1. 首先,使用以下命令查看私有仓库中的镜像列表:docker image ls2. 找到要删除的镜像的REPOSITORY和TAG。3. 使用以下命令删除镜像:docker i
2023-10-19

docker怎么删除远程仓库镜像

要删除远程仓库中的镜像,可以使用Docker命令行工具来完成。以下是删除远程仓库镜像的步骤:1. 首先,使用`docker images`命令列出本地已安装的镜像。找到你想删除的镜像的REPOSITORY和TAG。2. 然后,使用`dock
2023-09-23

如何安装harbor作为docker镜像仓库

本篇内容介绍了“如何安装harbor作为docker镜像仓库”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!docker.service 如下
2023-07-02

docker拉取私有仓库镜像报错如何解决

当使用docker pull命令从私有仓库拉取镜像时,可能会遇到以下几种常见的错误,并提供相应的解决方法:1. unauthorized: authentication required - 这个错误表示没有提供正确的身份验证信息。解决方法
2023-10-19

docker拉取私有仓库镜像报错怎么解决

在拉取私有仓库镜像时出现报错,可能是由于以下原因导致的:认证问题:私有仓库需要进行认证才能拉取镜像。你需要确保已经提供了正确的用户名和密码,并使用`docker login`命令进行登录。镜像标签问题:如果没有指定正确的镜像标签,可能会导致
2023-10-26

Docker 阿里云镜像仓库CR使用小结

阿里云镜像仓库CR是一款专业容器镜像托管服务,提供安全存储、镜像加速、版本管理、镜像签名等功能。使用CR可轻松创建仓库,并通过Docker命令进行构建、推送、拉取和部署镜像。CR支持多地域部署、镜像加速、镜像签名,保障镜像安全和应用稳定性。对有Docker镜像管理需求的用户,CR是一个值得信赖的选择,具有安全可靠、高效便捷、稳定性高、服务优质、性价比高等优势。
Docker 阿里云镜像仓库CR使用小结
2024-04-02

怎样安装企业级docker镜像仓库Harbor

这期内容当中小编将会给大家带来有关怎样安装企业级docker镜像仓库Harbor,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Harbor官方介绍 Harbor是一个用于存储和分发Docker镜像的企业级
2023-06-19

Docker部署Go项目发布镜像到仓库

这篇文章主要为大家介绍了Docker部署Go项目发布镜像到仓库示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-03-07

编程热搜

目录