Docker学习之路 用commit命令创建镜像
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命令创建镜像相关推荐
- Docker学习,从hello-word到Dockerfile创建镜像
一.Docker的最小镜像hello-world 1.docker pull 下载hello-world镜像 docker pull hello-world 2.docker images ...
- Docker学习之路04:创建定制Nginx镜像
Docker学习之路04:创建定制Nginx镜像 Docker学习路线传送门: Docker学习之路01:Docker的安装 Docker学习之路02:阿里云镜像加速器 Docker学习之路03:Do ...
- Docker学习之路02:阿里云镜像加速器
阿里云镜像加速器 Docker学习路线传送门: Docker学习之路01:Docker的安装 Docker学习之路02:阿里云镜像加速器 Docker学习之路03:Docker的常用命令 Docker ...
- Docker学习之路05:五分钟用docker compose搭建一个自己的个人博客网站!
五分钟用docker compose搭建一个自己的个人博客网站! Docker学习路线传送门: Docker学习之路01:Docker的安装 Docker学习之路02:阿里云镜像加速器 Docker学 ...
- docker学习笔记(五)如何创建自己的阿里云镜像仓库(这是2021版的阿里云教程)
参考:汤小洋老师的教学视频 docker学习笔记(一)[docker 介绍.卸载.安装.配置加速] docker学习笔记(二)docker常用命令 docker学习笔记(三)镜像 docker学习笔记 ...
- docker学习笔记(四)——Dockerfile创建自定义镜像
用Dockerfile创建docker,注意下,建议在空文件夹下创建 本篇我们将完成: 1.用Dockerfile创建docker 2.端口映射 3.卷挂载,即docker目录挂载到宿主机 1.用Do ...
- Docker学习笔记-概念和常见命令
Docker架构 Docker包括三个基本概念: 镜像(image):docker镜像就相当于一个root文件系统.比如:官方镜像ubuntu16.04就包含了完整的一套ubuntu16.04最小系统 ...
- SDL2的学习之路<一> 创建基本窗口
SDL2的学习之路 工作之余的爱好<闲的~>,自己玩了下几个游戏开发的引擎<白鹭(h5的其余都c++的),easy2d(简单易上手),sdl2,sfml等,后续打算都写写怎么用的,看 ...
- Docker学习之路(三)Docker网络详解
1. Docker的4种网络模式 我们在使用docker run创建Docker容器时,可以用--net选项指定容器的网络模式,Docker有以下4种网络模式: host模式,使用--net=host ...
最新文章
- 1、输入四个整数,按照从小到大顺序输出。(20分)
- NodeJS+Express+mySQL服务端开发详解
- python批量ping脚本_Python多线程批量Ping主机IP的脚本
- python3.5安装scrapy_在Python3.5下安装和测试Scrapy爬网站
- 开始工业物联网项目需要考虑的八大要点
- Python爬虫系列:判断目标网页编码的几种方法
- 引入SpringBoot Jpa依赖后,项目出现警告
- 11.python并发入门(part3 多线程与互斥锁)
- python百分号转义_python 转义字符、运算符、列表。。。。
- 大话西游之Office应用实例系列! 19
- 推荐一份Web 工程师的前端书单
- 深度学习之车牌识别(中国、越南)
- 【课堂笔记精选】为了能够用“Unity”软件做游戏,我要从最基础的开始复习JavaScript...
- Dell服务器网卡驱动升级[CentOS 5.5 X86_64和RHEL 5.6 X86_64]
- will be doing的用法
- 第2章 C语言的数值数据与非数值数据 (二)
- Pytorch快速搭建Alexnet实现手写英文字母识别+PyQt实现鼠标绘图
- caffe中常用的层:全连接层Full Connection层
- 戴尔inspiron14 5000系列拆机图解教程
- 【ENVI】遥感影像的导入与裁剪
热门文章
- 安装Axis2的eclipse插件后,未出现界面
- java 读utf-8 xml_用Java和UTF-8編碼生成有效的XML。
- php mysql特殊符号过滤微信小程序_微信小程序数据过滤(filter)方法
- psw和fr微型计算机,微型计算机技术及应用习题答案
- 华农软件工程实验报告_华南农业大学15年软件工程复习提纲
- 如何去除C#Strings中的空格?
- 关于iview、element-ui重置表单并清除校验的方法
- python3使用cx_Oracle中文乱码
- Mysql 远程登录及常用命令
- 从零开始成为一名开源程序员,其实只需要九步!