返回顶部
首页 > 资讯 > 服务器 >Docker构建镜像的两种方式实现
  • 380
分享到

Docker构建镜像的两种方式实现

2024-04-02 19:04:59 380人浏览 安东尼
摘要

目录从已有镜像更新镜像:从零开始构建镜像:从 Docker 镜像仓库中下载的镜像不能满足我们的需求时,可以通过以下两种方式对镜像进行更改。 从已有镜像更新镜像 从零

Docker 镜像仓库中下载的镜像不能满足我们的需求时,可以通过以下两种方式对镜像进行更改。

  • 从已有镜像更新镜像
  • 从零开始构建镜像

从已有镜像更新镜像:

更新镜像之前,我们需要使用镜像来创建一个容器

在这里插入图片描述

进入容器:


docker run -t -i db2b37ec6181 /bin/bash

在运行的容器内使用 apt-get update 命令进行更新。在完成操作之后,输入 exit 命令来退出这个容器。
此时 ID 为 0aab061e6f5a的容器,是按我们的需求更改的容器。我们可以通过命令 docker commit 来提交容器副本。

在这里插入图片描述


[root@localhost .ssh]# docker commit -m="has update" -a="zyn" 0aab061e6f5a Mysql:v2
sha256:3Dda266fd05963e816f22e3dec2584589977e040f7202e0421b0151290e4f54b

以上命令各个参数说明:

-m: 提交的描述信息
-a: 指定镜像作者
0aab061e6f5a:容器 ID
mysql:v2: 指定要创建的目标镜像名

我们可以使用 docker images 命令来查看我们的新镜像 mysql:v2:

在这里插入图片描述

从零开始构建镜像:

使用命令 docker build , 从零开始来创建一个新的镜像。为此,需要创建一个 Dockerfile 文件,其中包含一组指令来告诉 Docker 如何构建我们的镜像。

例如我们将一个jar包构建出docker镜像:

首先创建Dockerfile文件:


FROM java:8
MaiNTAINER zyn
COPY jenkins.war /usr/local/jenkins.war
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "/usr/local/jenkins.war","--HttpPort=8080"]

以上命令各个参数说明:

java:8就是刚下载的基础镜像
MAINTAINER是作者
COPY是把本地的jar拷贝到镜像中
EXPOSE声明镜像开放的接口
ENTRYPOINT 是指定在docker run时的命令参数,类似的还是RUN和CMD命令

每一个指令都会在镜像上创建一个新的层,每一个指令的前缀都必须是大写的。

然后将jar放到与Dockerfile同级目录下:

在这里插入图片描述

最后,我们使用 Dockerfile 文件,通过 docker build 命令来构建一个镜像:

注意:Dockerfile后面的点指的是把当前目录作为上下文目录,创建镜像时,会把上下文目录的文件拷贝到镜像中,也就是把jar包拷贝到镜像中


[root@localhost zyn]# docker build -t my_jenkins:1.0 -f Dockerfile .
Sending build context to Docker daemon  67.29MB
Step 1/5 : FROM java:8
8: Pulling from library/java
5040bd298390: Pull complete
fce5728aad85: Pull complete
76610ec20bf5: Pull complete
60170fec2151: Pull complete
e98f73de8f0d: Pull complete
11f7af24ed9c: Pull complete
49e2d6393f32: Pull complete
bb9cdec9c7f3: Pull complete
Digest: sha256:c1ff613e8ba25833d2e1940da0940c3824f03f802c449f3d1815a66b7f8c0e9d
Status: Downloaded newer image for java:8
 ---> d23bdf5b1b1b
Step 2/5 : MAINTAINER zyn
 ---> Running in d8027d9002f4
Removing intermediate container d8027d9002f4
 ---> cdd9362868cb
Step 3/5 : COPY jenkins.war /usr/local/jenkins.war
 ---> 3a276d766222
Step 4/5 : EXPOSE 8080
 ---> Running in 99cf28fb33a8
Removing intermediate container 99cf28fb33a8
 ---> de89b785c80d
Step 5/5 : ENTRYPOINT ["java", "-jar", "/usr/local/jenkins.war","--httpPort=8080"]
 ---> Running in c3a7e16eaa11
Removing intermediate container c3a7e16eaa11
 ---> 5107b1256f01
Successfully built 5107b1256f01
Successfully tagged my_jenkins:1.0

在这里插入图片描述

启动以上的docker镜像:


[root@localhost zyn]# docker run -itd --name jenkins -p 18080:8080 my_jenkins:1.0
5e185bb8e4866b8018f0b3bb7a4845360d3d4efc5bd2509d84fe118929fe52b3

在这里插入图片描述

到此这篇关于Docker构建镜像的两种方式实现的文章就介绍到这了,更多相关Docker构建镜像内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Docker构建镜像的两种方式实现

