Docker笔记1 基础概念和镜像

基础概念

开发环境deepin linux 15.11。安装docker之后,执行命令:

sudo usermod -aG docker $USER_NAME

让docker和当前用户在一个组中,可以每次不用执行sudo命令了。

三个核心的概念:

  • 镜像:类似虚拟机的镜像,一个只读模板。比如linux镜像等
  • 容器:轻量级的沙箱,基于容器创建的一个运行实例
  • 仓库:docker存放镜像文件的场所

容器是镜像的一个运行时的状态,镜像是静态的,容器是动态的。

docker的很多思想参考了git和github,可以 对比着来理解

Docker镜像

docker容器运行时,需要从本地获取对应的镜像文件。若果没有,则去默认仓库下载。我们可以自定义仓库的位置。

docker获取对应的镜像文件:

docker [image] pull NAME[:TAG] 

image是镜像的名字,NAME是在远程仓库中镜像的名字,TAG是对应的标签,类似git上的tag。不指定tag会默认拉去latest版本,在服务端不建议这么做。更加详细的pull命令可以参考有关的手册。

使用images命令可以查看对应的docker信息。一个实例:

docker pull zookeeper
docker images

之后终端显示:

  • REPOSITORY:镜像所在仓库
  • TAG:对应的TAG号,类似git中的tag
  • IMAGE ID:镜像的唯一标志,就像我们git每次提交都会有对应的一个编
  • CREATED:镜像的最后更新时间
  • SIZE:镜像的大小

我们可以使用tag命令给我们本地的镜像打一个tag,比如:

docker tag zookeeper:latest myzookeeper;latest

使用inspect查看详细的信息,比如:

docker inspect zookeeper:latest

docker镜像由多个层组成,可以使用history命令查看层的信息,比如:

docker history zookeeper:lastest

使用search命令搜索镜像,比如:

docker search zookeeper

具体参数参考手册

使用rmi或者image rm命令删除镜像,比如:

docker rmi zookeeper:latest
docker image rm zookeeper:latest

后者tag号可以替换成id

使用prune命令清理遗留的临时镜像文件,比如:

docker prune

基于已有的容器创建,基本的命令格式是:

docker [container] commit  [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

比如,执行命令:

docker [container] commit -m "create container example" -a "erick" zookeeper:latest myZookeeper:0.1

也可以使用模板文件导入镜像,比如:

cat ubuntu-18.04-x86_64-minimal.tar.gz | docker import - ubuntu:18.04

使用Dockerfile可以基于某个父镜像创建新镜像。比如:

FROM debian:stretch-slim

LABEL version="1.0" maintainer="docker user <docker_user@github>"

RUN apt-get update && \
    apt-get install -y python3 && \
    apt-get clean &&
    rm -rf /var/lib/apt/lists/*

可以使用saveload命令导出和加载镜像。

docker save -o ubuntu_18.04.tar ubuntu:18.04  # 导出镜像
docker load -i ubuntu_18.04.tar # 加载镜像到本地的docker
docker loac < ubuntu_18.04.tar # 同上

可以使用docker push命令上传到指定仓库,具体可以参考手册。

总结

docker的镜像是一个静态的文件,而且有不同的版本,这就类似于git的不同版本那样,docker的镜像是docker的基础,需要理清基本概念。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值