Docker快速入门与应用
1. 什么是 Docker?
Docker 就像一个“魔法箱子”,可以把你开发的应用(代码、环境、配置)打包成一个标准化的容器,这个容器可以在任何支持 Docker 的系统上运行,无需担心环境差异导致的问题。
类比:想象你要搬家,把衣服、家具、电器全部装进标准尺寸的集装箱。无论用船、火车还是卡车运输,集装箱都能被统一处理。Docker 容器就是这个“集装箱”,你的应用是里面的物品,Docker 引擎是运输工具。
2. Docker 的核心概念
镜像(Image):容器的“模板”,比如一个装好 Python 和代码的镜像。
容器(Container):镜像运行时的实例(就像“启动一个程序”)。
仓库(Registry):存储镜像的地方,比如 Docker Hub(类似手机的应用商店)。
如何在 Linux 上安装 Docker?
步骤 1:安装 Docker
以 Ubuntu/Debian 为例(其他系统类似):
1. 卸载旧版本(如有)
sudo apt remove docker docker-engine docker.io containerd runc
2. 安装依赖工具
sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common
3. 添加 Docker 官方 GPG 密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
4. 添加仓库
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
5. 安装 Docker
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io
6. 验证安装
sudo docker run hello-world
如果看到 Hello from Docker!,说明安装成功!
如何使用 Docker?
场景 1:运行一个 Nginx 容器
拉取镜像(从 Docker Hub)
docker pull nginx
运行容器(映射主机 8080 端口到容器的 80 端口)
docker run -d -p 8080:80 --name my-nginx nginx
访问 http://localhost:8080 即可看到 Nginx 欢迎页
场景 2:自定义镜像(Dockerfile)
1.创建一个 Dockerfile 文件:
# 使用 Python 官方镜像作为基础
FROM python:3.9
# 拷贝代码到容器
COPY app.py /app/
# 安装依赖
RUN pip install flask
# 设置启动命令
CMD ["python", "/app/app.py"]
2.构建镜像并运行:
docker build -t my-python-app .
docker run -d -p 5000:5000 my-python-app
场景 3:数据持久化(挂载目录)
将主机的 /data 目录挂载到容器的 /app/data
docker run -d -v /data:/app/data --name my-data-container nginx
常用命令速查
命令 作用
docker ps 查看运行中的容器
docker images 查看本地镜像
docker stop <容器名> 停止容器
docker rm <容器名> 删除容器
docker rmi <镜像名> 删除镜像
进阶工具:Docker Compose
用于管理多个容器(如同时运行 Web + 数据库):
1安装 Docker Compose:
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
2创建 docker-compose.yml 文件:
version: "3"
services:web:image: nginxports:- "8080:80"db:image: mysqlenvironment:MYSQL_ROOT_PASSWORD: 123456
启动服务:
docker-compose up -d
为什么用 Docker?
环境一致性:开发、测试、生产环境完全一致。
快速部署:秒级启动容器。
资源高效:多个容器共享系统内核,比虚拟机更轻量。