Docker 镜像制作 服务编排 私有仓库

简介: Docker 镜像制作 服务编排 私有仓库


Nginx部署

案例:需求
在Docker容器中部署Nginx,并通过外部机器访问Nginx。

实现步骤:
1.搜索Nginx镜像
2.拉取Nginx镜像


3.创建容器



4.测试访问

Redis部署




Dockerfile

思考:
Docker镜像的本质是什么?
是一个分层文件系统
Docker中一个centos镜像为什么只有200MB,而一个centos操作系统的iso文件要几个G?
Centos的iso镜像文件包含bootfs和rootfs,而docker的centos镜像复用操作系统的bootfs,只有rootfs和其他镜像层
Docker中一个tomcat镜像为什么有50OMB,而一个tomcat安装包只有70多MB?
由于docker中镜像是分层的,tomcat虽然只有70多MB,但他需要依赖于父镜像和基础镜像,所有整个对外暴露的tomcat镜像大小500多MB
Linux文件系统由bootfs和rootfs两部分组成

bootfs:包含bootloader (引导加载程序)和kernel (内核)

rootfs: root文件系统,包含的就是典型Linux系统中的/dev,/proc,/bin,/etc等标准目录和文件

不同的lintx发行版,bootfs基本一样,而rootfs不同,如ubuntu, centos等

Docker镜像是由特殊的文件系统叠加而成

最底端是bootfs,并使用宿主机的bootfs

第二层是root文件系统rootfs,称为base image·然后再往上可以叠加其他的镜像文件

统一文件系统(Union File System)技术能够将不同的层整合成一个文件系统,为这些层提供了一个统一的视角,这样就隐藏了多层的存在,在用户的角度看来,只存在一个文件系统。

一个镜像可以放在另一个镜像的上面。位于下面的镜像称为父镜像,最底部的镜像成为基础镜像。




镜像制作

Docker镜像如何制作?

容器转为镜像





dockerfile

Dockerfile是一个文本文件
包含了一条条的指令
每一条指令构建一层,基于基础镜像,最终构建出一个新的镜像
对于开发人员:可以为开发团队提供一个完全一致的开发环境
对于测试人员:可以直接拿开发时所构建的镜像或者通过Dockerfile文件构建一个新的镜像开始工作了
对于运维人员:在部署时,可以实现应用的无缝移植


Docker服务编排

微服务架构的应用系统中一般包含若千个微服务,每个微服务一般都会部署多个实例,如果每个微服务都要手动启停,维护的工作量会很大。

要从Dockerfile build image或者去dockerhub拉取image

要创建多个container

要管理这些container (启动停止删除)

服务编排:按照一定的业务规则批量管理容器

Docker Compose

Docker Compose是一个编排多容器分布式部署的工具,提供命令集管理容器化应用的完整开发周期,包括服务构建,启动和停止。使用步骤:
1.利用Dockerfile定义标行环境镜像
2.使用docker-compose.yml定义组成应用的各服务
3.运行docker-compose up启动应用



Docker Compose安装




使用docker compose编排nginx+springboot项目








Docker私有仓库

Docker官方的Docker hub (https://hub.docker.com)是一个用于管理公共镜像的仓库,我们可以从上面拉取镜像到本地,也可以把我们自己的镜像推送上去。但是,有时候我们的服务器无法访问互联网,或者你不希望将自己的镜像放到公网当中,那么我们就需要搭建自己的私有仓库来存储和管理自己的镜像。

私有仓库搭建

第一步:拉取私有仓库镜像


第二步:启动私有仓库


第三步:打开浏览器输入地址http://私有仓库服务器ip: 5000/v2/_catalog,看到{ “repositories” :[]}表示私有仓库搭建成功


第四步:修改daemon.json


第五步:重启docker服务



将镜像上传至私有仓库

第一步:标记镜像为私有仓库的镜像


第二步:上传标记的镜像



目录
相关文章
|
2天前
|
Docker 容器
docker:记录如何在x86架构上构造和使用arm架构的镜像
为了实现国产化适配,需将原x86平台上的Docker镜像转换为适用于ARM平台的镜像。本文介绍了如何配置Docker buildx环境,包括检查Docker版本、安装buildx插件、启用实验性功能及构建多平台镜像的具体步骤。通过这些操作,可以在x86平台上成功构建并运行ARM64镜像,实现跨平台的应用部署。
17 2
|
14天前
|
Java Docker 微服务
SpringBoot微服务打包Docker镜像
SpringBoot微服务打包Docker镜像
45 11
|
6天前
|
Go Docker Python
docker的python与go镜像的制作
docker的python与go镜像的制作
15 1
|
13天前
|
缓存 安全 Linux
docker镜像管理问题
【10月更文挑战第3天】
61 1
|
13天前
|
Linux iOS开发 Docker
docker服务未启动
【10月更文挑战第3天】
25 1
|
6天前
|
网络协议 Docker 容器
docker pull命令拉取镜像失败的解决方案
docker pull命令拉取镜像失败的解决方案
108 0
|
10天前
|
网络安全 Docker 容器
【Bug修复】秒杀服务器异常,轻松恢复网站访问--从防火墙到Docker服务的全面解析
【Bug修复】秒杀服务器异常,轻松恢复网站访问--从防火墙到Docker服务的全面解析
16 0
|
13天前
|
NoSQL MongoDB Docker
求助,有没有大神可以找到arm64架构下mongodb的3.6.8版本的docker镜像?
在Docker Hub受限的情况下,寻求适用于ARM架构的docker镜像资源或拉取链接,以便在x86架构上获取;内网中的机器为ARM架构,因此优先请求适合ARM的Docker镜像或Dockerfile,非常感激您的帮助。
|
安全 数据安全/隐私保护 Docker
【转载】详解Docker 最低特权编排原则,安全与效率并行!(一)
Docker 平台和容器已经逐渐成为打包、部署和管理应用程序的标准。为了让容器在集群中于多节点间协调运行,这就需要一个关键的功能:容器编排(container orchestrator)。小编将分两篇为大家详细讲解这一重要功能。
1972 0