docker的简单使用(一)

1.定制一个Web服务器:用nginx镜像启动一个容器,命名为webserver,并且映射了80端口dockerrun--namewebserver-d-p80:80nginx

2.使用dockerexec命令进入容器,修改其内容docker exec -itwebserver bash

3.通过docker diff命令看到具体的改动dockerdiffwebserver

4.docker commit命令,可以将容器的存储层保存下来成为镜像(docker commit命令,所有对镜像的操作都是黑箱操作。用于一些特殊的应用场合,比如被入侵后保存现场等。但是,不要使用docker commit定制镜像,定制行为应该使用Dockerfile来完成。)dockercommit[选项]<容器ID或容器名>[<仓库名>[:<标签>]]dockercommit\--author"TaoWang"\--message"修改了默认网页"\webserver\nginx:v2

5.想列出已经下载下来的镜像,可以使用dockerimages命令

6.docker history具体查看镜像内的历史记录dockerhistorynginx:v2

7.建立一个文本文件,并命名为Dockerfile:$mkdirmynginx$cdmynginx$touchDockerfile其内容为:FROMnginxRUNecho'

Hello, Docker!

'>/usr/share/nginx/html/index.htmldockerbuild来构建这个镜像nginx:v3$dockerbuild-tnginx:v3.dockerbuild[选项]<上下文路径/URL/->

8.docker file命令:

1)RUN shell格式:RUN<命令> exec格式:RUN["可执行文件","参数1","参数2"] 用来执行命令行命令

2)COPY shell格式:COPY<源路径>...<目标路径> exec格式:COPY["<源路径1>",..."<目标路径>"](<源路径>可以是多个,甚至可以是通配符)

3)ADD 所有的文件复制均使用COPY指令,仅在需要自动解压缩的场合使用ADD

4)CMD  shell格式:CMD<命令> exec格式CMD["可执行文件","参数1","参数2"...] shell格式,命令执行完后shell会退出,启动容器建议使用exec格式,并且要求以前台形式运行

5)ENTRYPOINT 在运行时也可以替代CMD,不过要略显繁琐,需要通过docker run的参数--entrypoint来指定

6)ENV设置环境变量ENV VERSION=1.0DEBUG=on\NAME="HappyFeet"

7)ARG构建参数ARG<参数名>[=<默认值>]

8)VOLUME定义匿名卷VOLUME["<路径1>","<路径2>"...]

9)EXPOSE EXPOSE<端口1>[<端口2>...]指令是声明运行时容器提供服务端口,这只是一个声明,在运行时并不会因为这个声明应用就会开启这个端口的服务, docker run -P时,会自动随机映射EXPOSE的端口

10)WORKDIR<工作目录路径>以后各层的当前目录就被改为指定的目录,如该目录不存在,WORKDIR会帮你建立目录

11)USER指定当前用户 USER <用户名>和WORKDIR相似,都是改变环境状态并影响以后的层

12)HEALTHCHECK 健康检查来判断其Web服务是否在正常工 HEALTHCHECK --interval=5s --timeout=3s

13)ONBUILD后面跟的是其它指令,在当前镜像构建时并不会被执行。只有当以当前镜像为基础镜像,去构建下一级镜像的时候才会被执行。

9.docker import [选项] <文件>|| -[<仓库名>[:<标签>]]从rootfs压缩包导入生成镜像

10.$ docker save alpine | gzip > alpine-latest.tar.gz 将镜像保存为归档文件

将alpine-latest.tar.gz文件复制到了到了另一个机器上,用下面这个命令加载镜像:

$ docker load -i alpine-latest.tar.gz

Loaded image: alpine:latest

11.删除本地镜像docker rmi 选项] <镜像1> [<镜像2> ...]其中,<镜像>可以是镜像短ID、镜像长ID、镜像名或者镜像摘要,docker images默认列出的就已经是短ID了,一般取前3个字符以上,只要足够区分于别的镜像就可以.并非所有的docker rmi都会产生删除镜像的行为,有可能仅仅是取消了某个标签而已.

删除虚镜像$ docker rmi $(docker images -q -f dangling=true)使用docker images -q来配合可以成批的删除镜像

删除所有仓库名为redis的镜像:$ docker rmi $(docker images -q redis)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 转载自 http://blog.opskumu.com/docker.html 一、Docker 简介 Docke...
    极客圈阅读 13,595评论 0 120
  • docker基本概念 1. Image Definition 镜像 Image 就是一堆只读层 read-only...
    慢清尘阅读 12,864评论 1 21
  • 0x01 核心概念 Docker镜像类似于虚拟机镜像,可以理解为一个面向Docker引擎的只读模板,包含了文件系统...
    闲云逸心阅读 10,266评论 0 9
  • 断断续续的 下个不停 我对你的思念 也如同这雨 一般从未停止过 窗外 蒙蒙细雨中缺少 你的身影 雨中 寻找你的身影...
    月日明阅读 1,036评论 0 0
  • 我是通过微信来认识世界的,没能亲身经历虽然很可惜,但跟着众多的公众号作者一起看风景,一起品味人生百态,似乎是最低成...
    不夜侯_阅读 2,688评论 2 1

友情链接更多精彩内容