一、前期准备

  1、下载一个centos镜像,进入容器,安装wget

docker pull centos
docker run -it centos bash
[root@web1 ~]# docker run -it centos bash         #进入容器
[root@4f1f1ca319f2 /]#
[root@4f1f1ca319f2 /]#
[root@4f1f1ca319f2 /]# cd
[root@4f1f1ca319f2 ~]# ls
anaconda-ks.cfg
[root@4f1f1ca319f2 ~]# cd /etc/yum.repos.d/ #配置yum源
[root@4f1f1ca319f2 yum.repos.d]# ll
total
-rw-r--r-- root root Nov CentOS-Base.repo
-rw-r--r-- root root Nov CentOS-CR.repo
-rw-r--r-- root root Nov CentOS-Debuginfo.repo
-rw-r--r-- root root Nov CentOS-Media.repo
-rw-r--r-- root root Nov CentOS-Sources.repo
-rw-r--r-- root root Nov CentOS-Vault.repo
-rw-r--r-- root root Nov CentOS-fasttrack.repo
[root@4f1f1ca319f2 yum.repos.d]# yum install wget -y #安装wget,默认没有wget安装

  2、安装软件源

mkdir backup
mv c* /etc/yum.repo.d/bakcup
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget https://mirrors.aliyun.com/centos/7.6.1810/extras/x86_64/Packages/epel-release-7-11.noarch.rpm

  3、安装软件,比如nginx

yum install nginx -y

二、制作镜像

    说明,下面制作镜像先用之前的nginx镜像做的副本,下面才是centos镜像

  1、使用docker commit 来提交容器副本

    -m 提交时的描述文字

