【Docker】镜像的构建与上传下载阿里云

这篇具有很好参考价值的文章主要介绍了【Docker】镜像的构建与上传下载阿里云。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【Docker】镜像的构建与上传下载阿里云,Docker实战,docker,阿里云,容器

🎉🎉欢迎来到我的CSDN主页!🎉🎉

🏅我是Java方文山,一个在CSDN分享笔记的博主。📚📚

🌟推荐给大家我的专栏《Docker实战》。🎯🎯

👉点击这里,就可以查看我的主页啦!👇👇

Java方文山的个人主页

🎁如果感觉还不错的话请给我点赞吧!🎁🎁

💖期待你的加入,一起学习,一起进步!💖💖

【Docker】镜像的构建与上传下载阿里云,Docker实战,docker,阿里云,容器

目录

✨前言

一、构建镜像

1.基本结构

2.构建镜像

2.1.初步了解

2.2.镜像运行jdk

二、镜像的优化

三、镜像上传与下载

3.1.上传镜像

①登录阿里云进入控制台搜索容器镜像服务ACR

②实例列表选择自己需要的实例

③设置Registry密码

④设置访问凭证固定密码

⑤在虚拟机中登录Docker

⑥创建命名空间

⑦创建镜像仓库

​编辑⑧推送镜像到阿里云

3.2.下载镜像


 

✨前言

镜像往往都是我们用的别人已经构建好的,但是他们相互之间又没有关联,如果我想要一个镜像就把一系列的事情完成了,那显然是不可能的,所以我们要根据我们自己的需求构建一个属于我们自己的镜像,而且我们可以在任何地方使用它而无需担心配置问题或者依赖项缺失的问题。此外,镜像还可以被用来进行容器化部署,这种方式可以更加高效地利用计算资源,提高应用程序部署和运行的效率。

一、构建镜像

我们构建镜像也是需要一个基础镜像的,作为我们的“地基”,但是这个镜像没有要求限制随便你搞一个都可以,我这里提供两个镜像给大家选择。

  • centos
  • alpine

centos和alpine的区别:

1. 空间大小差异,alpine默认5M左右,centos等都在200M左右。

2. 默认软件包差异,alpine选用busybox,centos等则是bash+coreutils几件套。

3. alpine中,国际化组件被优化掉了。

4. 还有一点,alpine中选用的都是“最简依赖”,这点和archlinux比较像,举个例子, openssh包不会自带pam插件,于是他也就不支持ldap。这点我给alpinelinux官方提过 issue。和php不一样,php可以做成php-pdo,php-dom的包,然后动态加载共享库。 openssh不行,“没带就是没写”。

5. glibc差异,alpine选用musl,centos等选用glibc,其他的倒还好,libc的差异对开发很重 要。

1.基本结构

Dockerfile 由一行行命令语句组成,并且支持以 # 开头的注释行。 一般的,Dockerfile 分为四部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令。

部分 命令
基础镜像信息 FROM
维护者信息 MAINTAINER
镜像操作指令
RUN ENV COPY ADD EXPOSE WORKDIR ONBUILD USER
VOLUME
容器启动时执行指令
CMD ENTRYPOINT
我这里还有一个比较具象化的图片方便大家理解
【Docker】镜像的构建与上传下载阿里云,Docker实战,docker,阿里云,容器

2.构建镜像

2.1.初步了解

创建文件夹上传jdk的安装包,和在同级目录下编写Dockerfile文件

①上传jdk

【Docker】镜像的构建与上传下载阿里云,Docker实战,docker,阿里云,容器

②同级目录下创建Dockerfile文件并编辑

【Docker】镜像的构建与上传下载阿里云,Docker实战,docker,阿里云,容器

FROM centos
MAINTAINER 1409726556@qq.com
WORKDIR /test
COPY spring.jar /test
  • FROM centos:指定基础镜像为 CentOS,即以 CentOS 作为镜像的基础环境。
  • MAINTAINER 1409726556@qq.com:指定维护者的信息,这里是邮箱地址。
  • WORKDIR /test:设置工作目录为 /test,即在容器内部创建并切换到 /test 目录。
  • COPY spring.jar /test:将主机上的 spring.jar 文件复制到容器内的 /test 目录。
编写完成 Dockerfile 之后,可以通过 docker build 命令来创建镜像。
docker build -t spring:v1.0 .
1 -t spring:v1.0 给新构建的镜像取名为spring, 并设定版本为 v1.0
2 :注意最后有个点,代表使用当前路径的 Dockerfile 进行构建

