012、构建镜像(2018-12-29 周六)

参考https://www.cnblogs.com/CloudMan6/p/6821332.html

在使用Docker的时候,几乎所有的操作系统和应用程序都有现成的镜像,比如centos、debian、ubuntu、nginx、jenkins。直接docker pull 即可。

Docker Hub上的官方镜像已经帮我们做好了应用程序的配置和优化工作,一般情况下直接使用即可。

如果Docker Hub上找不到我们需要的镜像,比如自己开发的程序,那就需要自己构建镜像了。

构建镜像的方法有两种:1、docker commit 命令构建;2、Dockerfile文件构建

docker commit

这种方法构建镜像比较简单直观

1、运行容器

2、修改容器

3、将容器保存为镜像

下面是一个基于centos base镜像构建vim镜像的过程

[email protected]:~# docker run -it centos

Unable to find image ‘centos:latest‘ locally

latest: Pulling from library/centos

a02a4930cb5d: Pull complete

Digest: sha256:38777a4106f0072649128ea4236241345a3ed21c55abbbd53bad5342549f6126

Status: Downloaded newer image for centos:latest

[[email protected] /]# wget

bash: wget: command not found

[[email protected] /]# yum install -y wget

Loaded plugins: fastestmirror, ovl

Loading mirror speeds from cached hostfile

* base: mirrors.neusoft.edu.cn

* extras: mirrors.huaweicloud.com

* updates: mirrors.huaweicloud.com

Resolving Dependencies

--> Running transaction check

---> Package wget.x86_64 0:1.14-18.el7 will be installed

--> Finished Dependency Resolution

Dependencies Resolved

=============================================================================================================================================================

Package                            Arch                                 Version                                    Repository                          Size

=============================================================================================================================================================

Installing:

wget                               x86_64                               1.14-18.el7                                base                               547 k

Transaction Summary

=============================================================================================================================================================

Install  1 Package

Total download size: 547 k

Installed size: 2.0 M

Downloading packages:

wget-1.14-18.el7.x86_64.rpm                                                                                                           | 547 kB  00:00:00

Running transaction check

Running transaction test

Transaction test succeeded

Running transaction

Installing : wget-1.14-18.el7.x86_64                                                                                                                   1/1

install-info: No such file or directory for /usr/share/info/wget.info.gz

Verifying  : wget-1.14-18.el7.x86_64                                                                                                                   1/1

Installed:

wget.x86_64 0:1.14-18.el7

Complete!

[[email protected] /]# wget

wget: missing URL

Usage: wget [OPTION]... [URL]...

Try `wget --help‘ for more options.

[email protected]:~# docker ps

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

02d010de5fe9        centos              "/bin/bash"         5 minutes ago       Up 5 minutes                            vibrant_bhabha

[email protected]:~# docker commit

"docker commit" requires at least 1 and at most 2 arguments.

See ‘docker commit --help‘.

Usage:  docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] [flags]

Create a new image from a container‘s changes

[email protected]:~# docker commit vibrant_bhabha centos-wget

sha256:7fe32c85b3a25ed750373af73dd808600c1e0112b96ddade85a01532cce0f2f3

[email protected]:~# docker images

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

centos-wget         latest              7fe32c85b3a2        13 seconds ago      328MB

centos              latest              1e1148e4cc2c        3 weeks ago         202MB

[email protected]:~# docker run -it centos-wget

[[email protected] /]# wget

wget: missing URL

Usage: wget [OPTION]... [URL]...

Try `wget --help‘ for more options.

[[email protected] /]#

docker commit 构建镜像,不是推荐的方法:1、手工操作,效率,容易出错;2、使用者不清楚构建的过程,无法进行审计,存在安全隐患

建议使用Dockerfile 构建镜像

原文地址:https://www.cnblogs.com/www1707/p/10197248.html

时间: 2024-10-10 00:16:21

012、构建镜像(2018-12-29 周六)的相关文章

2018.12.29|区块链技术头条

今日区块链技术头条 1.最新区块链技术头条|选对赛道,穿越凛冬:区块链的设计思想和演化逻辑 2.干货 | 权益证明生态系统 102:守币奴时代的终结 3.深入理解Plasma(二)Plasma 细节 4.使用区块链.AI 等新兴技术解决业务挑战 5.开发实战:如何使用Web3.js API 在页面中进行转账 6.区块链面临的安全威胁和挑战 7.史上最秀黑客:抢银行,让ATM狂吐10亿欧,全部换成比特币 8.冷酷的交易员和泡沫鉴别师,传授熊市交易秘笈 9.Power Ledger 项目评估:颠覆电

