zoukankan      html  css  js  c++  java
  • docker入门

    Docker简介

    Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。

    Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

    容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone app,更重要的是容器性能开销极低。

    Docker 17.03 版本之后分为 CECommunity Edition: 社区版) 和 EEEnterprise Edition: 企业版),我们用社区版就可以了。

    Docker 的优点

    1、简化程序:

    Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,便可以实现虚拟化。Docker改变了虚拟化的方式,使开发者可以直接将自己的成果放入Docker中进行管理。方便快捷已经是 Docker的最大优势,过去需要用数天乃至数周的 任务,在Docker容器的处理下,只需要数秒就能完成。

    2、避免选择恐惧症:

    如果你有选择恐惧症,还是资深患者。那么你可以使用 Docker 打包你的纠结!比如 Docker 镜像;Docker 镜像中包含了运行环境和配置,所以 Docker 可以简化部署多种应用实例工作。比如 Web 应用、后台应用、数据库应用、大数据应用比如 Hadoop 集群、消息队列等等都可以打包成一个镜像部署。

    3、节省开支:

    一方面,云计算时代到来,使开发者不必为了追求效果而配置高额的硬件,Docker 改变了高性能必然高价格的思维定势。Docker 与云的结合,让云空间得到更充分的利用。不仅解决了硬件管理的问题,也改变了虚拟化的方式。

    Docker的架构

    Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。

    Docker 容器通过 Docker 镜像来创建。

    容器与镜像的关系类似于面向对象编程中的对象与类。

     

    Docker 和虚拟机的区别

    Docker是一种轻量级的虚拟化技术,比传统的虚拟机性能更好。

    下图是虚拟机的体系结构:

     

    server - 表示真实电脑。

    Host OS - 真实电脑的操作系统,例如:Windows,Linux

    Hypervisor - 虚拟机平台,模拟硬件,如VMWare,VirtualBox

    Guest OS - 虚拟机平台上安装的操作系统,例如CentOS Linux

    App - 虚拟机操作系统上的应用,例如nginx

    下图是Docker的体系结构:

    Centos7安装Docker

    Docker1.13版本之后采用时间线的方式作为版本号,分为社区版CE和企业版EE

    社区版是免费提供给个人开发者和小型团体使用的,企业版会提供额外的收费服务,比如经过官方测试认证过的基础设施、容器、插件等。

    社区版按照stableedge两种方式发布,每个季度更新stable版本,如17.0617.09;每个月份更新edge版本,如17.0917.10

    我们平时用社区版就足够了。所以我们安装社区版;

    我们主要参考:https://docs.docker.com/install/linux/docker-ce/centos/  来安装;

    我们切换到root用户

    1Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker

    通过 uname -r 命令查看你当前的内核版本

     $ uname -r

    2、使用 root 权限登录 Centos。确保 yum 包更新到最新。

    $ yum update -y

    3、卸载旧版本(如果安装过旧版本的话)

    $ yum remove docker  docker-common docker-selinux docker-engine

    4、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

    $ yum install -y yum-utils device-mapper-persistent-data lvm2

    5、设置yum

    $ yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

    6,安装最新版本的Docker

    $ yum install docker-ce docker-ce-cli containerd.io -y -y

     

     

    如果出现下面问题

    遇到这种情况有两种做法:

    1、没网,试着:ping www.baidu.com

    如果显示没有连接的话,就说明没网,也就无法使用yum 命令。

    2、ping通了的话,还是是用不了yum命令,说明是yum镜像没有了,那么就得下载一个来更新。

    在安装完CentOS后一般需要修改yum源,才能够在安装更新rpm包时获得比较理想的速度。国内比较快的有163源、sohu源。这里以163源为例子。

    A、 cd /etc/yum.repos.d

    B、 mv CentOS-Base.repo CentOS-Base.repo.backup

    C、wget http://mirrors.163.com/.help/CentOS6-Base-163.repo

    D、mv CentOS6-Base-163.repo CentOS-Base.repo

    E、yum clean all

    最后在使用yum 就可以了。

     

     

    7,启动Docker并设置开机启动

     

    $ systemctl start docker

     

    $ systemctl enable docker

     

    8,验证Docker

     

    $ docker version

     

    阿里云镜像仓库

    Docker默认远程仓库是https://hub.docker.com/

    比如我们下载一个大点的东西,龟速

    由于是国外主机,类似Maven仓库,慢得一腿,经常延迟,破损;

    所以我们一般都是配置国内镜像,比如阿里云,网易云等;推荐阿里云,稳定点;

    配置步骤如下:

    1,登录进入阿里云镜像服务中心,获取镜像地址

    进入阿里云容器镜像服务地址:

    https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

    使用你的淘宝账号密码登录

    这里我们获取镜像地址;

    2,在/etc/docker目录下找到在daemon.json文件(没有就新建),将下面内容写入

     

     

    { "registry-mirrors": ["https://qeyh5656.mirror.aliyuncs.com"] }

     

    3,重启daemon

     

    systemctl daemon-reload

     

    4,重启docker服务

     

    systemctl restart docker

     

    5,测试  

     

     

     docker run hello-world

     

     

    由于速度太快,截图都难;

     

    执行 docker run hello-world的过程看如下图例:

    Docker基本命令

    启动Docker

    systemctl start docker

    停止Docker

    systemctl stop docker

    重启Docker

    systemctl restart docker

    开机启动Docker

    systemctl enable docker

    查看Docker概要信息

    docker info

    查看Docker帮助文档

    docker --help

    查看Docker版本信息

    docker version

     

     

     

    Docker镜像常用命令

     

    1,docker images 列出本机所有镜像

     

    docker images

     

    列出本机所有镜像

     

     

     

    REPOSITORY

    镜像的仓库源

    TAG

    镜像的标签(版本)同一个仓库有多个TAG的镜像,多个版本;我们用REPOSITORY:TAG来定义不同的镜像;

    IMAGE ID

    镜像ID,镜像的唯一标识

    CREATE

    镜像创建时间

    SIZE

    镜像大小

     

    OPTIONS 

    可选参数:

    -a

    显示所有镜像(包括中间层)

    -q

    只显示镜像ID

    -qa

    可以组合

    --digests

    显示镜像的摘要信息

    --no-trunc

    显示完整的镜像信息 

     

    2,docker search 搜索镜像

    https://hub.docker.com/ 这里的搜索效果一样;

    OPTIONS可选参数:

    --no-trunc

    显示完整的镜像描述

    -s

    列出收藏数不小于指定值的镜像

    --automated

    只列出Docker Hub自动构建类型的镜像

     

     

    3,docker pull 下载镜像

     

    docker pull 镜像名称:[TAG]

     

    注意:不加TAG,默认下载最新版本latest

     

     

    4,docker rmi 删除镜像

     

    1,删除单个:docker rmi 镜像名称:[TAG]

     

    如果不写TAG,默认删除最新版本latest

     

     

    有镜像生成的容器再运行时候,会报错,删除失败;

     

    我们需要加 -f 强制删除

     

    2,删除多个:docker rmi -f 镜像名称1:[TAG] 镜像名称2:[TAG]

     

    中间空格隔开

     

    3,删除全部:docker rmi -f $(docker images -qa)

     

     

    Docker 容器常用命令

     

    1、Docker创建并启动容器

     

    启动普通容器: docker run --name 别名 镜像ID  

     

     启动交互式容器:  docker run -it --name 别名 镜像ID   来运行一个容器,取别名,交互模式运行,以及分配一个伪终端,并且进入伪终端;

     

    注意: 

     

    1、启动普通容器的方式基本不用,没有伪终端,没有太大价值;

     

    2、启动交互式容器的方式,容器一创建完毕,立即进入伪终端

     

     守护式方式创建并启动容器: docker run -di --name 别名 镜像ID 

     

    it的启动方式就是会直接进入你开启的容器的路径,而di不会

     

    2、Docker列出容器

     

    docker ps [OPTIONS]

     

    OPTIONS说明:

     

    -a :显示所有的容器,包括未运行的。

     

    -f :根据条件过滤显示的内容。

     

    --format :指定返回值的模板文件。

     

    -l :显示最近创建的容器。

     

    -n :列出最近创建的n个容器。

     

    --no-trunc :不截断输出。

     

    -q :静默模式,只显示容器编号。

     

    -s :显示总的文件大小。

     

    docker ps 查看正在运行的容器

     

    docker ps -a 查看所有容器

     

    docker ps -n 2  显示最近创建的2个容器

     

    docker ps -f status=exited 查看停止的容器

     

    3、Docker退出容器

     

    exit 容器停止退出

     

    ctrl+P+Q 容器不停止退出

     

    4、Docker进入容器

     

     a、docker attach 容器ID or 容器名 

     

    5、Docker启动容器 

     

    docker start 容器ID or 容器名

     

    6、Docker重启容器

     

    docker restart 容器ID or 容器名

     

    7、Docker停止容器

     

    docker stop 容器ID or 容器名

     

    8、Docker删除容器

     

    docker rm 容器ID 

     

    9、Docker容器日志

     

    直接进入这个目录:/var/lib/docker/containers/

     

     

  • 相关阅读:
    国际关注,Panda 交易所获悉美银监机构批准特许银行托管加密资产
    Panda 交易所快报 央行数字货币测试进入C端流量入口
    Panda交易所获悉,五地股权市场获批参与「区块链建设试点」
    K2“拍了拍”你,这里有你想要的医药行业整体解决方案—K2 BPM
    K2 BPM 给你不一样的产品体验,有兴趣了解一下吗?
    BPM产品解读之规则设计器-K2 BPM-工作流引擎
    idea 使用Springboot 编译报错
    vue 表格中的下拉框单选、多选处理
    Kibana的安装和使用
    .net core 如何向elasticsearch中创建索引,插入数据。
  • 原文地址:https://www.cnblogs.com/ztbk/p/12040929.html
Copyright © 2011-2022 走看看