【Docker】镜像的构建与上传下载阿里云,Docker实战,docker,阿里云,容器

我们可以查看一下看有没有这个镜像

【Docker】镜像的构建与上传下载阿里云,Docker实战,docker,阿里云,容器

我们再来根据这个镜像构建一个容器看看

【Docker】镜像的构建与上传下载阿里云,Docker实战,docker,阿里云,容器

完全是可以构建的并且初始目录就是我们所设置的/test

2.2.镜像运行jdk

首先我们要明白jdkjre的区别是什么?jdk可以粗略的理解为编译器调试器,而我们的jre是真正运行我们java文件的,如果我们只需要运行环境就只需要jre即可。

①首先将jre的压缩包放入宿主机的目录下

【Docker】镜像的构建与上传下载阿里云,Docker实战,docker,阿里云,容器

由于我们需要在Dockerfile文件下进行编辑配置JAVA的环境变量,但是我们不知道该压缩文件解压后叫什么名字,所以我们可以提前在外面解压一遍看看

【Docker】镜像的构建与上传下载阿里云,Docker实战,docker,阿里云,容器

②编辑Dockerfile文件

FROM centos
MAINTAINER 1409726556@qq.com
WORKDIR /test
COPY spring.jar /test
ADD jre-8u391-linux-x64.tar.gz /test
ENV JAVA_HOME=/test/jre1.8.0_391
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH=$JAVA_HOME/bin:$PATH
  • ADD :将我们压缩包复制到该容器目录下并解压
  • ENV:键值对的形式配置我们JAVA的环境变量和我们Windows中的一样

【Docker】镜像的构建与上传下载阿里云,Docker实战,docker,阿里云,容器 ③将镜像进行构建

docker build -t spring:v2.0 .

【Docker】镜像的构建与上传下载阿里云,Docker实战,docker,阿里云,容器

 我们先查看一下我们的jre和jar包有没有在容器中

【Docker】镜像的构建与上传下载阿里云,Docker实战,docker,阿里云,容器

 ④运行jar包

java -jar spring.jar

【Docker】镜像的构建与上传下载阿里云,Docker实战,docker,阿里云,容器

但是这里还有一个小问题,我们是需要进到容器里面进行jar包的运行的,我想要构建容器的时候就自动运行怎么办呢?我们可以在Dockerfile文件配置中追加一个CMD命令

【Docker】镜像的构建与上传下载阿里云,Docker实战,docker,阿里云,容器

  •  CMD:容器启动时需要执行的命令

如果CMD需要运行容器执行多条命令应该怎么描述?

1.使用分号 ; 将多个命令放在一行:

CMD command1 ; command2 ; command3

2.使用换行符 \ 将多个命令分行编写:

CMD command1 \
    command2 \
    command3

直接构建运行一下试试

docker build -t spring:v2.0 .

docker run -it spring:v3.0

【Docker】镜像的构建与上传下载阿里云,Docker实战,docker,阿里云,容器 可以看到我刚刚构建镜像直接创建容器就会执行jar,说明我们的指令成功了

二、镜像的优化

 在上面的内容中我们学习了如何构建一个镜像以及镜像运行jar包,现在我们看一下我们的镜像

【Docker】镜像的构建与上传下载阿里云,Docker实战,docker,阿里云,容器

 可以看到除了我们的普通镜像是250MB另外两个带有jre的都是526MB,这个容量说大不大说小不小,但是我们还有可以优化的空间,刚刚我们不是提到两个基础镜像centosalpine吗?alpine只有5MB现在我们换成它试一下

FROM jeanblanchard/alpine-glibc
MAINTAINER 1409726556@qq.com
WORKDIR /test
COPY spring.jar /test
ADD jre-8u391-linux-x64.tar.gz /test
ENV JAVA_HOME=/test/jre1.8.0_391
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH=$JAVA_HOME/bin:$PATH
CMD java -jar spring.jar

【Docker】镜像的构建与上传下载阿里云,Docker实战,docker,阿里云,容器

然后我们构建和运行一下看下是否正常?

【Docker】镜像的构建与上传下载阿里云,Docker实战,docker,阿里云,容器

完全没有问题,现在来看一下镜像的容量是多少?

【Docker】镜像的构建与上传下载阿里云,Docker实战,docker,阿里云,容器

可以看到使用alpine的基础镜像容量明显少了218MB,在项目中一个模块可能要部署五六个容器甚至更多,一个项目那么多模块,这么算下来相当于减少了大量的空间浪费。

