Docker镜像制作

  • 1.镜像构成
  • 2.使用容器制作镜像
  • Dockerfile是一个用于描述生产docker镜像的文件,它里面是一条条的指令,每条指令都会对镜像产生一定影响。
    • 1.将springboot-hello-0.0.1-SNAPSHOT.jar上传到linux
    • 2.创建一个springboot-dockerfile文件,内容如下
    • 3.通过dockerfile构建镜像
    • 4.查看生成的镜像,并运行为容器
  • 访问测试

1.镜像构成

Docker镜像是一个分层文件系统,最底端是bootfs,它会直接使用宿主机的bootfs;第二层是root文件系统rootfs,称为base image

然后再往上可以叠加其他的镜像文件,一个镜像可以放在另一个镜像的上面。位于下面的镜像称为父镜像,最底部的镜像成为基础镜像。

2.使用容器制作镜像

docker允许将一个容器直接转化为镜像,使用的命令如下:

docker commit 容器id 镜像名称:版本号

实现:修改当前的nginx容器中的index.html文件内容为hehe,然后将修改后的容器做成一个名为mynginx:hehe的镜像

#1. 查看当前正在运行的容器
[root@itcast ~]# docker ps
CONTAINER ID        IMAGE        COMMAND                 CREATED             STATUS              PORTS                     NAMES
0ce0bf14399d        nginx       "/docker-entrypoint.…"   14 hours ago        Up 14 hours         0.0.0.0:80->80/tcp        nginx#2. 进入nginx容器,然后向主页面覆盖写入"hehe",然后退出容器
[root@itcast ~]# docker exec -it nginx /bin/bash
root@0ce0bf14399d:/# echo "hehe" > /usr/share/nginx/html/index.html
root@0ce0bf14399d:/# exit#3. 将修改之后的容器生成为mynginx:hehe镜像
[root@itcast ~]# docker commit nginx mynginx:hehe
sha256:139a9ea6a6008bc5557566e54316ccd8b93f508dba1daf7296235a461c8d471e#4. 查看镜像
[root@itcast ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mynginx             hehe                139a9ea6a600        8 seconds ago       133MB

Dockerfile是一个用于描述生产docker镜像的文件,它里面是一条条的指令,每条指令都会对镜像产生一定影响。

基于jdk1.8环境运行springboot项目,打包为镜像

1.将springboot-hello-0.0.1-SNAPSHOT.jar上传到linux

2.创建一个springboot-dockerfile文件,内容如下

# 定义基础镜像(从哪个镜像的基础上开始做)
FROM java:8
# 定义作者信息(可以省略)
MAINTAINER  itheima <itheima@itcast.cn>
# 将jar包添加到容器,并改名为app.jar
ADD springboot-hello-0.0.1-SNAPSHOT.jar app.jar
# 镜像启动容器的时候,执行的命令
CMD java -jar app.jar

3.通过dockerfile构建镜像

# -f :指定要使用的Dockerfile路径   -t :指定生成的镜像名称   .  镜像构建过程中的上下文环境的目录
docker build -f ./springboot-dockerfile -t app-itheima .

4.查看生成的镜像,并运行为容器

[root@itcast ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
app-itheima         latest              663f3e3e33fb        35 minutes ago      661MB[root@itcast ~]# docker run -d -p 18080:8080 app-itheima:latest
5ea166a3dbec4c091d7a70f84b75703f55a9ccd93f3a45466e4eeb9ac56fdb17[root@itcast ~]#
[root@itcast ~]# docker ps
CONTAINER ID        IMAGE                COMMAND                  CREATED            PORTS                         NAMES
5ea166a3dbec        app-itheima:latest   "/bin/sh -c 'java -j…"   7 seconds ago      0.0.0.0:18080->8080/tcp       serene_antonelli

访问测试

【Docker】镜像制作及使用Dockerfile制作镜像相关推荐

  1. ad如何镜像器件_使用 Dockerfile 制作镜像

    前面几篇文章已经给大家介绍了 Docker 的基本概念,相信大家也会使用 Docker 运行自己想要的容器了.但是只有学会制作镜像,才能将 Docker 应用到我们的项目中去.下面我们就来学习如何使用 ...

  2. Docker学习之六:基于Dockerfile构建镜像

    镜像制作 一般镜像的制作,通常需要修改镜像的配置文件,比如nginx的配置文件,可以通过以下的方式: 将配置文件做成存储卷,从宿主机编辑好之后,启动容器时应用程序加载配置文件的路径并和宿主机的目录建立 ...

  3. Docker学习,从hello-word到Dockerfile创建镜像

    一.Docker的最小镜像hello-world 1.docker  pull 下载hello-world镜像 docker  pull   hello-world 2.docker  images ...

  4. Docker发布/上传镜像到dockerhub下载/拉取镜像删除dockerhub镜像

    文章目录 一.注册dockerhub 二.安装docker 三.编写一个dockerfile打成镜像或者直接pull一个镜像 1.编写dockerfile 2.直接pull一个镜像 四.修改镜像标签 ...

  5. Docker Review - dockerfile 实战_使用dockerfile制作tomcat镜像

    文章目录 Pre Docker 官方镜像 Dockerfile dockerfile制作tomcat镜像 准备软件 编写Dockerfile文件 dockerfile构建镜像 启动镜像 测试访问tom ...

  6. Docker入门系列之三:如何将dockerfile制作好的镜像发布到Docker hub上

    这个系列的前两篇文章,我们已经把我们的应用成功地在Docker里通过nginx运行了起来,并且用dockerfile里制作好了一个镜像. Docker入门系列之一:在一个Docker容器里运行指定的w ...

  7. Docker搭建个人网盘和私人仓库,创建Dockerfile制作镜像

    1.使用mysql:5.6和 owncloud 镜像,构建一个个人网盘. 2.安装搭建私有仓库 Harbor 3.编写Dockerfile制作Web应用系统nginx镜像,生成镜像nginx:v1.1 ...

  8. 【Docker】docker镜像的获取、制作方法、Dockerfile

    目录 docker镜像 docker镜像的获取: docker镜像的制作方法: 基于容器制作镜像: 基于docker file制作: dockerfile instructions: FROM: MA ...

  9. docker -- dockerfile制作镜像

    基于容器手动制作镜像步骤具体如下: 下载一个系统的官方基础镜像,如: CentOS 或 Ubuntu 基于基础镜像启动一个容器,并进入到容器 在容器里面做配置操作 安装基础命令 配置运行环境 安装服务 ...

最新文章

  1. 未来之城,管理者可能不是人......
  2. python散点图点的大小-Python散点图。 标记的大小和样式
  3. 《代码整洁之道》阅读笔记
  4. UDP socket编程中使用connect
  5. mysql登录错误1045修改工具_mysql登录1045错误时 修改登录密码
  6. 土地利用覆被变化的概念_欠压实概念极其荒谬
  7. HTML 列表中的dl,dt,dd,ul,li,ol区别及应用
  8. 自动化运维环境搭建过程
  9. python保存数据db_python存储数据到mongodb
  10. python立体匹配误匹配率_立体匹配算法(Stereo Matching)及其在OpenCV中的应用
  11. 从“三只小猪”的故事到“高性能”测试自动化
  12. Redis--缓存设计与性能优化
  13. Python将数字排列组合
  14. 因为相信所以看见,既然看见注定坚信《7》
  15. 西北农林科技大学计算机考研好考吗,西北农林科技大学考研好考吗?
  16. Framer多车型切换实现的网络功能
  17. NKOJ3685 8数
  18. idea意外退出无法调试,报错:idea unable to open debug port
  19. ITOP4412 OV5640摄像头模块
  20. EXSI封装网卡驱动

热门文章

  1. 茴字的四种写法——浅谈移动前端适配
  2. HTTP状态信息和描述
  3. 首次发布!中国四维发布国内首个干涉SAR商业卫星星座数据产品
  4. 万字好文!数据治理体系与能力提升
  5. border-radius理解-边框棱角变圆
  6. Studio3T 无限破解 (2019.3.0.0)
  7. 论接口自动化测试方法
  8. 电机控制(1)直流电机的控制
  9. backtrader和vnpy哪个更好用?
  10. 直接执行SQL语句的快捷键是什么啊?嘎嘎