Docker超详细学习教程,简单易懂(小白必看)

本文是一篇针对Docker的详细教程,适合初学者。内容包括Docker的概述、安装步骤、如何配置国内镜像、Docker的Run流程和原理、常用命令的使用,如镜像、容器的管理。通过实践操作,帮助读者快速掌握Docker基础。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

事先说明,本教程使用的是Mac版docker桌面版,命令执行都是在Mac终端实现,不管什么平台,命令、操作都是一样的
在这里插入图片描述

Docker概述与历史

该处去官网看一下或者自行百度,个人建议还是要了解一下,毕竟学习一个新技术首先就是要了解该技术,不要觉得无用

Docker安装

镜像(image):

docker镜像就好比是一个模板,就可以通过这个模板来创建容器服务,nginx镜像 ==>run ==> nginx01容器(提供服务器),通过这个镜像就可以创建多个容器(最终服务运行或者项目运行就是在容器中的)

容器(Container):

Docker利用容器技术,独立运行一个或一个组应用,通过镜像来创建的。

启动、停止、删除,基本命令

目前就可以把这个容器理解为就是一个易简的Linux系统

仓库(repository):

仓库就是存放镜像的地方。

仓库分为公有仓库和私有仓库

Docker Hub(默认是国外的)

阿里云、华为云等都有容器服务器(配置镜像加速器)

安装并配置国内镜像

具体如何安装到官方下载即可,我这里使用的是Mac 的桌面版

下载Docker

https://docs.docker.com/get-docker/

配置国内镜像

这里我以桌面版举例
查看当前 Docker 的 Registry 和 Registry Mirrors

192:~ kevin$ docker info | grep Registry
 Registry: https://index.docker.io/v1/

从上面的信息来看基本上就是 docker 的官方默认配置,美国 docker 地址,使用 nslookup 查询

192:~ kevin$ nslookup index.docker.io
Server:		192.168.1.1
Address:	192.168.1.1#53

Non-authoritative answer:
index.docker.io	canonical name = elb-io.us-east-1.aws.dckr.io.
elb-io.us-east-1.aws.dckr.io	canonical name = us-east-1-elbio-rm5bon1qaeo4-623296237.us-east-1.elb.amazonaws.com.
Name:	us-east-1-elbio-rm5bon1qaeo4-623296237.us-east-1.elb.amazonaws.com
Address: 34.204.125.5
Name:	us-east-1-elbio-rm5bon1qaeo4-623296237.us-east-1.elb.amazonaws.com
Address: 34.200.7.11
Name:	us-east-1-elbio-rm5bon1qaeo4-623296237.us-east-1.elb.amazonaws.com
Address: 34.192.114.9
Name:	us-east-1-elbio-rm5bon1qaeo4-623296237.us-east-1.elb.amazonaws.com
Address: 3.220.75.233
Name:	us-east-1-elbio-rm5bon1qaeo4-623296237.us-east-1.elb.amazonaws.com
Address: 52.6.170.51
Name:	us-east-1-elbio-rm5bon1qaeo4-623296237.us-east-1.elb.amazonaws.com
Address: 52.55.43.248

从 nslookup 返回可以看到 docker 使用的是 aws 的服务,而从域名上也能看出来服务器则位于美国东部。

配置 Registry Mirrors

配置路径:Preferences -> Docker Engine。添加如下配置,上面是 docker 官方国内源,下方为中科大国内 docker 镜像源
在这里插入图片描述

"registry-mirrors": [
    "https://registry.docker-cn.com",
    "https://docker.mirrors.ustc.edu.cn"
  ]

点击 “Apply & Restart” 并等待重启完成

注:这里的 registry-mirrors 是一个集合,也就是一个数组,所以我们可以设置多个 registry-mirrors,Docker 会轮询并使用列表中的 registry-mirrors。

验证配置

在终端执行如下命令,可以看到 Registry Mirrors 已经生效

192:~ kevin$ docker info | grep -C 5 "Registry"
 ID: 33MU:ROG2:CH5V:SSE3:5PMU:5KXJ:C6PM:SAES:NDMH:PUV4:QGFR:JYO5
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 HTTP Proxy: gateway.docker.internal:3128
 HTTPS Proxy: gateway.docker.internal:3129
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
--
 Labels:
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Registry Mirrors:
  https://registry.docker-cn.com/
  https://docker.mirrors.ustc.edu.cn/
 Live Restore Enabled: false

附录

Docker Daemon 配置的官方文档如下,可参考:
https://docs.docker.com/engine/reference/commandline/dockerd/

常用的几个国内源

Docker 官方中国仓库:https://registry.docker-cn.com
中科大 USTC: https://docker.mirrors.ustc.edu.cn
网易 163 镜像:http://hub-mirror.c.163.com

Run流程和Docker原理

Run运行流程

在这里插入图片描述

底层原理

Docker是怎么工作的?

Docker是一个Client-Server结构的系统,Docker的守护进程运行在主机上,通过Socket从客户端访问
DocketServer接受到Docker-Client的指令,就会执行这个命令
在这里插入图片描述
Docker为什么比VM快?

1、Docker有着比虚拟机更少的抽象层
2、docker利用的是宿主机的内核,vm需要Guest OS
在这里插入图片描述
所以,新加一个容器的时候,docker不需要像虚拟机一样重新加载一个操作系统内核,避免引导,虚拟机是加在Guest OS,分钟级别;而docker是利用宿主机的操作系统,省略了这个复杂的过程,秒级。
在这里插入图片描述

