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

[经验分享] Docker 镜像与库

[复制链接]

尚未签到

发表于 2019-2-22 06:24:49 | 显示全部楼层 |阅读模式
  Docker Imageker Image 镜像
容器的基石
层叠的只读文件系统
联合加载(union mount)
镜像存储位置为 /var/lib/docker  也可通过docker  info命令查看docker存储的驱动和位置。
  列出镜像
$ docker images  [ OPTSIONS ]  [ REPOSITORY ]
-a , --all=false
-f , --filter=[]
--no-trunc=false
-q , --quiet=false
  1、REPOSITORY  仓库
2、TAG   标签
  查看镜像
$ docker inspect [ OPTIONS ]  CONTAINER|IMAGE  [ CONTAINER|IMAGE... ]
-f  , --format= “”
删除镜像
$ docker rmi  [ OPTIONS ]   IMAGE  [ IMAGE... ]
-f ,--force=false  Force removal of the image
--no-prune=false  Do not delete untagged  parents

  查找镜像
Doceker Hub
https://registry.hub.docker.com
$ docker search  [ OPTIONS ]  TERM
--automated=false   Only show automated builds
--no-trunc=false  Don`t truncate output
-s, --stars=0 Only displays with at least x stars
最多返回25个结果
  拉取镜像
$ docker pull [ OPTIONS ]  NAME [ :TAG ]
-a, --all-tags=false  Download all tagged images in the repository

使用 --registry-mirror选项
1、修改  /etc/default/docker
2、添加:DOCKER_OPTS= “--registry-mirror=http://MIRROR-ADDR”
https://www.daocloud.io  (国内镜像源)
  推送镜像
$ docker push NAME[:TAG]

  构建镜像
1.保存对容器的修改,并再次使用
2.自定义镜像的能力
3.一软件的形式打包并分发服务及其运行环境
  一、构建镜像的方式
$ docker commit   通过容器构建
$ docker commit  [ OPTIONS ]  CONTAINER [ REPOSITORY[:TAG] ]
-a, --author=""  Author
e.g.,"John Hannibal Smith hannibal@a-team.com"
-m, --message=" "   Commit message
-p, --pause=true  Pause container during commit


  $ docker build  通过Dockerfile 文件构建
1.创建Dockerfile
2.使用$docker build 命令
Dockerfile是指包含一系列命令的文本文件
创建第一个Dockerfile 文件实例
¥#First Dockerfile
FROM ubuntu:14.04
MAINTAINER  dormancypress  “dormancypress@outlook.com”
RUN apt-get update
RUN apt-get install -y nginx
EXPOSE 80
创建例子:


$docker build [ OPTIONS ] PATH | URL | -
--force-rm=false
--no-cache=false
--pull=false
-q,--quiet=false
--rm=true
-t,--tag=" "

  Dockerfile指令---指令格式
$# Comment
INSTRUCTION  argument
  FROM指令:
FROM  
FROM  :
已经存在的镜像,基础镜像,必须是第一条非注释指令
  MAINTAINER指令:
MAINTAINER
指定镜像的作者信息,包含镜像的所有者和联系信息
  RUN指令:
指定当前镜像中运行的命令

  •   RUN   (shell指令)
    /bin/sh  -c  command
    RUN  echo hello
  • RUN [ "executabke","param1","param2" ]   (exec模式)
    RUN [ "/bin/bash","-c","echo hello" ]
  EXPOSE指令:
EXPOSE    [ ...]
指定运行该镜像的容器使用的端口
在容器运行时,我们仍需指定端口号
$docker run -p 80 -d dormancypress/df_test1 nginx -g "daemon off;"
  CMD指令:
CMD [ "executable","param1","param2" ]   (exe模式)
CMD command param1 param2  (shell模式)
CMD [ "param1","param2" ]  (作为ENTRYPOINT指令的默认参数)
  ENTRYPOINT指令:
ENTRYPOINT [ "executable","param1","param2" ]   (exe模式)
ENTRYPOINT command param1 param2  (shell模式)
可以使用docker  run --entrypoint 覆盖
  ADD指令:
ADD ...
ADD [ ""..."" ]   (适用于文件路径中有空格的情况)
  COPY指令:
COPY ...
COPY [ ""..."" ]   (适用于文件路径中有空格的情况)
  ADD vs. COPY
ADD 包含类似tar的解压功能
如果单纯复制文件,Docker推荐使用COPY
  VOLUME指令:
VOLUME [ "/data" ]
  WORKDIR指令:(使用绝对路径)
WORKDIR  /path/to/workdir
  ENV指令:
ENV  
ENV =
  USER 指令:
USER daemon
USER nginx  (uid gid等)
USER user ,USER uid, USER user:group , USER uid:gid
USER user:group , USER uid:group
  ONBYILD指令:
ONBYILD [ INSTRUCTION ]
镜像触发器
当一个镜像被其他镜像作为基础镜像时执行
  Docckerfile构建过程
1、从基础镜像运行一个容器
2、执行一条指令,对容器做出修改
3、执行类似docker commit的操作,提交一个新的镜像层
4、再基于刚提交的镜像运行一个新容器
5、执行Dockerfile中的下一条指令,直至所有指令执行完毕
  使用中间层镜像进行调试
查找错误
  构建缓存
不适用缓存
$docker build --no-cache
  查看镜像构建的过程
$docker history [ image ]






运维网声明 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-675421-1-1.html 上篇帖子: 解决Docker Hub仓库下载镜像网络异常问题 下篇帖子: Docker客户端与守护进程
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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