• 强大的Docker入门知识


    目录

    一、Docker简介

    1.1、Docker是

    1.2、Docker通常会在以下情况下使用:

    1.3、Docker和VMware区别

    1.4、Docker 的优点

    二、环境配置

    2.1、代码操作

    2.2、效果演示

    2.3、配置镜像仓库 

    开始配置

    三、基本命令

    3.1、Docker基本命令

    3.2、Docker镜像常用命令

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

    2,docker search 搜索镜像(查官网有那些镜像)

    3,docker pull 下载镜像(增)

    4,docker rmi 删除镜像(删)

    3.3、Docker 容器常用命令

    1、Docker创建并启动容器

     a、启动交互式容器:(启动并进入-----it)

     b、守护式方式创建并启动容器(启动但是不进入---di)

    2、Docker列出容器(查看容器)

    3、Docker退出容器

    4、Docker进入容器

    5、Docker启动容器

    6、Docker重启容器

    7、Docker停止容器

    8、Docker删除容器

    9、Docker容器日志


    一、Docker简介

    1.1、Docker是

    一种开源的容器化平台,可以让开发者将应用程序及其依赖项打包成一个独立的容器,然后部署到任何支持Docker的环境中运行。通过使用Docker,开发者可以实现快速部署、可移植性、可伸缩性和更高的资源利用率。 Docker的核心概念是容器,它是一个轻量级、独立的运行环境,包含了应用程序的代码、运行时环境、系统工具和系统库,可以在任何支持Docker的平台上运行。 Docker还提供了一套工具和服务,如Docker Engine、Docker Compose和Docker Swarm,帮助开发者管理和部署容器化应用程序。 Docker已经成为现代软件开发和部署的重要工具之一(新一代虚拟技术,老一代是VMware,会占用大量内存)。

    1.2、Docker通常会在以下情况下使用:

    1. 应用程序部署:使用Docker可以将应用程序及其所有依赖项打包成一个独立的容器,然后在任何支持Docker的环境中轻松部署和运行。

    2. 开发环境管理:开发者可以使用Docker创建包含特定开发环境的容器,以确保开发和测试环境的一致性,并避免由于环境差异导致的问题。

    3. 微服务架构:Docker容器可以用于构建和部署微服务架构,每个微服务可以被打包成一个独立的容器,并通过容器编排工具进行管理。

    4. 持续集成和持续部署(CI/CD):Docker可以与CI/CD工具集成,帮助实现自动化构建、测试和部署流程,加快软件交付速度。

    5. 多平台支持:Docker容器可以在任何支持Docker的平台上运行,包括开发机、测试环境、云端和本地服务器,实现跨平台部署和可移植性。

    总的来说,Docker可以帮助开发者简化应用程序的打包、部署和管理过程,提高开发效率、可靠性和可移植性。

    1.3、Docker和VMware区别

    都是用于虚拟化技术的工具,但它们有一些重要的区别:

    1. 虚拟化级别:Docker是一种容器化技术,它利用容器来隔离应用程序和其依赖的环境。而VMware是一种虚拟机技术,它模拟了一台完整的计算机系统,包括硬件、操作系统和应用程序。

    2. 性能:由于Docker容器共享主机的操作系统内核,因此在性能方面比VMware虚拟机更高效。VMware虚拟机需要独立的操作系统和硬件模拟,因此在资源消耗和性能方面通常会有一些额外的开销。

    3. 部署和管理:Docker容器可以更快速地部署和启动,而且可以更容易地进行扩展和管理。VMware虚拟机需要较长时间来启动,并且需要更多的管理和配置。

    4. 灵活性:Docker容器更加轻量级和灵活,可以在不同的环境中移植和部署。VMware虚拟机则需要更多的配置和资源来运行。

    总的来说,Docker更适合于轻量级和快速部署的应用程序,而VMware更适合于需要完全隔离和独立操作系统的应用程序。选择使用哪种虚拟化技术取决于具体的需求和场景。

    1.4、Docker 的优点

    1、简化程序:

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

    2、避免选择恐惧症:

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

    3、节省开支:

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

    二、环境配置

    2.1、代码操作

    1. #查看内核
    2. uname -r
    3. #更新yum源为最新
    4. yum update -y
    5. #安装Docker所需要的工具包
    6. yum install -y yum-utils device-mapper-persistent-data lvm2
    7. #设置yum源
    8. yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    9. yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    10. #正式下载安装Docker
    11. yum install docker-ce docker-ce-cli containerd.io -y -y
    12. #启动Docker并且设置开机自启动
    13. systemctl start docker
    14. systemctl enable docker
    15. #检测Docker是否安装成功
    16. docker version

    2.2、效果演示

    查看内核 

     

    更新yum源为最新

    会有点久花10分钟下好

    安装Docker所需要的工具包
     

    设置yum源

    设置yum源,否则走的是国外的(下载速度慢) 不能国内的(速度快),

     

    下载安装Docker

     

    启动Docker并且设置开机自启动

     

    检测Docker是否安装成功-----成功

     

    2.3、配置镜像仓库 

    进入阿里云镜像官方网址:

    阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区 (aliyun.com)阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台 阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区 (aliyun.com)

    第一步:注册,完成后返回就·好了阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台

    进入阿里云镜像加速器

    https://cr.console.aliyun.com/#/accelerator

    开始配置

    1. cd /etc/docker/
    2. vi daemon.json
    3. #在文件中添加 配置
    4. {
    5. "registry-mirrors": ["https://t84pgl53.mirror.aliyuncs.com"]
    6. }
    7. systemctl daemon-reload
    8. systemctl restart docker

    在文件中添加 配置是放自己仓库里的,每个人的是不同的

    测试:

    如果下载到5~3分钟代表成功了,我花了一分钟

    1. #从官网查
    2. docker search mysql
    3. #下载mysql
    4. docker pull mysql
    5. #可以查看有多大
    6. docker images

     可以发现有很多个

    删除镜像

    docker rmi +..

     

    三、基本命令

    3.1、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

    3.2、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

    列:下载centos7

    1. #下载
    2. docker pull centos:7
    3. #查看是否选择成功
    4. image for centos:7

    4,docker rmi 删除镜像(删)

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

    删除可以通过名字或者ID删除

     

     

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

    我们需要加 -f 强制删除

     

     

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

    中间空格隔开

     

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

    3.3、Docker 容器常用命令

    1、Docker创建并启动容器

    docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

     

    --name="容器新名字":为容器指定一个名称;

    -i:以交互模式运行容器,通常与-t或者-d同时使用;

    -t:为容器重新分配一个伪输入终端,通常与-i同时使用;

    -d: 后台运行容器,并返回容器ID;

    -P: 随机端口映射,容器内部端口随机映射到主机的端口

    -p: 指定端口映射,格式为:主机(宿主)端口:容器端口

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

     a、启动交互式容器:(启动并进入-----it)

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

    实例:

     docker run -it --name mycentos03 67fa590cfc1c

    由原来的localhost变成了容器id

     创好服务器了

    结果差不多

    注意: 

    1. 启动普通容器的方式基本不用,没有伪终端,没有太大价值;
    2. 启动交互式容器的方式,容器一创建完毕,立即进入伪终端

     

     b、守护式方式创建并启动容器(启动但是不进入---di)

     docker run -di --name 别名 镜像ID 

    实例:

     docker run -di --name mycentos02 67fa590cfc1c

    执行完命令后,终端依然再宿主机上;

     

    启动容器,并执行/bin/bash命令;

     docker run -it --name 别名 镜像ID  /bin/bash命令

     

    端口映射;

    docker run -it -p 8888:8080 tomcat

    docker run -it -P tomcat

    2、Docker列出容器(查看容器)

    docker ps [OPTIONS]

    查看还在运行容器:docker ps

    docker ps -a

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

     

    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进入容器

    adocker attach 容器ID or 容器名 

    实例:

    docker attach ce6343ee288f

    不能进入停止的状态的容器

    You cannot attach to a stopped container, start it first

    b、Docker进入容器执行命令

    docker exec -it 容器名称 或者 容器ID 执行命令

    实例:

     docker exec -it tomcat02 ls -l /root/webapp02

    直接操作容器,执行完 回到 宿主主机终端;

     我们一般用于 启动容器里的应用 比如 tomcat nginx redis elasticsearch等等

    5、Docker启动容器

    docker start 容器ID or 容器名

    实例:

     docker start mycentos00

    6、Docker重启容器

    docker restart 容器ID or 容器名

    实例:

     docker restart f9cadea1a5e7

    7、Docker停止容器

    docker stop 容器ID or 容器名

    实例:

     docker stop 865b755cd0b2

     

    暴力删除,直接杀掉进程 (不推荐)

    docker kill 容器ID or 容器名

    8、Docker删除容器

    docker rm 容器ID  

    如果删除正在运行的容器,会报错,我们假如需要删除的话,需要强制删除;

    强制删除docker rm -f 容器ID

    删除多个容器 

    docker rm -f 容器ID1  容器ID2 中间空格隔开

    实例:

    docker rm 865b755cd0b2 ce6343ee288f

    删除所有容器

    docker rm -f $(docker ps -qa)

    9、Docker容器日志

    docker logs [OPTIONS] 容器id

      Options:

            --details        显示更多的信息

        -f, --follow         跟踪实时日志

            --since string   显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟)

            --tail string    从日志末尾显示多少行日志, 默认是all

        -t, --timestamps     显示时间戳

            --until string   显示自某个timestamp之前的日志,或相对时间,如42m(即42分钟)

     

  • 相关阅读:
    Java - 对象内存计算以及String类型的相关注意事项
    电源控制系统架构(PCSA)背景和简介
    [附源码]计算机毕业设计JAVA线上图书销售管理系统
    Maven相关常用操作——实用指南
    Oracle 进阶详细案例教程笔记
    (1)Jupyter Notebook 下载及安装
    拼多多上货API:自动化上架商品批量获取商品详情信息
    虹科干货 | 虹科带你了解车载以太网-SOME/IP协议
    Optional的应用
    时空数据挖掘三(城市计算)
  • 原文地址:https://blog.csdn.net/m0_74276368/article/details/136325922