Docker基础

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 一、什么是Docker
  • 1.1云服务模型介绍
    • [1.2 常见的云服务商](#1.2 常见的云服务商)
    • [1.3 虚拟化技术概述](#1.3 虚拟化技术概述)
      • [1.3.1 虚拟化类型:](#1.3.1 虚拟化类型:)
    • [二、 Docker简介](#二、 Docker简介)
      • [2.1 为什么使用Docker](#2.1 为什么使用Docker)
    • [2.2 Docker版本](#2.2 Docker版本)
      • [2.2.1 CE(社区版)](#2.2.1 CE(社区版))
      • [2.2.2 EE(企业版)](#2.2.2 EE(企业版))
    • [2.3 Docker 与传统虚拟化的区别](#2.3 Docker 与传统虚拟化的区别)
    • [2.4 Docker 容器的优势](#2.4 Docker 容器的优势)
    • [2.5 容器技术应用场景](#2.5 容器技术应用场景)
  • 三、Docker基本操作
    • [3.1 Docker安装与配置](#3.1 Docker安装与配置)
    • [3.2 Docker基本命令](#3.2 Docker基本命令)
    • [3.3 上传镜像到Docker Hub](#3.3 上传镜像到Docker Hub)
  • 总结

一、什么是Docker

Docker 是一款容器化技术工具,核心作用是帮你快速打包、分发和运行应用程序。它的核心是 "容器":能把应用程序、依赖库、配置文件等所有运行需要的内容,打包成一个独立的 "容器包"(也叫镜像)。这个容器包可以在任何装了 Docker 的环境里(比如你的电脑、服务器、云平台)直接运行,不用操心 "开发环境能跑、生产环境跑不了" 的问题。

  • Docker 的核心技术
    Docker 容器本质上是宿主机的一个进程,通过以下技术实现资源隔离和限制:
  • Namespace:实现资源隔离。
  • Cgroup:实现资源限制。
  • 写时复制技术(Copy-on-Write):实现高效的文件操作。
    总之:Docker 是一个开源的容器化平台,能够让开发者将应用及其依赖环境打包成容器,从而简化跨平台的部署和管理。

1.1云服务模型介绍

云计算是通过网络为用户提供可伸缩的计算资源。云服务通常分为几种类型:

1、laas(基础设施即服务)

  • 提供虚拟化计算资源(如虚拟机、存储、网络等)
  • 用户可以灵活配置自己的计算环境,负责安装操作系统、管理资源等。
  • 优点:灵活度高
  • 缺点:管理复杂,需要较多技术支持。
    2、PasS(平台及服务)
  • 提供一个开发平台,用户可以在上面开发应用程序,而无需关注底层硬件或操作系统。
  • 优点:简化开发过程,适合开发者。
  • 缺点:灵活度较低,可能受到平台限制。
    3、SaaS(软件即服务)
  • 提供已经构建好的应用程序,用户可以直接使用,无需安装和维护。
  • 优点:快速部署,省时省力。
  • 缺点:定制化差,依赖于服务提供商。
    4、DaaS(数据即服务)
  • 提供数据处理和分析服务,用户可以访问、分析云端存储的大数据。
  • 优点:降低用户管理数据的难度。
  • 缺点:可能涉及数据隐私问题。

1.2 常见的云服务商

  • 阿里云、腾讯云、AWS、GoogleCloud、华为云等是市场上主要的云服务提供商。
  • 云服务提供商通常提供各种服务,如存储、计算、网络、CDN等。
    (CDN:由分布在各地的 "边缘服务器" 组成的网络,把源服务器的内容(比如 Docker 镜像、网站静态资源)提前缓存到离用户近的节点,让用户访问更快,同时减轻源服务器的压力。)

1.3 虚拟化技术概述

1.3.1 虚拟化类型:

1、虚拟化类型:

  • 全虚拟化:虚拟化软件完全模拟硬件环境,允许多个操作系统共享硬件资源,彼此之间相互独立。
  • 半虚拟化:虚拟机与宿主操作系统协作,通过修改操作系统内核来提高性能。
  • 适用场景:高性能需求的环境,尤其是优化了开源操作系统(如 Linux)的虚拟化。
    2、虚拟化产品:
  • VMware:广泛使用的企业级虚拟化平台,支持全虚拟化和半虚 拟化。
  • Hyper-V:由微软推出的虚拟化平台,集成于 Windows Server 中。
  • VirtualBox:适用于个人和开发者的虚拟化产品,跨平台支持(Linux、macOS、Windows)。

二、 Docker简介

2.1 为什么使用Docker

Docker 是一种容器化技术,它使得开发者可以将应用及其依赖打包到一个标准化的容器中,从而在任何

环境下都能一致地运行。这个概念类似于将应用放入一个容器(集装箱),无论容器被移动到哪个环境,它都能保持原有的运行状态。

容器技术相比传统的虚拟化技术(如VMware)具有显著优势。传统虚拟化需要在每个虚拟机中运行完整的操作系统,资源消耗大,而 Docker 仅在宿主操作系统上运行多个隔离的容器,不需要完整的操作系统,大大减少了系统开销和资源浪费。

2.2 Docker版本

每个版本的发布周期不同,CE 通常每个月发布新版本,而 EE 版本则会有更长的维护周期。

2.2.1 CE(社区版)

  • Docker Community Edition (CE):社区版本:适用于个人或小型团队,提供基本的容器功能。免费使用。

2.2.2 EE(企业版)

  • Docker Enterprise Edition (EE):适用于大规模生产环境,强调企业级的安全性和支持,通常是付费版本。

2.3 Docker 与传统虚拟化的区别

Docker 通过操作系统级虚拟化(LXC)提供轻量级的虚拟化,容器之间共享宿主机的操作系统内核,因此相比传统虚拟机,Docker 容器更加轻便、高效。

  • 传统虚拟机:每个虚拟机都包含完整的操作系统,资源占用大。
  • Docker 容器:共享宿主操作系统的内核,启动快,占用少,易于管理。

2.4 Docker 容器的优势

  • 移植性:应用和其依赖打包在容器中,跨平台和跨环境运行无缝。
  • 隔离性:容器内的应用互相隔离,不会影响宿主机或其他容器。
  • 效率高:由于不需要完整的操作系统,容器消耗的资源少,启动速度快。
  • 简化部署:通过 Docker,可以轻松创建、复制、修改和删除容器,简化了应用部署和管理的复杂度。

2.5 容器技术应用场景

  • CI/CD(持续集成与持续交付):利用Docker 快速构建和部署应用,保证开发、测试、生产环境的一致性。
  • 微服务架构:容器技术与微服务架构相得益彰,可以独立部署和扩展每个微服务。
  • 多云与混合云环境:容器跨平台能力使得应用能在不同云环境和本地环境间无缝迁移。

三、Docker基本操作

3.1 Docker安装与配置

1、- Docker 目前仅支持64位系统。

  • 关闭防火墙和selinux
bash 复制代码
systemctl stop firewalld.service
setenforce 0

2、安装依赖包

bash 复制代码
yum install -y yum-utils device-mapper-persistent-data lvm2

3、设置阿里云镜像源

bash 复制代码
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

4、安装 Docker-CE 并设置为开机自动启动

bash 复制代码
yum install -y docker-ce docker-ce-cli containerd.io
bash 复制代码
systemctl start docker.service
systemctl enable docker.service

5、基本命令:查看Docker版本和系统信息。

docker --version

docker info

6、搜索镜像

-Docker Hub 是国外的镜像仓库,国内直连经常会出现网络超时、连接拒绝、DNS 解析失败等问题,这是绝大多数用户遇到的核心问题。

  • 解决方法:优先配置国内 Docker 镜像加速源(解决网络问题)
    这是解决国内访问 Docker Hub 失败的最有效方法,推荐使用阿里云、网易云或科大的镜像加速地址。
  • 镜像加速下载:
  • 作用:配置 Docker 使用华为云镜像加速器。
    镜像下载可能会因为网络原因而比较慢,尤其是国内用户。这里给出了几种加速镜像下载的方法。
    7、重启Docker
bash 复制代码
systemctl daemon-reload
systemctl restart docker

8、获取镜像

bash 复制代码
docker pull nginx

9、查看本地所有镜像:

bash 复制代码
docker images

3.2 Docker基本命令

1、获取镜像详细信息

docker inspect image id

2、为本地镜像添加标签

格式:docker tag 名称:[标签] 新名称:[新标签]

例1:为本地的 nginx:latest 镜像添加新的标签 nginx:web ,这并不会创建新的镜像,而是为同一个镜像附加了新的标签。

bash 复制代码
docker tag nginx:latest nginx:web

3、删除镜像

  • 删除指定标签的镜像。注意:如果镜像有多个标签,删除指定标签不会删除镜像本身,
    格式:docker rmi 仓库名称:标签
    例:删除web标签的nginx
bash 复制代码
docker rmi nginx:web

4、导出镜像

作用:将本地镜像 nginx:latest 保存为 tar 包( nginx.tar )注意导出的文件位置。

bash 复制代码
docker save -o nginx.tar nginx:latest

5、导入镜像文件。

从本地 tar 文件中加载镜像。将导出的镜像文件通过此命令重新加载到 Docker 中。注意导入的文件位置。

bash 复制代码
docker load < nginx.tar
或docker load -i nginx.tar

3.3 上传镜像到Docker Hub

总结

这些基本操作对于管理 Docker 镜像非常重要,无论是本地使用、存储备份,还是上传到公共或私

有仓库,都可以通过这些命令来完成。

配置镜像加速器是针对网络速度较慢的用户,能有效提升镜像拉取速度。

相关推荐
二等饼干~za8986682 小时前
碰一碰发视频系统源码开发搭建--技术分享
java·运维·服务器·重构·django·php·音视频
爱学大树锯2 小时前
【Docker本地化超级实践】Docker 镜像离线构建方案
运维·docker·容器
默恋~微凉2 小时前
Docker
运维·docker·容器
小尧嵌入式3 小时前
Linux网络介绍网络编程和数据库
linux·运维·服务器·网络·数据库·qt·php
qq_455760853 小时前
docker - 存储卷
运维·docker·容器
lin张3 小时前
Docker 场景化操作:生产环境容器实践
运维·docker·容器
我要学脑机3 小时前
一个图谱映射到功能网络yeo7或17的解决方案
开发语言·网络·php
2501_939909053 小时前
Docker实训练习
运维·docker·容器
爱宇阳3 小时前
在 Docker 环境中为 GitLab 实例配置邮件服务器
java·docker·gitlab