docker教程(1) - 快速使用
docker 笔记(1) ——docker安装、获取镜像、启动容器、删除容器
一、安装
Docker 官方文档
根据官方文档整理简单流程
从Docker Hub下载mac包
运行磁盘镜像,将Docker复制到应用程序
在应用程序中找到Docker图标运行Docker
docker运行状态可以在他系统状态栏看到
- 成功运行后可以在Terminal使用Docker了, 图示命令:
docker version
二、命令
1、获取镜像
详细命令
docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]
使用 docker pull help
查看帮助
简单使用:
docker pull ubuntu:18.04
这段命令会自动到默认的docker Hub
拉取 名字为ubuntu
, 标签为:18.04的ubuntu
系统镜像, 没有标签自动使用latest
命令执行完成后会出现类似:
$ docker pull ubuntu:18.04
18.04: Pulling from library/ubuntu
bf5d46315322: Pull complete
9f13e0ac480c: Pull complete
e8988b5b3097: Pull complete
40af181810e7: Pull complete
e6f7c7e5c03e: Pull complete
Digest: sha256:147913621d9cdea08853f6ba9116c2e27a3ceffecf3b492983ae97c3d643fbbe
Status: Downloaded newer image for ubuntu:18.04
以下摘抄地址:【分层存储】 :
- 因为镜像包含操作系统完整的root文件系统,其体积往往是庞大的,因此在 Docker 设计时,就充分利用 Union FS 的技术,将其设计为分层存储的架构。 镜像只是一个虚拟的概念,其实际体现并非由一个文件组成,而是由一组文件系统组成,或者说,由多层文件系统联合组成。
- 镜像构建时,会一层层构建,前一层是后一层的基础,删除前一层文件的操作,实际不是真的删除前一层的文件,而是仅在当前层标记为该文件已删除。在最终容器运行的时候,虽然不会看到这个文件,但是实际上该文件会一直跟随镜像。
- 在构建镜像的时候,需要额外小心,每一层尽量只包含该层需要添加的东西,任何额外的东西应该在该层构建结束前清理掉。
镜像是由多层存储所构成。下载也是一层层的去下载,并非单一文件。下载过程中给出了每一层的 ID 的前 12 位。并且下载结束后,给出该镜像完整的sha256的摘要,以确保下载一致性。
2、以镜像为基础,启动并运行一个容器
docker run -it --rm ubuntu:18.04 bash
参数:
-it
: 两个参数: -i 使用交互式操作, -t 终端启动
--rm
: 在退出容器之后,删除容器
ubuntu:18.04
:容器名称和标签
bash
: 使用bash shell进入系统
已经运行的镜像,可以通过container
查看
因为之前的运行使用了参数--rm
, 会导致在exit
后自动删除container
, 所以在使用命令前,请新开一个terminal
:
$ docker container ls # 查看正在运行中的容器
$ docker container ls -a # 查看所有容器,包括正在运行&&停止运行的容器
3、停止容器
通过docker container ls
能查看到的容器, 可以通过停止容器命令 docker container stop <container_name>
由于之前的启动命令没有指定容器名称(container_name),可以使用docker随机分配的容器名进行操作。
这里分配的容器名称为:goofy_vaughan
$ docker container stop goofy_vaughan
除了使用名称,也可以使用CONTAINER_ID
进行操作, 而且不需要输入全部字符4424419a386e
,只需要输入大于等于三个字符442
并且能表明容器唯一就可以了。
4、删除容器
停止容器后容器并没有被删除,
使用:docker container ls
没有出现的容器,使用docker container ls -a
查看到了,就说明容器被停止了,删除容器的命令:docker container rm <container_name>
同停止容器一样,container_name
可以使用CONTAINER_ID
代替
本文参考资料
最新文章
- mysql索引 (校验规则引发的血案)
- [转]你不需要jQuery
- Android性能优化之使用线程池处理异步任务
- web service上传参数代码实例
- ipipe 环境下gpio中断产生死机的信息
- saltstack之基础入门系列文章简介
- XML工程配置文件的读写
- NOIP2005 篝火晚会 解题报告
- 单例模式-ios
- GridView 鼠标经过时变色两种方法
- bzoj 3620 似乎在梦中见过的样子(KMP)
- EXPLAIN句法 优化表结构
- 使用css3背景渐变中的透明度来设置不同颜色的背景渐变
- Visual Studio 2013中的新项目对话框
- usaco 购买饲料 &;&; 修剪草坪
- 基于zepto的手机焦点图touchstart touchmove
- 使用C/C++编译预处理时须要注意的问题
- sourcetree跳过注册的方法
- c语言基础学习06
- 201621123040《Java程序设计》第4周学习总结
热门文章
- Java并发包--LinkedBlockQueue
- mali --mobile platform GPU arch about vertex pipeline
- 图片转换成十六进制TXT文件
- C# IFormattable 接口重写
- 后代元素 span:first-child{...}
- Druid连接池 属性说明
- Codevs 1242 布局 2005年USACO(差分约束)
- java集合类-集合框架体系
- maven的pom报错web.xml is missing and <;failOnMissingWebXml>; is set to true
- 笔记四(Competitor Analysis Test小结)