本文链接: https://lsjlt.com/news/136909.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Docker构建镜像的两种方式实现
    目录从已有镜像更新镜像:从零开始构建镜像:从 docker 镜像仓库中下载的镜像不能满足我们的需求时,可以通过以下两种方式对镜像进行更改。 从已有镜像更新镜像 从零...
    99+
    2024-04-02
  • docker镜像的构建方式有哪些
    Docker镜像的构建方式有以下几种:1. 基于已有镜像:可以通过在已有镜像的基础上进行修改和定制来构建新的镜像。这种方式可以通过D...
    99+
    2023-09-18
    docker
  • docker镜像构建的方式有哪些
    有以下几种构建Docker镜像的方式: 使用Dockerfile:Dockerfile 是一个包含了构建 Docker 镜像步骤...
    99+
    2024-03-13
    docker
  • Docker多阶段镜像构建的实现方法
    小编给大家分享一下Docker多阶段镜像构建的实现方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!从Docker版本 17.05.0-ce 开始,就支持了一种新...
    99+
    2023-06-07
  • docker镜像导入导出的两种方法
    目录一、使用 export 和 import1,查看本机的容器2,导出镜像3,导入镜像二、使用 save 和 load1,查看本机的容器2,保存镜像3,载入镜像附:两种方案的差别1,...
    99+
    2023-03-02
    docker镜像导入导出 Docker 导入导出镜像
  • 使用Docker镜像构建Go应用的实现方法
    目录修炼背景第一次尝试第二次尝试第三次尝试神功练成项目地址修炼背景 我夜以继日,加班加点开发了一个最简单的 Go Hello world 应用,虽然只是跑了打印一下就退出了,但是老板...
    99+
    2024-04-02
  • Docker Buildx构建多平台镜像的实现
    目录写在前边构建环境启用BuildX安装qemu-user-static通知Docker使用qemu创建Buildx构建容器调整Dockerfile接收平台相关参数同时构建X86_64与ARM64镜像写在最后写在前边 记录一下前阵子在X86...
    99+
    2024-04-02
  • 从docker镜像里提取dockerfile的两种方法
    目录前言从镜像中提取dockerfile的两种方法1、history参数2、dfimage补充:如何设置永久的别名总结前言 hello,大家好,今天在玩docker的时候发现了很好用的东西,他就是用来提取镜像中的dockerfile的。这个...
    99+
    2024-04-02
  • docker通过Dockerfile构建mysql镜像的方法
    构建Dockerfile ,路径 /docker/mysql FROM hub.c.163.com/library/mysql:5.7 #作者信息 MAINTAINER hu "**...
    99+
    2024-04-02
  • Docker镜像构建之dockercommit的使用
    目录1、创建容器2、拷贝资源3、安装资源4、构建镜像5、使用构建的镜像创建容器我们可以通过公共仓库拉取镜像使用,但是,有些时候公共仓库拉取的镜像并不符合我们的需求。尽管已经从繁琐的部...
    99+
    2024-04-02
  • Jenkins打包微服务构建Docker镜像运行的实现
    目录环境准备开始1.GitLab远程仓库创建微服务项目 2.IDEA代码推送到Gitlab 3.Jenkins创建流水线项目 4.参数化构建 5.拉取远程仓库的构建脚本 6.编写远程...
    99+
    2024-04-02
  • Jenkins构建Docker镜像并推送至Harbor仓库的实现
    目录Dockerfile文件pom.xmlJenkins配置​ spring boot项目通过Jenkins集成构建Docker镜像推送到harbor仓库并启动容器然后拉...
    99+
    2024-04-02
  • docker 基于golang镜像构建 ssh服务的方法
    下面给大家介绍下docker 基于golang镜像构建 ssh服务的代码,具体内容如下所示: # golang:latest镜像 FROM ee23292e2826 # 作者 M...
    99+
    2024-04-02
  • Docker使用nodejs镜像构建express服务的方法
    目录1 nodejs容器的启动2 安装nodejs第三方依赖模块3 启动nodejs服务1 nodejs容器的启动 安装docker curl -fsSL https://get.d...
    99+
    2024-04-02
  • 手动构建自己的docker容器镜像实战
    目录前言一. 设置docker构建镜像的环境1.1 commit 命令的介绍1.2 创建一个tomcat容器二. 开始构建自己的镜像2.1 查看容器的ID2.2 使用命令docker...
    99+
    2023-05-15
    docker容器镜像实战 docker容器镜像
  • Docker镜像发布到Docker Hub的实现方法
    目录一、Docker 官网注册一个账号,新建仓库二、制作镜像,保存修改后的容器镜像为例三、镜像上传四、镜像下载在使用docker过程中,往往会用到镜像仓库,方便管理的同时也方便在其他...
    99+
    2024-04-02
  • 怎么构建自己的docker容器镜像
    本文小编为大家详细介绍“怎么构建自己的docker容器镜像”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么构建自己的docker容器镜像”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一. 设置docker构建...
    99+
    2023-07-05
  • Dockerfile构建自定义镜像的实现
    目录前言 Dockerfile简介 Dockerfile构建镜像的流程 Dockerfile使用 前言 前面文章中使用docker运行容器使用的镜像都是从dockerhub上远程p...
    99+
    2024-04-02
  • DockerBuildx构建多平台镜像的实现
    目录写在前边构建环境启用BuildX安装qemu-user-static通知Docker使用qemu创建Buildx构建容器调整Dockerfile接收平台相关参数同时构建X86_6...
    99+
    2024-04-02
  • 详解java项目打包docker镜像的几种方式
    目录前言一、背景环境二、打包方式(三种)1. 在idea环境里打包方式一2. 在idea环境里打包方式二3. 基本打包方式三、启动服务四、总结前言 本文章记录了 sprin...
    99+
    2023-01-15
    java项目打包docker镜像 java打包docker镜像
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作