Docker记录

1 基本概念

Docker包括三个基本概念:

  • 镜像(Image)

Docker镜像相当于一个特殊文件系统,除了提供容器运行时所需的程序、库、资源和配置等文件外,还包含一些运行时准备的配置从那数(如环境变量、用户等),镜像不包含任何动态数据。

镜像被设计成分层存储的架构,镜像是由多层文件系统联合组成,镜像构建是会一层层构建,每一层构建完不再改变。(比如删除前一层文件,实际上仅是在当前层标记目标文件为已删除)。因此每层应只包含最基础的东西,额外的东西应该在构建结束后立即删除。

  • 容器(Container)

容器的实质是进程,但是是运行在属于自己的独立的命名空间,因此可以拥有自己的root文件系统、网络配置、进程空间、甚至是自己的用空ID空间。每一个容器运行时,都是以镜像为基础,在其上创建一个当前容器的存储层,称这个为容器运行时读写而准备的存储层为容器存储层。

按照 Docker 最佳实践的要求,容器不应该向其存储层内写入任何数据,容器存储层要保持无状态化。所有的文件写入操作,都应该使用数据卷(Volume)或者绑定宿主目录,在这些位置进行读写会跳过容器存储层。

  • 仓库(Repository)

一个Docker Reistry可以包含多个仓库(Repository);每个仓库可以包含多个标签(Tag),每个标签对应一个镜像。

可以通过<仓库名>:<标签>来指定镜像:

仓库名通常为<用户名>/<软件名>,用户名缺省为library;
标签缺省为latest。

2 安装

注意要建立docker用户组

默认情况下,docker命令会使用Unix socket与Docker引擎通信,而只有root用户和docker组用户才可以访问Docker引擎的Unix socket.

# 建立`docker`组:
$ sudo groupadd docker

# 将当前用户加入docker组
$ sudo usermod -aG docker $USER
# 退出终端,并重新登入

3 使用镜像

3.1 获取镜像

通过docker pull 仓库名获取镜像:

$ docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]
docker镜像仓库地址:<域名/IP>[:端口号]。默认地址为Docker Hub(docker.io)
测试运行:

$ docker run -it --rm ubuntu:18.04 bash

-i 交互式操作
-t 终端,-i可以进行交互式操作,但是没有prompt
–rm 运行后删除,否则运行后只是终止(exited)

3.2 列出镜像

列出已经下载的镜像(顶层镜像):

$ docker image ls

列出所有镜像:

$ docker image ls -a

Docker为了加速镜像构建、重复利用资源,docker会利用中间层镜像,是其他上层镜像所依赖的镜像。这些无标签镜像不应该删除,否则会导致上层镜像因为缺失依赖。

删除虚悬镜像:

$ docker image prune

3.3 删除本地镜像

$ docker image rm [选项] <镜像1> [<镜像2> ...]

可以用 ID、镜像名、摘要 删除镜像
可以与docker image ls 命令来配合使用:

$ docker image rm $(docker image ls -q -f before=mongo:3.2)

原文

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值