一、docker镜像的更新

(1)启动镜像,写入一些文件或者更新软件

docker run -it 3afd47092a0e
[root@44652ba46352 /]# ls

(2)更新镜像

docker commit -m="test update" -a="wangsir" 44652ba46352 wangsir/centos-test:7.4.1708
sha256:7853e6064af8b218bbfb44cc2421dffbba0eeace561392eaea995d4cf8b0f301

参数解释:

-m:提交的描述信息

-a:指定镜像作者

44652ba46352:容器ID

wangsir/centos-test:7.4.1708:指定要创建的目标镜像名

(3)查看更新是否成功

docker images

二、修改镜像标签tag

docker tag 7853e6064af8 wangsir/centos-test:7.4.1708

三、自定义制作docker镜像

1、docker build从镜像源制作镜像

(1)选择目录创建一个Dockerfile,编辑镜像配置文件

vi Dockerfile

FROM centos:6.7
MAINTAINER Fisher "wangsir@sudops.com"

RUN /bin/echo 'root:rootpswd' |chpasswd
RUN useradd runoob
RUN /bin/echo 'wangsir:123456' |chpasswd
RUN /bin/echo -e "LANG=\"en_US.UTF-8\"" >/etc/default/local
EXPOSE 22
EXPOSE 80
CMD /usr/sbin/sshd -D
参数解释:

FROM--基于哪个镜像

RUN--安装软件用

MAINTAINER--镜像创建者
CMD--container启动时执行的命令,但是一个Dockerfile中只能有一条CMD命令,多条则只执行最后一条CMD

[注意]:当docker run command的命令匹配到CMD command时,会替换CMD执行的命令

ENTRYPOINT--container启动时执行的命令,但是一个Dockerfile中只能有一条ENTRYPOINT命令,如果多条,则只执行最后一条,ENTRYPOINT没有CMD的可替换特性

USER--使用哪个用户跑container

EXPOSE--container内部服务开启的端口。主机上要用还得在启动container时,做host-container的端口映射:

docker run -d -p 127.0.0.1:33301:22 centos-img
container ssh服务的22端口被映射到主机的33301端口
ENV--用来设置环境变量

ADD--将和Dockerfile同目录的文件拷贝到container的文件系统对应的路径<dest>,所有拷贝到container中的文件和文件夹权

限为0755,uid和gid为0,ADD只有在build镜像的时候运行一次,后面运行container的时候不会再重新加载了

VOLUME--可以将本地文件夹或者其他container的文件夹挂载到container中。

WORKDIR--切换目录用,可以多次切换(相当于cd命令),对RUN,CMD,ENTRYPOINT生效
ONBUILD--ONBUILD指定的命令在构建镜像时并不执行,而是在它的子镜像中执行

(2)构建镜像docker build -t [生成的镜像名] [Dockerfile的相对路径/绝对路径]

docker build -t wangsir/centos:6.7 .

#运行错误

[1]docker run -it 9df5b75bdd28

/bin/sh: /usr/sbin/sshd: No such file or directory

2、febootstrap根据源码制作镜像[febootstrap在centos7已更改为supermin,yum源无法安装,需要先下载rpm包通过rpm安装]

(1)下载rpm安装febootstrap

rpm -ivh *.rpm

(2)获取要制作镜像的源文件

febootstrap -i [要安装的软件] [生成镜像名] [镜像源文件存储位置] [获取镜像源文件的远程地址/本地路径]

febootstrap -i bash -i wget -i yum -i iputils -i iproute -i man -i vim -i openssh-server -i openssh-clients -i tar -i gzip centos6 /usr/local/MyDockerImage/centos6-image  http://mirrors.aliyun.com/centos/6/os/x86_64/

可以看到生成的文件夹centos6-image

(3)打包成tar包生成镜像[类似于import导入tar包镜像]

tar -c . | docker import - centos6-img:6.5

docker images即可查看到镜像centos6-img:6.5

#错误

[1]febootstrap执行后显示:
/bin/bash: /usr/local/MyDockerImage/centos6-image/lib64/libc.so.6: version `GLIBC_2.14' not found (required by /bin/bash)
/bin/bash: /usr/local/MyDockerImage/centos6-image/lib64/libc.so.6: version `GLIBC_2.15' not found (required by /bin/bash)
rm: /usr/local/MyDockerImage/centos6-image/lib64/libc.so.6: version 'GLIBC_2.14' not found (required by rm)

