Docker 🚢 简介
什么是 Docker? 🤔
Docker 是一个开源的容器化平台,它能够简化应用程序的开发、交付和运行过程。容器技术使得开发者能够在任何环境中快速部署和运行应用程序,而无需担心环境配置问题。通过将应用程序及其依赖项打包到一个独立的容器中,Docker 实现了 跨平台运行 和 环境一致性
Docker 的基本概念 🔑
容器 (Container) 🛳️:容器是轻量级、可移植的虚拟环境,它包含了应用程序及其所有依赖项。容器中的应用与宿主操作系统隔离,但共享宿主的内核
镜像 (Image) 📸:镜像是容器的模板,包含了应用程序及其所有必需的库、依赖和环境变量等。镜像是只读的,容器是镜像的可执行实例
Dockerfile 📝:Dockerfile 是一个文本文件,包含了构建 Docker 镜像的所有步骤,例如操作系统环境的安装、应用程序的复制等
Docker Hub 🌐:Docker Hub 是一个公共的 Docker 镜像库,用户可以上传、分享和下载 Docker 镜像
容器引擎 (Docker Engine) 🔧:Docker 引擎是一个客户端-服务器应用程序,负责容器的构建、运行和管理。它包含了 Docker 守护进程和命令行客户端
Docker 的优势 💡
快速部署 🚀:Docker 容器启动速度非常快,因为它不需要虚拟化整个操作系统,只需要加载应用程序和依赖项
跨平台 🌍:Docker 容器可以在不同操作系统之间无缝迁移,确保开发环境和生产环境的一致性
资源隔离 🔒:容器提供了应用程序级别的资源隔离,不同容器之间不会互相干扰
版本控制 🔄:Docker 镜像支持版本控制,可以方便地管理和回滚应用程序的版本
与其他容器技术对比 🆚
虽然 Docker 是当前最流行的容器平台之一,但它并不是唯一的选择。以下是 Docker 与其它主流容器技术(如 Podman、containerd、LXC 等)的对比:

💡 Docker 更适合快速开发、测试与部署应用,适合多数开发者和小团队;而 Podman、containerd 更适合对安全性或资源调度有更高要求的系统级用户或生产环境;LXC 更像“轻量虚拟机”,适用于复杂服务或系统仿真。
Docker 基本命令 📜
Docker 提供了一些常用命令来管理容器和镜像,以下是一些基本命令:
1
| docker pull <image_name>
|
1
| docker build -t <image_name> .
|
1
| docker run -d -p <host_port>:<container_port> <image_name>
|
1
| docker stop <container_id>
|
1
| docker rm <container_id>
|
如何使用 Docker 🛠️
安装 Docker 🖥️
你可以通过 Docker 官网 获取适合自己操作系统的安装包。安装过程非常简单,只需按照官方指引进行操作
运行一个简单的容器 🎉
- 拉取官方 Nginx 镜像:
- 运行 Nginx 容器:
1
| docker run -d -p 80:80 nginx
|
这条命令会下载 Nginx 镜像,并在后台运行一个容器,映射宿主机的 80 端口到容器的 80 端口。你可以通过浏览器访问 http://localhost 来查看 Nginx 的欢迎页面
构建自己的 Docker 镜像 🏗️
- 创建一个
Dockerfile:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| FROM node:14
WORKDIR /usr/src/app
COPY . .
RUN npm install
EXPOSE 8080
CMD ["node", "app.js"]
|
- 构建镜像:
1
| docker build -t my-node-app .
|
- 运行容器:
1
| docker run -d -p 8080:8080 my-node-app
|
查看 Docker 容器 🧐
停止和删除容器 ❌
- 停止容器:
1
| docker stop <container_id>
|
- 删除容器:
1
| docker rm <container_id>
|
- 删除镜像:
总结 🎯
Docker 作为一种轻量级的容器技术,极大地简化了应用程序的开发、测试、部署和运行过程。通过 Docker,开发者可以保证应用在任何环境中都能一致运行,提升了开发效率和跨平台兼容性。掌握 Docker 是现代 DevOps 和 CI/CD 流程中不可或缺的一部分