Docker常用命令

帮助命令
docker version  #查看docker的版本信息
docker info  #显示docker的系统信息,包括镜像和容器的数量
docker 命令 --help    #帮助命令

帮助文档地址:https://docs.docker.com/reference/

镜像命令

docker images 查看所有本地的主机上的镜像

192:~ kevin$ docker images
REPOSITORY          TAG       IMAGE ID      
<think>嗯,用户说他是小白,想了解Docker是什么以及如何使用。那我得先简单解释Docker的基本概念,不能太技术化。首先,Docker是一个容器化平台,可能得用比喻来解释,比如集装箱的类比,这样更容易理解。 接下来要说明Docker和虚拟机的区别,可能用户会混淆这两个概念。需要强调Docker更轻量,共享系统内核,启动快,资源占用少。然后,用户可能想知道为什么用Docker,所以得列出几个好处,比如环境一致性、快速部、隔离性和易于扩展。 然后,使用部分需要分步骤,从安装开始。得提到不同操作系统的安装方法,比如Windows用Docker Desktop,Linux用包管理器安装。然后是一些基本命令,比如docker run,pull,ps,stop,rm,images,这些常用命令的示例和解释。 还要举一个实际例子,比如运行Nginx服务器,这样用户能直观看到效果。可能用户需要具体操作步骤,所以给出具体的命令,并说明每个步骤的作用。最后,注意事项部分要提醒用户学习Dockerfile和镜像管理,数据持久化,网络配置,还有安全性的问题。 需要确保语言简单易懂,避免专业术语过多,要时举例说明。可能用户是开发者或者刚入门,所以重点放在实用性和常见使用场景上。另外,检查是否有遗漏的重要概念,比如容器镜像的关系,volume的使用,或者Docker Compose这样的工具,但作为入门介绍可能暂时不需要深入,保持基础即可。 最后总结一下,确保用户能对Docker有一个整体的认识,知道它能解决什么问题,基本如何使用,以及后续学习的方向。这样应该能帮助小白用户建立起初步的理解,并激发他们进一步学习的兴趣。好的</think>!我用最简单的方式为你解释 Docker 和它的基本用法👇 --- ### **Docker 是什么?** - **比喻**:Docker 就像“软件集装箱”。想象一下,集装箱能把货物(代码、环境、配置等)打包成一个标准箱子,在任何码头(服务器/电脑)都能直接运行,无需重新安装。 - **技术说**:Docker 是一个创建、运行和管理“容器”(轻量化的虚拟环境)的工具,让软件的环境和依赖完全独立,避免“在我电脑上能运行,到你的就不行”的问题。 --- ### **Docker vs 虚拟机** - **虚拟机**:笨重!每个虚拟机要装完整操作系统,占用资源多,启动慢。 - **Docker**:轻量!多个容器共享主机系统的内核,秒级启动,资源占用少。 --- ### **为什么要用 Docker?** 1. **环境一致**:开发、测试、生产环境完全一致。 2. **快速部**:一个命令就能运行任何应用。 3. **隔离性**:每个容器独立运行,互不干扰。 4. **节省资源**:一台服务器能跑成百上千个容器。 --- ### **如何开始使用?** #### **1. 安装 Docker** - **Windows/macOS**:官网下载 [Docker Desktop](https://www.docker.com/)(图形化操作)。 - **Linux**:用包管理器安装(如 Ubuntu:`sudo apt install docker.io`)。 #### **2. 核心概念** - **镜像(Image)**:软件的模板(比如一个打包好的 Ubuntu+Python 环境)。 - **容器(Container)**:镜像运行后的实例(像一个正在运行的进程)。 - **仓库(Registry)**:存放镜像的地方(默认是 [Docker Hub](https://hub.docker.com/))。 --- ### **最常用命令** ```bash # 下载一个镜像(比如官方的 Ubuntu) docker pull ubuntu # 运行一个容器(-it 表示交互式终端,--name my_container ubuntu /bin/bash # 查看正在运行的容器 docker ps # 查看所有容器(包括已停止的) docker ps -a # 停止容器 docker stop my_container # 删除容器 docker rm my_container # 删除镜像 docker rmi ubuntu ``` -- ### **实际例子:运行一个 Nginx 服务器** ```bash # 下载 Nginx 镜像 docker pull nginx # 运行容器:-p 8080:80 --name my_nginx nginx # 访问 http://localhost:8080 ,你会看到 Nginx 欢迎页! # 停止并删除容器 docker stop my_nginx docker rm my_nginx ``` --- ### **注意事项** 1. **学习 Dockerfile**:自己编写镜像的“菜谱”(比如定义安装 Python、复制代码)。 2. **数据持久化**:用 `-v` 参数挂载主机目录到容器,防止数据丢失。 3. **网络配置**:容器间可以通过网络通信(比如 Web 容器连接数据库容器)。 4. **不要滥用 root 权限**:容器内默认用 root 运行,注意安全性。 --- ### **下一步学什么?** - 写自己的 Dockerfile - 用 `docker-compose` 管理多个容器 - 了解容器编排工具(如 Kubernetes) 有问题随时问!从一个小例子动手试试,理解会更深刻哦~ 😊
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值