Docker镜像的修改和自定义的更多相关文章

  1. Docker 创建镜像、修改、上传镜像

    Docker 创建镜像.修改.上传镜像 –创建镜像有很多方法,用户可以从 Docker Hub 获取已有镜像并更新,也可以利用本地文件系统创建一个. 一.创建镜像 创建镜像有很多方法,用户可以从 Do ...

  2. Dockerfile创建自定义Docker镜像以及CMD与ENTRYPOINT指令的比较

    1.概述 创建Docker镜像的方式有三种 docker commit命令:由容器生成镜像: Dockerfile文件+docker build命令: 从本地文件系统导入:OpenVZ的模板. 关于这 ...

  3. 创建Python数据分析的Docker镜像+Docker自定义镜像commit,Dockerfile方式解析+pull,push,rmi操作

    实例解析Docker如何通过commit,Dockerfile两种方式自定义Dcoker镜像,对自定义镜像的pull,push,rmi等常用操作,通过实例创建一个Python数据分析开发环境的Dock ...

  4. 利用Docker volume修改Nginx Docker镜像里index.html

    通过这个小例子我们可以进一步加深对Docker volume概念的理解和使用方法. 我们都知道运行基于Docker的Nginx镜像后,访问localhost能看到Nginx默认的首页,这个首页的位置是 ...

  5. 简单docker镜像修改方式

    • 创建Dockerfile,文件内容如下: FROM nps:v1.0.1 ENTRYPOINT ["/usr/bin/init.sh"] • 启动基础镜像:docker run ...

  6. 构建自定义docker镜像,上传至docker hub

    docker 优势 (外部参考) Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后 发布到任何流行的Linux机器上,便可以实现虚拟化.Docker改变了虚拟化的方 式,使 ...

  7. 修改docker镜像和容器的存放路径

    默认情况下,镜像和容器存放的路径是/var/lib/docker. 要修改这个设置很简单,把指定的目录软链到这个目录,或者将一个单独的分区挂载到这个目录,或者直接修改docker启动参数. 查看使用帮 ...

  8. Docker系列06:Linux修改docker镜像和容器数据存储位置

    指定镜像和容器存放路径的参数是--graph=/var/lib/docker,其默认存储位置为/var/lib/docker, Docker 的配置文件可以设置大部分的后台进程参数,在各个操作系统中的 ...

  9. Linux下正确修改Docker镜像和容器的默认存储位置,亲测有效

    我们通过 yum 的方式安装完Docker环境后,它默认的存储位置是 /var/lib/docker,默认的 pid 存放位置是 /var/run/docker.pid. 如果仅仅是做测试,我们可能没 ...

随机推荐

  1. 使用SQL Developer生成Oracle数据库的关系模型(ER图)

    客户要一张数据库的关系模型图,于是用SQL Developer来做. 一.SQL Developer版本 我在官网下载的最新版本(现在已经到了18.1,Oracle更新的太勤快): 2.如下图所示选择 ...

  2. 本博客停止更新改用wordperss

    http://www.azurew.com/ 还是能有自己的博客比较爽 哈哈哈

  3. 为什么会出现Notice: Undefined index: submit in D:\xampp\htdocs\test.php on line 19

    事例如下": <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:/ ...

  4. JavaScript -- 时光流逝(三):js中的 String 对象的方法

    JavaScript -- 知识点回顾篇(三):js中的 String 对象的方法 (1) anchor(): 创建 HTML 锚. <script type="text/javasc ...

  5. 手动搭建Docker本地私有镜像仓库

    实验环境:两个Centos7虚拟机,一个是Server,用作客户端,另一个是Registry,用作Docker私有镜像仓库. 基础配置 查看一下两台虚拟机的IP地址 Server的IP地址是192.1 ...

  6. 【算法】LeetCode算法题-Length Of Last Word

    这是悦乐书的第155次更新,第157篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第14题(顺位题号是58).给定一个字符串,包含戴尔字母.小写字母和空格,返回最后一个单 ...

  7. Ant Design Pro的dva-loading

    loading为dva的插件,全局可用,它里面维护了一些布尔值,用于控制loading动画效果的显示与隐藏,通过@connect()来注入使用 官网介绍如下: https://dvajs.com/ 在 ...

  8. (转)Spring Boot (十):邮件服务

    http://www.ityouknow.com/springboot/2017/05/06/spring-boot-mail.html Spring Boot 仍然在狂速发展,才几个多月没有关注,现 ...

  9. MySQL高级知识系列目录

    MySQL高级知识(一)——基础 MySQL高级知识(二)——Join查询 MySQL高级知识(三)——索引 MySQL高级知识(四)——Explain MySQL高级知识(五)——索引分析 MySQ ...

  10. 【FJWC 2019】min

    [FJWC 2019]min 题目描述 给你一张 \(n\) 个点 \(m\) 条边的无向图,走过每条边都需要花费 \(1\) 秒. 给你一个整数 \(k\) ,请你选择至多 \(k\) 个点,令经过 ...