• docker学习15-Docker 使用修改后容器来创建镜像


    前言

    前面讲通过 Dockefile 可以制作自己的镜像,通过镜像创建容器启动服务,有时候需要修改容器里面的内容,比如我们想改点BUG。
    我们可以直接在容器里面修改,验证通过后,基于现有的容器创建一个新的镜像。

    docker commit

    docker commit 命令是从容器创建一个新的镜像, 基本语法

    docker commit [OPTIONS] 容器名称或id 镜像名称:tag

    PTIONS参数说明:
    -a :提交的镜像作者;
    -c :使用Dockerfile指令来创建镜像;
    -m :提交时的说明文字;
    -p :在commit时,将容器暂停。

    修改容器内容

    先通过基础镜像,启动一个容器后

    [root@VM_0_2_centos ~]# docker images
    django_yoyo         latest              984e5b0a9896        7 weeks ago         1.2GB
    [root@VM_0_2_centos ~]# docker run -d -p 8004:8000 --name web_yoyo1  django_yoyo
    874813d5c13fa002f6c5886a6b4c2cbc7d96639a3c8ef4de9154d4352b61b70b
    
    

    docker exec 进入到容器

    docker exec -it web_yoyo1 /bin/bash

    可以查看容器内部的文件

    root@874813d5c13f:/code# ls
    1 	    Dockerfile	       LICENSE	  __pycache__	  djoflower.out 2  images  manage.py  requirements.txt	suite	   uwsgi.ini
    ApiManager  HttpRunnerManager  README.md  celerybeat.pid  hrun_case.zip    logs    reports    static		templates
    root@874813d5c13f:/code# 
    

    我想通过vi 去编辑文件

    root@874813d5c13f:/code# vi requirements.txt 
    bash: vi: command not found
    

    发现没有vi 命令 ,出现bash: vi: command not found

    使用apt-get工具下载vim命令行工具

    apt-get update
    apt-get -y install vim
    

    等下载完成后,就有vi命令编辑了

    最后exit退出容器,回到宿主机上

    容器创建新镜像

    前面在容器里面做了一些修改,安装了vim 命令行工具,接着我们基于前面的容器构建一个新的镜像

    使用docker commit 创建新的镜像,先查看容器id

    [root@VM_0_2_centos ~]# docker ps
    CONTAINER ID  IMAGE        COMMAND       CREATED         STATUS        PORTS                   NAMES                                                                                 
    874813d5c13f  django_yoyo  "python..."   38 minutes ago  Up 38 minutes 0.0.0.0:8004->8000/tcp  web_yoyo1                                                                  
    

    通过容器的 CONTAINER ID 值874813d5c13f 或者NAMES名称 web_yoyo1来创建新镜像

    [root@VM_0_2_centos ~]# docker commit web_yoyo1  new_web:v1.0
    sha256:ee5f78f470f9c715b0df77eead2dececad6d998b615138f69acfc28f8e95cd03
    

    也可以带上-a和-m参数添加镜像提交信息

    [root@VM_0_2_centos ~]# docker commit -a "author_yoyo" -m "add vim" web_yoyo1  new_web:v1.1 
    sha256:078d76416146e0901a948cb8ca9ec3c79425360767caa03602c6810d54e4f25b
    

    最后docker images 查看刚才构建的本地镜像

    [root@VM_0_2_centos ~]# docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED              SIZE
    new_web             v1.0                ee5f78f470f9        About a minute ago   1.24GB
    new_web             v1.1                078d76416146        22 minutes ago       1.24GB
    django_yoyo         latest              984e5b0a9896        7 weeks ago          1.2GB
    

    这样我们的新镜像就构建成功了

  • 相关阅读:
    bootstrap 辅助类
    bootstrap 表单类
    bootstrap 图片类 和 按钮类 部分
    angularJs学习笔记-入门
    react-conponent-todo
    react-conponent-secondesElapsed
    react-conponent-hellocynthia
    react学习笔记1
    1970年// iPhone “变砖”后可继续正常使用的解决方案
    23种设计模式
  • 原文地址:https://www.cnblogs.com/yoyoketang/p/14084339.html
Copyright © 2020-2023  润新知