dock commit -m 容器 镜像名
docker commit -m 'add nginx images' mynginx zxg/my_nginx
docker commit -m 'add nginx images' mynginx zxg/my_nginx:v1
docker images
docker ps -a
[root@web1 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4f1f1ca319f2 centos "bash" About an hour ago Up About an hour musing_lichterman
[root@web1 ~]# docker commit --help Usage: docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] Create a new image from a container's changes Options:
-a, --author string Author (e.g., "John Hannibal Smith <hannibal@a-team.com>")
-c, --change list Apply Dockerfile instruction to the created image (default [])
--help Print usage
-m, --message string Commit message
-p, --pause Pause container during commit (default true)
###制作镜像
[root@web1 ~]# docker commit -m 'add nginx images' mynginx zxg/my_nginx
sha256:f07837869dfc057273c8fd4dad1ddd7f391abb7c75dd4ecf8f84e33e84bc6b0d
[root@web1 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
zxg/my_nginx latest f07837869dfc seconds ago MB
docker.io/nginx latest e445ab08b2be days ago MB
docker.io/alpine latest b7b28af77ffe weeks ago 5.58 MB
docker.io/centos latest 9f38484d220f months ago MB
###加版本号
[root@web1 ~]# docker commit -m 'add nginx images' mynginx zxg/my_nginx:v1
sha256:b164f4c07c6407420327a48dc0259c52f31cc3ae13ca0b292b8ac5cad1b0052b
[root@web1 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
zxg/my_nginx v1 b164f4c07c64 seconds ago MB
zxg/my_nginx latest f07837869dfc seconds ago MB
docker.io/nginx latest e445ab08b2be days ago MB
docker.io/alpine latest b7b28af77ffe weeks ago 5.58 MB
docker.io/centos latest 9f38484d220f months ago MB
[root@web1 ~]# docker run -d --name my_nginx zxg/my_nginx nginx
b326027dcf4275190f7766a65510d73a5f6b15e60875254e5f729f108f809a4e
[root@web1 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4f1f1ca319f2 centos "bash" About an hour ago Up About an hour musing_lichterman
###查看进程
[root@web1 ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b326027dcf42 zxg/my_nginx "nginx" seconds ago Exited () seconds ago my_nginx
4f1f1ca319f2 centos "bash" About an hour ago Up About an hour musing_lichterman
64b4e32991c7 nginx "nginx -g 'daemon ..." days ago Exited () days ago mynginx1
f8b2da5476ed nginx "nginx -g 'daemon ..." days ago Exited () days ago mynginx
6dbdfaf6da3a alpine "sh" days ago Created distracted_shannon
aee506fe7b5a alpine "sh" days ago Created infallible_haibt
70620c73b9a0 alpine "sh" days ago Created gallant_volhard
7655cbf87bb0 alpine "sh" days ago Created agitated_brahmagupta
33fb949372e8 fce289e99eb9 "/hello" days ago Created elastic_dijkstra
9de47616aea4 fce289e99eb9 "/hello" days ago Created confident_fermi

    centos镜像制作过程如下:

[root@web1 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2940076be5f7 centos "bash" About an hour ago Up About an hour suspicious_khorana
[root@web1 ~]# docker commit -m 'add centos-nginx' 2940076be5f7 zxg/centos_nginx:v1
sha256:7c6604cacec13e7caf5b4f99c514009c43df88cf59c69b2ff5a608dfc8216eae
[root@web1 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
zxg/centos_nginx v1 7c6604cacec1 seconds ago MB
docker.io/atlassian/jira-software latest c4b90dede4f3 days ago MB
zxg/my_nginx v1 b164f4c07c64 weeks ago MB
zxg/my_nginx latest f07837869dfc weeks ago MB
docker.io/nginx latest e445ab08b2be weeks ago MB
docker.io/alpine latest b7b28af77ffe weeks ago 5.58 MB
docker.io/centos latest 9f38484d220f months ago MB
[root@web1 ~]#
[root@web1 ~]# docker run -it  --name centos-nginx zxg/centos_nginx:v1  /bin/bash
[root@e93232ab8601 /]#
[root@e93232ab8601 /]# rpm -qa nginx
nginx-1.12.-.el7.x86_64
[root@e93232ab8601 /]#

    另外开一个窗口

[root@web1 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e93232ab8601 zxg/centos_nginx:v1 "/bin/bash" seconds ago Up seconds centos-nginx

  2、制作好的镜像可以上传官网(需要注册账号)

docker login https:hub.docker.com
docker tag b326027dcf42 docker.io/myname/mynginx      #打标签
docker push docker.io/myname/mynginx

转载请注明出处:https://www.cnblogs.com/zhangxingeng/p/11326365.html 

 

Docker2 docker commit方法镜像制作的更多相关文章

  1. Docker系列-(2) 镜像制作与发布

    上篇文章引入了Docker的基本原理和操作,本节文章主要介绍如何制作Docker镜像和发布. 镜像文件结构 Docker镜像的本质是一系列文件的集合,这些文件依次叠加,形成了最后的镜像文件,类似于下图 ...

  2. Docker Java程序镜像制作

    Docker Java程序镜像制作 制作前的准备 jre:不需要完整的jdk,jre即可,到Oracle进行下载即可,下载链接,根据自己的情况进行选择,这里选择jre-8u221-linux-x64. ...

  3. 利用docker进行基础镜像制作

    前言 最近想通过Javaee来开发博客,但是不想因为环境配置问题总是耗时间配置相关配置,所以萌生出用docker镜像来搭建web的系统环境,也是作为docker学习实践的笔记. docker hub注 ...

  4. Docker(十一)-Docker commit创建镜像

    创建镜像有很多方法,用户可以从 Docker Hub 获取已有镜像并更新,也可以利用本地文件系统创建一个. 修改已有的镜像 查看已有的镜像: $ sudo docker images REPOSITO ...

  5. Docker笔记——jdk镜像制作

    openjdk镜像依赖如下: openjdk:8-jdk -> buildpack-deps:jessie-scm -> buildpack-deps:jessie-curl -> ...

  6. Docker笔记——jenkins镜像制作

    jenkins官方路径:https://hub.docker.com/_/jenkins/ 最新Dockerfile路径:https://github.com/jenkinsci/docker/blo ...

  7. Docker学习以及镜像制作流程

    一.何为Docker Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后 ...

  8. docker镜像的创建方法docker commit方式

    Docker 提供了两种构建镜像的方法: docker commit 命令(交互式修改创建) Dockerfile 构建文件 (文本命令定义) Docker commit方法: 1.运行一个现有容器 ...

  9. docker镜像制作及发布

    以centos为例. 主要内容:安装docker,制作镜像,发布镜像. 安装docker 1. 安装docker yum install -y docker 等待一会,安装成功,查看安装列表 2. 启 ...

随机推荐

  1. Noip2019暑期训练2 反思

    经过两次测试,通过深刻的反思,我主要发现了以下易犯错误: 1.做题目时过于追求速度,导致好几处代码都出现手误打错的现象!而且,千万不要图快.图方便就复制粘贴,非常容易出错!(例如T3-party中直接 ...

  2. 深度讨论i++问题

    例题1:下列程序的输出结果是多少? public class Test { static { int x = 5; } static int x, y; public static void main ...

  3. MongoDB 关系型数据库表(集合)与表(集合)之间的几种关系

    简述关系数据库中表与表的 3 种关系 一对一的关系:例如:一个人对应一个唯一的身份证号,即为一对一的关系. 一对多关系 :例如:一个班级对应多名学生,一个学生只能属于一个班级,即为一对多关系 多对多关 ...

  4. jmeter(四十四)常用性能指标分析

    概述 我们在用jmeter做性能测试的时候,有一些关键性的性能指标需要去分析.但是由于开源工具本身的局限性,这些指标在工具中的命名极易对我们造成混淆.所以我们需要对这些指标一一进行剖析. 指标分析 响 ...

  5. EduSoho之插件开发(脚手架搭建)

    本文主要参考官方文档,地址为:http://developer.edusoho.com/plugin/start.html 插件开发的目的,一方面为了更好的扩展,另外一方面为了更好的维护. 关于这方面 ...

  6. torch

    1.从数据直接构建tensor x = torch.tensor([5.5,3]) 2.从已有的tensor构建一个tensor.这些方法会重用原来tensor的特征. x = x.new_ones( ...

  7. Spark2.x(五十九):yarn-cluster模式提交Spark任务,如何关闭client进程?

    问题: 最近现场反馈采用yarn-cluster方式提交spark application后,在提交节点机上依然会存在一个yarn的client进程不关闭,又由于spark application都是 ...

  8. service和Dao层有什么关系

    Dao层:主要是做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此,DAO层的设计首先是设计DAO的接口,然后就可在模块中调用此接口来进行数据业务的处理,而不用关心此接口的具体实现类是哪个类 ...

  9. Ubuntu18.04 Server安装Nginx+Git服务和独立的svn服务

    安装Nginx+Git 需要安装的包有 nginx, fcgiwrap, git. 其中git在Ubuntu18.04 Server安装时已经默认安装了. 需要安装的是前两个 而fcgiwrap是在 ...

  10. ERROR: source database "template1" is being accessed by other users

    一开始,开发童鞋说他在测试环境没有创建数据库的权限.心想,不对呀,开发环境没有怎么做权限管控,明明给予授权了.上来一看: postgres=# CREATE DATABASE "abce&q ...