最后我们试一下这个jar跑起来在外面能不能访问?

【Docker】镜像的构建与上传下载阿里云,Docker实战,docker,阿里云,容器

成功访问没有问题

【Docker】镜像的构建与上传下载阿里云,Docker实战,docker,阿里云,容器

 

三、镜像上传与下载

我们将镜像做好了也只是在本机,如果我们的电脑不在身边或者别人需要使用我们做好的镜像应该怎么办?我们可以将镜像上传到Docker,但是Docker服务在国外还是比较慢的,我们就可以上传到阿里云镜像仓库。

3.1.上传镜像

①登录阿里云进入控制台搜索容器镜像服务ACR

【Docker】镜像的构建与上传下载阿里云,Docker实战,docker,阿里云,容器

②实例列表选择自己需要的实例

【Docker】镜像的构建与上传下载阿里云,Docker实战,docker,阿里云,容器

③设置Registry密码

【Docker】镜像的构建与上传下载阿里云,Docker实战,docker,阿里云,容器 ④设置访问凭证固定密码

【Docker】镜像的构建与上传下载阿里云,Docker实战,docker,阿里云,容器

阿里云的 Docker 设置访问凭证固定密码和 Registry 密码是不同的,并且它们也不是同一个密码。

  1. Docker 设置访问凭证固定密码:此功能是指在创建阿里云容器实例时,为了保护 Docker 服务而设置的密码。该密码将用于访问 Docker 服务,用于验证身份并进行相关操作。这个密码是您自己设置的,用于对 Docker 服务进行身份验证,提供访问权限。

  2. Registry 密码:阿里云容器镜像服务(Registry)是用于存储和管理 Docker 镜像的云服务。当您使用阿里云容器镜像服务时,会创建一个 Registry,其中包含您上传的镜像。为了保护镜像的安全,阿里云容器镜像服务需要设置一个密码来对 Registry 进行访问控制。这个密码是阿里云为您自动生成的,用于对 Registry 进行身份验证。

所以,Docker 设置访问凭证固定密码和 Registry 密码是不同的密码。一个用于访问 Docker 服务,另一个用于访问和管理阿里云容器镜像服务中的镜像。

 ⑤在虚拟机中登录Docker

将官方提供给你的命令复制进行修改后进行登录

【Docker】镜像的构建与上传下载阿里云,Docker实战,docker,阿里云,容器

【Docker】镜像的构建与上传下载阿里云,Docker实战,docker,阿里云,容器 ⑥创建命名空间

【Docker】镜像的构建与上传下载阿里云,Docker实战,docker,阿里云,容器

⑦创建镜像仓库

【Docker】镜像的构建与上传下载阿里云,Docker实战,docker,阿里云,容器⑧推送镜像到阿里云

阿里云这边也是会有实例代码告诉你的,直接复制将自定信息修改成自己的即可

【Docker】镜像的构建与上传下载阿里云,Docker实战,docker,阿里云,容器首先为我们需要上传的镜像取个别名 【Docker】镜像的构建与上传下载阿里云,Docker实战,docker,阿里云,容器

 将目标推送的镜像仓库换成阿里云的镜像仓库

【Docker】镜像的构建与上传下载阿里云,Docker实战,docker,阿里云,容器

 推送镜像

【Docker】镜像的构建与上传下载阿里云,Docker实战,docker,阿里云,容器

推送成功我们就可以上阿里云镜像仓库看看了

【Docker】镜像的构建与上传下载阿里云,Docker实战,docker,阿里云,容器 

3.2.下载镜像

我们先将该镜像删除在进行下载,也是没有任何问题的

docker rmi registry.cn-hangzhou.aliyuncs.com/java-ar/java-jar:v1.0

【Docker】镜像的构建与上传下载阿里云,Docker实战,docker,阿里云,容器 

【Docker】镜像的构建与上传下载阿里云,Docker实战,docker,阿里云,容器

到这里我的分享就结束了,欢迎到评论区探讨交流!!

💖如果觉得有用的话还请点个赞吧 💖

【Docker】镜像的构建与上传下载阿里云,Docker实战,docker,阿里云,容器文章来源地址https://www.toymoban.com/news/detail-799475.html

