容器神器Docker的入门篇章

Docker 就是个​“打包神器”​,专门用来把你的代码、环境配置、依赖库一股脑儿装进一个轻量级的“集装箱”​里,扔到任何地方都能直接跑起来,完全不用操心“水土不服”的问题!

举个栗子🌰:
假设你写了个 Python 网站,本地用 Python 3.10 + MySQL 8.0 跑得好好的,但同事电脑上装的是 Python 2.7 + MySQL 5.7,结果代码一拷贝就报错。这时候 Docker 就能救场——你把整个环境打包成一个镜像(Image),同事直接启动这个镜像里的容器(Container),瞬间拥有和你一模一样的运行环境,连版本号都对齐,爽不爽?

简单说它的特点:​

  1. 隔离性强:每个容器都是独立的小世界,互相不干扰。
  2. 轻量省资源:不像虚拟机要模拟整个操作系统,Docker 只共享底层系统内核,占内存少得多。
  3. 秒级启动:容器启动比虚拟机快多了,分分钟部署。
  4. 版本管理:镜像可以存到仓库(比如 Docker Hub),需要的时候一键拉取,跟 GitHub 下代码一样方便。

适合场景:​
开发测试环境统一、微服务架构、快速迁移项目到云服务器…反正现在搞 IT 的,没听说过 Docker 都不好意思打招呼。

1. 核心三件套:镜像、容器、仓库

  • 镜像(Image)​
    就像手机的系统安装包​(比如 iOS 的 .ipa 文件),里面打包了代码、运行环境、依赖库,但不能直接运行
    举个栗子:你造了个 Python 环境的镜像,里面装好了 Python 3.10 + Django 4.0 + 配置文件,别人可以拿这个镜像直接启动项目。

  • 容器(Container)​
    镜像的运行实例,好比你手机安装好的 App。一个镜像可以启动无数个容器,彼此完全隔离(比如两个容器里都跑着 Python,但互相不影响)。

  • 仓库(Registry)​
    镜像的“应用商店”(比如 Docker Hub),用来存储和分发镜像。你可以上传自己的镜像,也可以下载别人的镜像。


2. Docker 架构:C/S 模式

  • Docker 客户端:你敲的命令(比如 docker run)都是发给客户端。
  • Docker 守护进程(Daemon)​:客户端背后的“打工人”,负责真正干活(拉镜像、启容器)。
  • REST API:客户端和守护进程通过 API 通信,支持远程操作(比如用 IDE 插件控制 Docker)。

3. 为啥 Docker 比虚拟机香?

对比项Docker(容器)​虚拟机(VM)​
资源占用共享宿主机内核,几MB内存就能跑需要完整虚拟操作系统,GB 级内存
启动速度秒级启动分钟级(得先启动系统)
隔离性进程级隔离(轻量)硬件级隔离(重量级)
性能损耗几乎无虚拟化开销大

4. 常用操作命令

# 拉取镜像(比如拉取官方 Nginx 镜像)
docker pull nginx

# 启动容器(用 Nginx 镜像跑一个容器)
docker run -d -p 80:80 --name my_nginx nginx

# 查看正在运行的容器
docker ps

# 进入容器内部搞事情(比如进 Ubuntu 容器敲命令)
docker exec -it ubuntu_container bash

# 停止容器
docker stop my_nginx

# 删除容器(先得停掉!)
docker rm my_nginx

5. Dockerfile 是啥?

就是造镜像的说明书,用一堆指令告诉 Docker 怎么打包你的应用。
举个最简单的例子:

# 基础镜像(比如用 Python 3.10)
FROM python:3.10

# 把当前目录代码复制到容器里的 /app 目录
COPY . /app

# 设置工作目录
WORKDIR /app

# 安装依赖
RUN pip install -r requirements.txt

# 容器启动时执行的命令(比如运行 Python 脚本)
CMD ["python", "app.py"]

写完 docker build 就能生成镜像啦!


6. 实际应用场景

  • 开发环境统一:团队用同一个镜像,避免“我机器上能跑”的尴尬。
  • 微服务架构:每个服务单独打包成容器,方便扩缩容。
  • 灰度发布:快速替换线上服务版本,出问题秒回滚。
  • 云迁移:容器打包完,随便搬到 AWS/Azure 阿里云都行。

7. 常见坑点

  • 文件挂载问题:容器里的文件修改会同步到宿主机吗?用 -v 挂载目录时要注意权限!
  • 端口冲突:容器端口映射到宿主机时,如果宿主机端口被占,容器会直接报错。
  • 数据持久化:容器删了数据就没了!得用 ​Volume 或者绑定宿主机目录来保存数据。
  • 镜像臃肿:别装一堆没用的软件,不然镜像大得像头鲸鱼。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值