构建镜像 - 每天5分钟玩转容器技术(12)

对于 Docker 用户来说,最好的情况是不需要自己创建镜像.几乎所有常用的数据库.中间件.应用软件等都有现成的 Docker 官方镜像或其他人和组织创建的镜像,我们只需要稍作配置就可以直接使用. 使用现成镜像的好处除了省去自己做镜像的工作量外,更重要的是可以利用前人的经验.特别是使用那些官方镜像,因为 Docker 的工程师知道如何更好的在容器中运行软件. 当然,某些情况下我们也不得不自己构建镜像,比如: 找不到现成的镜像,比如自己开发的应用程序. 需要在镜像中加入特定的功能,比如官方镜像几乎

使用jprobe构建镜像协议栈的原理与感悟

突然回想起了往事,那是2007年的冬天的一个周五,我在看我的老湿调试Linux协议栈的IP层,只见他修改了路由查找的逻辑,然后直接make install了一下就即时生效了,当时我只知道的是,修改了这个逻辑需要重新编译内核,而他并没有重新编译,好像只是编译了一个文件...编译内核这个耗时又无聊的工作阻碍了我对Linux内核的探索进度,直到今天,我依然对编译内核有相当的恐惧,不怕出错,而是怕磁盘空间不够,initrd的组装拆解之类,太繁琐了.我之所以知道2007年的那天是周五,是因为第二天我要加班

第 3 章 镜像 - 013 - Dockerfile 构建镜像

第一个 Dockerfile 1 FROM ubuntu 2 RUN apt-get update && apt-get install -y vim 运行 docker build 命令构建镜像并详细分析每个细节 1 [email protected]:~# pwd 2 /root 3 [email protected]:~# 4 [email protected]:~# cat Dockerfile 5 FROM ubuntu 6 RUN apt-get update &&am

Docker学习笔记(3)-- 如何使用Dockerfile构建镜像

Dockfile是一种被Docker程序解释的脚本,Dockerfile由一条一条的指令组成,每条指令对应Linux下面的一条命令.Docker程序将这些Dockerfile指令翻译真正的Linux命令.Dockerfile有自己书写格式和支持的命令,Docker程序解决这些命令间的依赖关系,类似于Makefile.Docker程序将读取Dockerfile,根据指令生成定制的image.相比image这种黑盒子,Dockerfile这种显而易见的脚本更容易被使用者接受,它明确的表明image是

使用 Dockerfile 构建镜像

Dockfile是一种被Docker程序解释的脚本,Dockerfile由一条一条的指令组成,每条指令对应Linux下面的一条命令.Docker程序将这些Dockerfile指令翻译真正的Linux命令.Dockerfile有自己书写格式和支持的命令,Docker程序解决这些命令间的依赖关系,类似于Makefile.Docker程序将读取Dockerfile,根据指令生成定制的image.相比image这种黑盒子,Dockerfile这种显而易见的脚本更容易被使用者接受,它明确的表明image是

使用Dockerfile构建镜像并push到私有仓库

环境:OS X 10.10.5 maven 3.3.9 Docker version 1.12.2 docker-machine version 0.8.2 程序示例为http://www.cnblogs.com/modprobe/p/6001333.html 中提到的服务发现程序 相关代码:https://github.com/li-hong/spring-cloud-demo 一.准备工作,安装docker-toolbox 方法:http://www.docker.com/products/

如何使用Dockerfile构建镜像

Dockfile是一种被Docker程序解释的脚本,Dockerfile由一条一条的指令组成,每条指令对应Linux下面的一条命令.Docker程序将这些Dockerfile指令翻译真正的Linux命令.Dockerfile有自己书写格式和支持的命令,Docker程序解决这些命令间的依赖关系,类似于Makefile.Docker程序将读取Dockerfile,根据指令生成定制的image.相比image这种黑盒子,Dockerfile这种显而易见的脚本更容易被使用者接受,它明确的表明image是

2015.12.29~2015.12.30真题回顾!-- HTML5学堂

2015.12.29~2015.12.30真题回顾!-- HTML5学堂 吃饭,能够解决饥饿,提供身体运作机能.练习就像吃饭,强壮自己,提升编程技能,寻求编程技巧的最佳捷径!吃饭不能停,练习同样不能停哦! HTML5真题[2015.12.29]题目 学习JavaScript或应用JavaScript进行脚本开发,“变量”这是必须要学会使用的.什么是变量呢?又什么作用呢?ok,大家稍安勿躁哦,试体验体验这题目<HTML5真题[2015.12.29]题目>与 <HTML5真题[2015.12