Docker学习之路 用commit命令创建镜像

docker

74k 次阅读 · 读完需要 7 分钟

假期快要结束了,干点正事,接着Docker的学习。
构建镜像

构建镜像的两种方法:

使用docker commit 命令
使用docker build命令和Dockerfile文件

Dockerfile更抢到、灵活,推荐使用。

一般来说不是真的“创建”新镜像,而是基于一个已有的基础镜像,比如Ubuntu、Fedora等,构建新的镜像而已。从零构建一个全新的镜像可参考这篇文章
用commit创建镜像
创建Docker账号

共享和发布镜像时构建镜像中重要的环节,可以将镜像推送到Docker Hub或资金的私有Registry中。首先到https://hub.docker.com/account/signup/ 创建账号。

clipboard.png

邮件激活后,可以测试登录:

$ sudo docker login

clipboard.png

这条命令会完成登录,并将认证信息报错起来供后面使用。个人认证信息将报错到$HOME/ .dockercfg文件中.
用 commit 命令创建镜像

可以想象是往版本控制系统里提交变更:首先创建一个容器,并在容器里做修改,就行修改代码一样,最后在讲修改提交为一个新镜像。

创建一个新容器命令:

$ sudo docker run -i -t ubuntu /bin/bash

我用之前创建好的aoct容器:

$ sudo docker start aoct
$ sudo docker attach aoct

clipboard.png

安装Apache:

root@614122c0aabb:/# apt-get -yqq update

root@614122c0aabb:/# apt-get -y install apache2

clipboard.png

想把这个容器作为一个Web服务器来运行,所以要把它当前状态保存下来,就不必每次都创建一个新容器并再次安装Apache。

所以先用exit命令退出容器,再运行docker commit命令:

$ sudo docker commit 614122c0aabb aoct/apache2

clipboard.png

命令中,指定了要提交的修改过的容器的ID、目标镜像仓库、镜像名。commit提交的知识创建容器的镜像与容器的当前状态之间的差异部分,很轻量。
查看新创建的镜像:

$ sudo docker images aoct/apache2

clipboard.png

也可以像git一样,在提交镜像时指定更多信息来描述所做的修改:

$ sudo docker commit -m=‘A new image’ --author=‘Aomine’ 614122c0aabb aoct/apache2

clipboard.png

上面代码,用-m指定行创建的镜像的提交信息。–author指定镜像作者,接着是容器ID、目标镜像仓库、镜像名。
使用docker inspect命令查看新创建的镜像的详细信息:

$ sudo docker inspect aoct/apache2

clipboard.png

使用docker run命令从刚创建的新镜像运行一个容器:

$ sudo docker run -t -i aoct/apache2 /bin/bash

clipboard.png

【本人的学习笔记,主要是对《我的第一本Docker书》、《Docker —— 从入门到实践》的学习记录,引用了很多书上的话和例子,并结合其他各种资源的学习。我使用的是windows 7, docker 1.3.2。】

Docker学习之路 用commit命令创建镜像相关推荐

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

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

  2. Docker学习之路04:创建定制Nginx镜像

    Docker学习之路04:创建定制Nginx镜像 Docker学习路线传送门: Docker学习之路01:Docker的安装 Docker学习之路02:阿里云镜像加速器 Docker学习之路03:Do ...

  3. Docker学习之路02:阿里云镜像加速器

    阿里云镜像加速器 Docker学习路线传送门: Docker学习之路01:Docker的安装 Docker学习之路02:阿里云镜像加速器 Docker学习之路03:Docker的常用命令 Docker ...

  4. Docker学习之路05:五分钟用docker compose搭建一个自己的个人博客网站!

    五分钟用docker compose搭建一个自己的个人博客网站! Docker学习路线传送门: Docker学习之路01:Docker的安装 Docker学习之路02:阿里云镜像加速器 Docker学 ...

  5. docker学习笔记(五)如何创建自己的阿里云镜像仓库(这是2021版的阿里云教程)

    参考:汤小洋老师的教学视频 docker学习笔记(一)[docker 介绍.卸载.安装.配置加速] docker学习笔记(二)docker常用命令 docker学习笔记(三)镜像 docker学习笔记 ...

  6. docker学习笔记(四)——Dockerfile创建自定义镜像

    用Dockerfile创建docker,注意下,建议在空文件夹下创建 本篇我们将完成: 1.用Dockerfile创建docker 2.端口映射 3.卷挂载,即docker目录挂载到宿主机 1.用Do ...

  7. Docker学习笔记-概念和常见命令

    Docker架构 Docker包括三个基本概念: 镜像(image):docker镜像就相当于一个root文件系统.比如:官方镜像ubuntu16.04就包含了完整的一套ubuntu16.04最小系统 ...

  8. SDL2的学习之路<一> 创建基本窗口

    SDL2的学习之路 工作之余的爱好<闲的~>,自己玩了下几个游戏开发的引擎<白鹭(h5的其余都c++的),easy2d(简单易上手),sdl2,sfml等,后续打算都写写怎么用的,看 ...

  9. Docker学习之路(三)Docker网络详解

    1. Docker的4种网络模式 我们在使用docker run创建Docker容器时,可以用--net选项指定容器的网络模式,Docker有以下4种网络模式: host模式,使用--net=host ...

最新文章

  1. 1、输入四个整数,按照从小到大顺序输出。(20分)
  2. NodeJS+Express+mySQL服务端开发详解
  3. python批量ping脚本_Python多线程批量Ping主机IP的脚本
  4. python3.5安装scrapy_在Python3.5下安装和测试Scrapy爬网站
  5. 开始工业物联网项目需要考虑的八大要点
  6. Python爬虫系列:判断目标网页编码的几种方法
  7. 引入SpringBoot Jpa依赖后,项目出现警告
  8. 11.python并发入门(part3 多线程与互斥锁)
  9. python百分号转义_python 转义字符、运算符、列表。。。。
  10. 大话西游之Office应用实例系列! 19
  11. 推荐一份Web 工程师的前端书单
  12. 深度学习之车牌识别(中国、越南)
  13. 【课堂笔记精选】为了能够用“Unity”软件做游戏,我要从最基础的开始复习JavaScript...
  14. Dell服务器网卡驱动升级[CentOS 5.5 X86_64和RHEL 5.6 X86_64]
  15. will be doing的用法
  16. 第2章 C语言的数值数据与非数值数据 (二)
  17. Pytorch快速搭建Alexnet实现手写英文字母识别+PyQt实现鼠标绘图
  18. caffe中常用的层:全连接层Full Connection层
  19. 戴尔inspiron14 5000系列拆机图解教程
  20. 【ENVI】遥感影像的导入与裁剪

热门文章

  1. 安装Axis2的eclipse插件后,未出现界面
  2. java 读utf-8 xml_用Java和UTF-8編碼生成有效的XML。
  3. php mysql特殊符号过滤微信小程序_微信小程序数据过滤(filter)方法
  4. psw和fr微型计算机,微型计算机技术及应用习题答案
  5. 华农软件工程实验报告_华南农业大学15年软件工程复习提纲
  6. 如何去除C#Strings中的空格?
  7. 关于iview、element-ui重置表单并清除校验的方法
  8. python3使用cx_Oracle中文乱码
  9. Mysql 远程登录及常用命令
  10. 从零开始成为一名开源程序员,其实只需要九步!