Docker 三要素

Docker 简介

学习完容器的相关概念,开始学习docker的核心组件分别是Docker客户端、Docker服务器、Docker镜像、Docker容器、仓库。

学习之前,我们先思考一个问题,目前开发面临着怎样的挑战?

随着系统在架构上的调整,已经变得非常复杂了,之前采用的三层架构,开发将代码告诉运维,运维打包好后部署在几台物理服务器上,暴露出的问题很少,而今天随着应用的增多,各类的服务比如MQ、DB、Redis、应用等,为了方便管理,这些不同的服务有可能会部署到不同的环境,一方面这些服务有所依赖的库和软件包,另一方面存在多种部署环境,这就产生了一个问题:如何让这些服务不用考虑运行环境的因素,能够顺利的运行?

docker的出现正是解决了类似的问题,它的思想将各类软件打包,为代码提供了一个基于容器标准化运输系统。将任何应用及其所依赖打包成一个轻量级、可移植、自包含的容器。容器可以运行在几乎所有的操作系统上。

对于开发人员: Build Once 、Run Anywhere,开发人员只需要为应用创建一次运行环境。然后打包成容器便可在其他机器上运行。

对于运维人员: Configure Once、Run Anything
只需要配置好标准的runtime运行环境、服务器就可以运行任何容器。容器消除了开发、测试、生产环境的不一致性,提高工作效率。

Docker采用的是Client/Server架构。客户端向服务器发送请求,服务器负责构建、运行和分发容器。

Docker客户端

Docker客户端最常用的就是docker命令,如docker image docker run等。

Docker服务器

Docker服务器指的是docker 运行在服务器上的后台进程
如systemctl status docker.service
在这里插入图片描述

Docker 镜像

可将Docker镜像看成只读模板,通过它可以创建Docker容器。
镜像有多种生成方法:

(1)从无到有开始创建镜像;
(2)下载并使用别人创建好的现成的镜像;
(3)在现有镜像上创建新的镜像。
它也相当于是一个root文件系统。比如官方镜像 centos:7 就包含了完整的一套 centos:7 最小系统的 root 文件系统

镜像命令
docker images
列出本机镜像
在这里插入图片描述

各个选项说明:

REPOSITORY:表示镜像的仓库源 TAG:镜像的标签版本号 IMAGE ID:镜像ID CREATED:镜像创建时间
SIZE:镜像大小

同一仓库源可以有多个 TAG版本,代表这个仓库源的不同个版本,我们使用 REPOSITORY:TAG 来定义不同的镜像。
如果你不指定一个镜像的版本标签,例如你只使用 ubuntu,docker 将默认使用 ubuntu:latest 镜像

·

OPTIONS说明: ·
-a :列出本地所有的镜像(含历史映像层) ·
-q :只显示镜像ID

扩展
· docker search 某个XXX镜像名字
在这里插入图片描述

在这里插入图片描述
OPTIONS说明:

· – limit : 只列出N个镜像,默认25个 · docker search --limit 5 redis

如搜索Mysql5.0版本只显示点赞数最多的前5个
在这里插入图片描述

docker pull

docker pull 某个XXX镜像名字 · 下载镜像 · docker pull 镜像名字[:TAG] ·
docker pull 镜像名字 · 没有TAG就是最新版 · 等价于 · docker pull 镜像名字:latest
docker pull ubuntu

例:拉取redis:5.0版本的镜像

docker pull redis:5.0

在这里插入图片描述

扩展

docker system df 查看镜像/容器/数据卷所占的空间

docker images 的镜像相加等于 docker system df 的镜像所占空间
在这里插入图片描述

常用命令

·    docker rmi 某个XXX镜像名字ID
·    删除镜像
·    删除单个
·    docker rmi  -f 镜像ID
·    删除多个
·    docker rmi -f 镜像名1:TAG 镜像名2:TAG
·    删除全部
·    docker rmi -f $(docker images -qa)

扩展:

什么是docker虚悬镜像是什么?

仓库名、标签都是的镜像,俗称虚悬镜像dangling image,容器有时候在构建过程中的不成功会产生 虚悬镜像。

Docker 容器

从镜像容器角度,可以把容器看做是一个简易版的 Linux
环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。 Docker容器就是Docker镜像的运行实例。

用户可以通过CLI(Docker)、停止、移动或删除容器。可以这么认为,对于应用软件,镜像是软件生命周期的构建和打包阶段,而容器则是启动和运行阶段。

镜像与容器的关系
镜像相当于容器的“源代码”,docker镜像文件类似于Java的类模板,而docker容器实例类似于java中new出来的实例对象。
在这里插入图片描述

容器常用命令

· docker run [OPTIONS] IMAGE [COMMAND] [ARG…]

--name="容器新名字"       为容器指定一个名称;
-d: 后台运行容器并返回容器ID,也即启动守护式容器(后台运行)-i:以交互模式运行容器,通常与 -t 同时使用;
-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;
也即启动交互式容器(前台有伪终端,等待交互)-P: 随机端口映射,大写P
-p: 指定端口映射,小写p

在这里插入图片描述

启动交互式容器(前台命令行)

使用镜像centos:latest以交互模式启动一个容器,在容器内执行/bin/bash命令。
docker run -it centos /bin/bash

参数说明:

-i: 交互式操作。
-t: 终端。
centos : centos 镜像

/bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。
要退出终端,直接输入 exit:

列出当前所有正在运行的容器

·    docker ps [OPTIONS]
OPTIONS说明(常用):
-a :列出当前所有正在运行的容器+历史上运行过的
-l :显示最近创建的容器。
-n:显示最近n个创建的容器。
-q :静默模式,只显示容器编号。

启动已停止运行的容器

·    docker start 容器ID或者容器名
·    重启容器
·    docker restart 容器ID或者容器名
·    停止容器
·    docker stop 容器ID或者容器名

强制停止容器

·    docker kill 容器ID或容器名
·    删除已停止的容器
·    docker rm 容器ID
·    一次性删除多个容器实例
·    docker rm -f $(docker ps -a -q)
·    docker ps -a -q | xargs docker rm

仓库(repository)

仓库(Repository)是集中存放镜像文件的场所。

类似于 Maven仓库,存放各种jar包的地方; github仓库,存放各种git项目的地方;
Docker公司提供的官方registry被称为Docker Hub,存放各种镜像模板的地方。
仓库分为公开仓库(Public)和私有仓库(Private)两种形式。 最大的公开仓库是 Docker
Hub(https://hub.docker.com/), 存放了数量庞大的镜像供用户下载。国内的公开仓库包括阿里云 、网易云等

Docker常用命令

帮助启动类命令

  1. 启动docker: systemctl start docker
  2. 停止docker: systemctl stop docker
  3. 重启docker: systemctl restart docker
  4. 查看docker状态: systemctl status
  5. docker 开机启动: systemctl enable docker 查看docker概要信息: docker info
  6. 查看docker总体帮助文档: docker --help 查看docker命令帮助文档: docker 具体命令 --help
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值