Docker分享

什么是docker?

      基于宿主机,对进程进行封装隔离,属于操作系统层面的虚拟化技术。因为隔离的进程独立与宿主以及其他隔离的进程,称为容器。

      docker在容器的基础上,进一步封装,从文件系统、网络端口到进程隔离。

为什么用docker?

  • 相比于普通虚拟机,启动速度更快
  • 保证一致的运行环境
  • 持续部署(创建自定义镜像,一次性创建配置)
  • 更轻松的迁徙(基于宿主机隔离出环境)
  • 易于扩展(分层存储)

Docker安装

centos 7安装

yum install docker

systemctl start docker

docker run hello-world(检验是否安装成功)


镜像image

      镜像相当于Linux的root文件系统,包括了容器运行时所需的资源。不同于普通iso镜像的是,docker的镜像是分层存储的,上一层是下一层的基础。

命令

拉取镜像---docker pull  <域名/ip>:<端口>  <用户名/镜像名>:<标签>

镜像列表---docker image ls

删除镜像---docker image rm <镜像名/ID/>

自定义镜像

      镜像的定制其实是定制每一层的文件、配置。dockerfile是一个文本,其内包含了一条条指令,每一个指令构建一层,指令描述的是该层如何构建。

以下是构建jdk环境的命令


docker build -t <name/tag> .

容器container

      容器即是进程,与宿主机隔离,并且拥有自己的命名空间、网络配置(必须暴露端口给宿主机)等。容器与镜像的关系可以理解为实例与类的关系。每一个容器启动时,以镜像层为基础,在其上创建一个容器的存储层。存储层与容器生命周期一样,容器销毁时,存储层也消失。

命令

创建容器并启动---docker run --name <重命名> -d -p <外部端口>:<内部端口> 镜像

  • 检查是否存在指定镜像,不存在就从公有仓库下载
  • 利用镜像启动容器
  • 分配文件系统,在镜像层上创建一个存储层
  • 从宿主机配置的网桥接口中桥接一个虚拟接口到容器中
  • 从地址池配置一个IP地址给容器
  • 执行用户指定的应用程序

启动容器---docker start container

关闭容器---docker stop container

进入容器---docker exec container

容器列表---docker ps (查看所有容器包括未启动-a)

 删除容器---docker container rm <容器名>

 仓库

docker官方提供镜像docker-registry,用于构建私有的仓库。

docker run -d -p 5000:5000 --restart always --name registry registry复制代码

启动好仓库容器后,使用tag标记镜像,并将镜像push到仓库

docker tag  【imgae】:【tag】【host】:【port】/【repository】:【tag】

docker push 【imgae】:【tag】

上传私有仓库后,查询仓库中已有镜像

curl http://【host】:【port】/v2/catalog

网络管理

  • 容器与宿主机隔离,网络也是相互隔离,容器拥有自己的ip。docker inspect 【container】获取容器具体信息
  • 暴露内部端口映射宿主机
  • 每个容器启动时,默认的IP会有所变化,通常根据宿主机ip加上映射端口来使用


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值