到了这里,关于【Docker】镜像的构建与上传下载阿里云的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 前端通过STS方式直传至阿里云OSS(包含文件上传、下载和自动刷新stsToken)

    最近项目业务需要实现一个资源管理的功能,就简单学习了一下前端怎么使用阿里云OSS。 原本这些事情都是后端实现的,但这样子有许多缺点,比如文件上传需要走两次,先上传到后端,再由后端上传至阿里云OSS,既占用带宽也浪费时间;此外,前端还不能获取到真正的上传

    2024年01月19日
    浏览(67)
  • Flask Web API构建实例:GET、POST文件上传、静态资源下载一网打尽

      以下是一个通过 Flask 构建 Web API 服务的详细示例,包含了各类请求(GET、POST、文件上传、静态资源下载)、每个方法独立配置路由、参数接收和解析、请求日志记录以及异常日志记录。请确保你已经安装了 Flask,你可以使用以下命令进行安装: 接下来是一个包含详细注释

    2024年02月04日
    浏览(52)
  • minio-docker单节点部署SDK测试文件上传下载

    目录 一,docker部署minio单节点单磁盘 二,SDK测试上传下载 1.拉取镜像 2.查看镜像 3.启动minio(新版本) 创建本机上的挂载目录,这个可以自己指定。 -d --restart=always是容器自启动,建议不要带。 增加这行参数,执行docker stop的时候不管用,他会立马又自己启动起来,只能强制删

    2024年04月28日
    浏览(30)
  • minio + linux + docker + spring boot实现文件上传与下载

    检查linux内核,必须是3.10以上 安装docker 启动docker 搜索镜像 拉取镜像 启动minio -p: 指定端口映射,格式为:主机端口:容器端口 (这里注意要映射两个,否则API会访问不到) -e “MINIO_ROOT_USER=vinci” minio用户名; -e MINIO_SECRET_KEY=123456 minio 密码 -d: 后台运行容器,并返回容器ID; -

    2024年02月07日
    浏览(56)
  • CentOS如何使用Docker部署Plik服务并实现公网访问本地设备上传下载文件

    本文介绍如何使用Linux docker方式快速安装Plik并且结合Cpolar内网穿透工具实现远程访问,实现随时随地在任意设备上传或者下载或者共享文件! Plik是一个可扩展且友好的临时文件上传系统,类似于wetransfer。它具有强大的命令行客户端和易于使用的Web UI,支持多个数据后端(文

    2024年04月17日
    浏览(36)
  • 前端实战:基于Verdaccio搭建私有npm仓库,轻松上传与下载自定义npm插件包

    搭建团队的私有仓库,保证团队组件的安全维护和私密性,是进阶前端开发主管路上,必不可少的一项技能。 一、原理 我们平时使用npm publish进行发布时,上传的仓库默认地址是npm,通过Verdaccio工具在本地新建一个仓库地址,再把本地的默认上传仓库地址切换到本地仓库地址

    2024年04月17日
    浏览(43)
  • Dockerfile构建镜像以及阿里云上传

    我们在使用docker部署微服务项目的时候会发现这样一个问题:每个服务构建出的镜像文件都很大,几百M,有些原始镜像也已经占据了很多内存了... 这种大的镜像往往都会导致迁移的速度变慢。其实我们启动容器主要最需要的镜像是jdk,那么我们可以在构建镜像的时候就使用

    2024年01月22日
    浏览(74)
  • 【Docker】Docker之镜像上传(阿里云镜像仓库)

    登录阿里云 登录成功后,搜索docker镜像 点击立即开通 创建个人实例 创建镜像仓库 点击下一步之后,可以选择代码源,本文选择的是本地仓库 镜像仓库创建成功,根据对应操作命令实现想要的功能,如上传镜像、拉取镜像等 参考链接:Docker之镜像上传(手把手教你在Docke

    2024年02月13日
    浏览(36)
  • Docker镜像构建&优化及上传

    Dockerfile 是一个文本格式的配置文件, 用户可以使用 Dockerfile 来快速创建自定义的镜像,另外,使 用 Dockerfile 去构建镜像好比使用 pom 去构建 maven 项目一样,有异曲同工之妙 Dockerfile 是一个包含一组指令的文本文件,用于告诉 Docker 如何构建一个镜像 Dockerfile一般分为四部分

    2024年01月18日
    浏览(45)
  • docker构建镜像上传到DockerHub

    DockerHub网址: https://hub.docker.com/ 注册 登录 docker宿主机环境 centos7 参考网址: https://yeasy.gitbook.io/docker_practice/install/centos 测试 docker 是否安装好 登录 docker 命令 交互式输入 账号/密码 登录成功!!! 退出 docker 测试案例 nginx 服务 拉取镜像 直接 docker run , 会自动拉取对应的 镜像 运行

    2024年02月07日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包