【Docker从入门到进阶】01.介绍 & 02.基础使用

1. 介绍

什么是 Docker

Docker 是一个开源的平台,用于开发、发布和运行应用程序。它使开发者能够以更精简的方式封装应用及其依赖,做到"打包一次,到处运行"。通过 Docker,您可以创建轻量级、可移植的容器,每个容器内运行着一个应用程序及其所有依赖环境。

Docker 简介

Docker 提供了一种一致的应用运行环境,解决了"在我机器上正常工作"的问题。这是通过将应用程序及其所需的一切打包到容器中实现的,这样相同的容器可以在任何环境中运行。

Docker 的用途和优势
  • 快速应用交付和部署:通过 Docker,可以用同一个配置快速测试、发布和大规模部署应用。

  • 可移植性:无论是在本地开发环境、处理器架构不同的测试环境,还是在云端的生产环境,Docker 容器都能保持应用一致运行。

  • 资源隔离和分配:Docker 使用 Linux 内核的功能,如 cgroups 和命名空间,来独立于操作系统隔离和分配资源。

  • 高效利用系统资源:与虚拟机相比,Docker 容器使用的资源更少,能够运行更多的容器实例。

容器 vs 虚拟机
  • 虚拟机:在主机操作系统上通过虚拟化软件仿真硬件运行完整的操作系统。资源开销大,启动慢,但更适合运行不同操作系统内核。

  • 容器:共享主机操作系统内核,通过隔离进程来实现资源使用控制。容器启动快,占用资源少,适合应用的轻量化和快速扩展。

Docker 的基本组成部分
Docker 镜像(Image)

Docker 镜像是一个只读模板,包含创建 Docker 容器的指令。镜像可以基于基础镜像进行拓展,添加新的指令来构建最终的应用程序执行环境。镜像是构建容器的基础,可以使用公共的镜像仓库,比如 Docker Hub,也可以使用私有仓库。

Docker 容器(Container)

Docker 容器是由镜像创建的可运行实例。容器是用户与应用程序交互的具体实现,它是独立的并提供一个隔离的运行环境。每个容器都与其他容器以及主机隔离,可作为一种本地或云端的环境部署。

Docker 仓库(Registry)

Docker 仓库是存储和分发镜像的平台。通过 Docker 仓库,您可以查找并下载他人共享的镜像,也可以上传自己的镜像用于共享或备份。常用的公共仓库是 Docker Hub,但根据需求可以搭建私有的 Docker 仓库。

2. 基础使用

本节将介绍Docker的基础操作,包括如何安装Docker、使用基本命令来管理镜像和容器。掌握这些内容将为您处理更复杂的Docker操作奠定基础。

安装 Docker

Docker可在多种操作系统上安装,以下是常见系统的安装步骤:

  • Windows:使用Docker Desktop进行安装,需提前启用Hyper-V。

    1. 下载Docker Desktop安装包。
    2. 运行安装包并按照提示完成安装。
    3. 启动Docker Desktop并成功运行时,系统托盘将显示Docker图标。
  • macOS:通过Docker Desktop安装,需启用Apple Hypervisor。

    1. 下载Mac版Docker Desktop。
    2. 打开下载的dmg文件,将Docker图标拖入"应用程序"文件夹。
    3. 运行Docker应用,初次启动可能需要输入管理员密码。
  • Linux:通常通过包管理工具安装(CentOS、Ubuntu为例)。

    • 对于Ubuntu:

      bash 复制代码
      sudo apt-get update
      sudo apt-get install docker-ce docker-ce-cli containerd.io
    • 对于CentOS:

      bash 复制代码
      sudo yum install docker-ce docker-ce-cli containerd.io
  • 验证安装是否成功:执行以下命令以检查Docker版本:

    shell 复制代码
    docker --version

    若显示版本信息,则安装成功。

基本命令

掌握以下基本命令,便可轻松进行Docker的常规操作:

  • 版本信息docker version

    显示Docker客户端和服务端的版本信息。

  • 系统信息docker info

    查看Docker的具体设置信息,包含系统可用资源、已用资源等。

  • 运行容器docker run

    启动一个新的容器。

    shell 复制代码
    docker run hello-world

    该命令从Docker Hub中拉取hello-world镜像并运行。

  • 列出容器

    • docker ps:列出当前正在运行的容器。
    • docker ps -a:列出所有容器包括已停止的。
  • 管理容器

    • 停止容器:docker stop <container_id>
    • 启动容器:docker start <container_id>
    • 重启容器:docker restart <container_id>
  • 删除容器与镜像

    • 删除容器:docker rm <container_id>
    • 删除镜像:docker rmi <image_id>
镜像管理

镜像是Docker构建的基础,通过管理镜像,您可以控制容器的基础环境:

  • 拉取镜像docker pull <image_name>

    下载指定镜像。

  • 列出镜像docker images

    查看当前系统上的所有镜像。

  • 删除镜像docker rmi <image_id>

    删除不再需要的镜像。

容器管理

管理容器是理解Docker的关键之一,下面介绍创建和交互的基础操作:

  • 创建和启动容器docker run

    使用指定镜像创建并启动容器。

  • 进入容器

    • docker exec -it <container_id> bash:进入到运行中的容器。
    • docker attach <container_id>:附加到容器的输入输出。
  • 查看容器日志docker logs <container_id>

    显示容器生成的日志,可以帮助诊断问题。

这些基本操作的掌握,将让您在Docker的世界中更加游刃有余。

相关推荐
Hacker_Oldv4 分钟前
WPS 认证机制
运维·服务器·wps
bitcsljl12 分钟前
Linux 命令行快捷键
linux·运维·服务器
ac.char15 分钟前
在 Ubuntu 下使用 Tauri 打包 EXE 应用
linux·运维·ubuntu
Youkiup42 分钟前
【linux 常用命令】
linux·运维·服务器
qq_297504611 小时前
【解决】Linux更新系统内核后Nvidia-smi has failed...
linux·运维·服务器
_oP_i1 小时前
.NET Core 项目配置到 Jenkins
运维·jenkins·.netcore
weixin_437398211 小时前
Linux扩展——shell编程
linux·运维·服务器·bash
小燚~1 小时前
ubuntu开机进入initramfs状态
linux·运维·ubuntu
年薪丰厚1 小时前
如何在K8S集群中查看和操作Pod内的文件?
docker·云原生·容器·kubernetes·k8s·container
小林熬夜学编程1 小时前
【Linux网络编程】第十四弹---构建功能丰富的HTTP服务器:从状态码处理到服务函数扩展
linux·运维·服务器·c语言·网络·c++·http