设为首页 收藏本站
查看: 926|回复: 0

[经验分享] Docker镜像与仓库

[复制链接]

尚未签到

发表于 2018-5-27 06:51:42 | 显示全部楼层 |阅读模式
   查看和删除镜像:
  Docker镜像的存储位置:/var/lib/docker
  [root@docker0 ~]# docker info
  Containers: 0
   Running: 0
   Paused: 0
   Stopped: 0
  Images: 3
  Server Version: 1.12.6
  Storage Driver: devicemapper
   PoolName: docker-8:2-33777500-pool
   PoolBlocksize: 65.54 kB
   BaseDevice Size: 10.74 GB
   Backing Filesystem: xfs
   Datafile: /dev/loop0
   Metadata file: /dev/loop1
   DataSpace Used: 302.6 MB
   DataSpace Total: 107.4 GB
   DataSpace Available: 18.24 GB
   Metadata Space Used: 901.1 kB
   Metadata Space Total: 2.147 GB
   Metadata Space Available: 2.147 GB
   ThinPool Minimum Free Space: 10.74 GB
   UdevSync Supported: true
   Deferred Removal Enabled: true
   Deferred Deletion Enabled: true
   Deferred Deleted Device Count: 0
   Dataloop file: /var/lib/docker/devicemapper/devicemapper/data
   WARNING: Usage of loopback devices is stronglydiscouraged for production use. Use `--storage-opt dm.thinpooldev` to specify acustom block storage device.
   Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata
   Library Version: 1.02.140-RHEL7 (2017-05-03)
  Logging Driver: journald
  Cgroup Driver: systemd
  Plugins:
   Volume: local
   Network: null bridge overlay host
  Swarm: inactive
  Runtimes: docker-runc runc
  Default Runtime: docker-runc
  Security Options: seccomp selinux
  Kernel Version: 3.10.0-693.5.2.el7.x86_64
  Operating System: CentOS Linux 7 (Core)
  OSType: linux
  Architecture: x86_64
  Number of Docker Hooks: 3
  CPUs: 1
  Total Memory: 976.3 MiB
  Name: docker0
  ID: PFGR:DFK7:WIOG:MSWF:632I:BPDO:NUNA:WDGS:AQJ3:6PEU:2BCE:UOMI
  Docker Root Dir: /var/lib/docker
  Debug Mode (client): false
  Debug Mode (server): false
  Registry: https://index.docker.io/v1/
  WARNING: bridge-nf-call-iptables isdisabled
  WARNING: bridge-nf-call-ip6tables isdisabled
  Insecure Registries:
   127.0.0.0/8
  Registries: docker.io (secure)
  [root@docker0 ~]#
  列出镜像:
  dockerimages 选项 仓库
  -a:--all,列出所有镜像
  -f:--filter,显示时的过滤条件
  --no-trunc:指定不使用截断的数据进行显示
  -q:--quiet,只显示镜像的唯一ID
  查看镜像的详细信息:
  dockerinspect 选项 container或images 容器或镜像
  -f:--format,格式
  删除镜像:
  dockerrmi 选项 image镜像
  -f:--force,强制删除镜像
  --no-prune:不删除未打标签的父镜像
   获取和推送镜像:
  通过DockerHub的官方网站进行查找。
  dockersearch 选项term
  --automated:只显示自动化构建的镜像
  --no-trunc:不以截断的方式显示输出
  -s:--stars,限定显示结果的最低星级
  最多返回25个结果。
  拉取镜像:
  dockerpull 选项 name或name:标记
  -a:--all-tags,下载所哟匹配标记的镜像
  --registry-mirror:修改/etc/default/docker,添加DOCKER_OPTS=” --registry-mirror=镜像地址”
  注册DaoCloud获取仓库加速器:
DSC0000.png

  [root@docker0 ~]# curl -sSLhttps://get.daocloud.io/daotools/set_mirror.sh | sh -s http://a836cbf0.m.daocloud.io
  在自动修改的docker的配置文件/etc/docker/daemon.json的时候,启动docker会格式出错,要手动更改为如下格式:
DSC0001.png

  CentOS或RHEL在/etc/sysconfig/docker文件中OPTIONS=添加--registry-mirror=http://a836cbf0.m.daocloud.io
   构建镜像:
  1.使用commit通过容器创建镜像:
  dockercommit 选项 container仓库或仓库:标记
  -a:--author=“”,作者信息
  -m:message=“”,提交信息
  -p:--pause,创建镜像的时候会将容器暂停
  创建一个容器:
DSC0002.png

  更新APT源:
DSC0003.png

  安装软件:
DSC0004.png

  退出容器:
DSC0005.png

  提交镜像:
DSC0006.png

  查看结果:
DSC0007.png

  2.使用Dockerfile构建镜像:
  创建Dockerfile文件:
DSC0008.png

  编写Dockerfile文件:
DSC0009.png

  编译Dockerfile文件:
DSC00010.png

  查看镜像:
DSC00011.png

   Dockerfile指令:
  Dockerfile中的注释使用#开头
  1.指定基础镜像:
  FROM 镜像
  FROM 镜像:标签
  镜像必须存在。
  2.指定镜像作者信息:
  MAINTAINER姓名
  通常包含作者姓名和联系方式。
  3.指定镜像中运行的命令:
  包好两种模式:
  RUN Shell命令
  使用/bin/sh -c shell形式执行指令。
  RUN [“Shell环境”,”param”,” param”]
  指定运行镜像容器的端口:
  EXPOSE端口…
  5.指定容器运行的默认模式:
  CMD[“param”,“param”]作为ENTRPOINT指令的默认参数
  CMD命令 param param
  CMD[“Shell环境”,“param”,“param”]
  ENTRYPOINT[“Shell环境”,“param”,“param”]
  ENTRYPOINT命令 paramparam
  ENTRYPOINT指令不会被docker run命令覆盖,如果要覆盖run命令需要使用docker run –entrypoint选项。
  6.将文件或者是目录复制到Dockerfile构建的镜像:
  ADDsrc dest
  ADD [“src”…“dest”]适用于文件路径存在空格的情况
  COPYsrc dest
  COPY[“src”…“dest”] 适用于文件路径存在空格的情况
  ADD指令包含tar的解压功能,如果只是单纯复制文件,最好使用COPY命令。
  7.添加卷:
  VOLUME[“/data”]
  这个卷可以绕过联合文件系统来提供数据持久化功能。
  8.设置工作目录:
  WORKDIR/tmp
  9.设置环境变量
  ENVkey value
  ENVkey=value
  10.指定运行身份
  USER 用户名
  11.为镜像添加触发器:
  ONBUILDDockerfile指令
  当镜像被使用的时候触发。
   Dockerfile构建过程:
  从基础镜像运行一个容器,执行一条Dockerfile指令,对容器进行修改,在提交一个新的镜像层,基于刚才构建的镜像,再运行一个容器,对容器进行更改,再次提交镜像,知道Dockerfile指令还行完成。
  Docker缓存:Docker在构建镜像的时候还会产生缓存。编译Dockerfile文件的时候可以不使用缓存,docker build–no-cache可以取消使用缓存,这在使用更新apt源的时候尤为有用。
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-481539-1-1.html 上篇帖子: Docker基础概念与框架 下篇帖子: Docker客户端和守护进程
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表