Docker容器是一种轻量级、可移植的软件打包技术,它将应用程序及其所有依赖项(库、环境变量、配置文件等)打包到一个标准化的单元中,确保应用在不同计算环境中能够一致运行。
nginx:latest
, ubuntu:20.04
# Ubuntu示例
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
# 拉取镜像
docker pull nginx:latest
# 运行容器
docker run -d -p 80:80 --name my-nginx nginx
# 查看运行中的容器
docker ps
# 查看所有容器
docker ps -a
# 停止容器
docker stop my-nginx
# 启动已停止的容器
docker start my-nginx
# 进入容器
docker exec -it my-nginx bash
# 删除容器
docker rm my-nginx
# 构建镜像
docker build -t my-app:v1 .
Dockerfile是构建镜像的脚本文件,示例:
# 基础镜像
FROM python:3.8-slim
# 设置工作目录
WORKDIR /app
# 复制依赖文件
COPY requirements.txt .
# 安装依赖
RUN pip install -r requirements.txt
# 复制应用代码
COPY . .
# 暴露端口
EXPOSE 5000
# 启动命令
CMD ["python", "app.py"]
bash
docker volume create my-vol
docker run -v my-vol:/data my-image
bash
docker run -v /host/path:/container/path my-image
用于定义和运行多容器应用的工具,使用YAML文件配置:
version: '3'
services:
web:
image: nginx
ports:
- "80:80"
db:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: example
启动命令:
docker-compose up -d
当容器规模扩大时,需要容器编排工具: - Kubernetes:最流行的容器编排平台 - Docker Swarm:Docker原生编排工具 - Mesos:通用集群管理系统
--read-only
)Docker容器技术彻底改变了应用程序的开发、交付和运行方式。通过提供标准化的打包和运行环境,Docker解决了"在我机器上能运行"的经典问题,提高了开发效率,简化了运维工作。随着云原生技术的发展,Docker已成为现代IT基础设施的重要组成部分。
掌握Docker技术对于现代开发者和运维人员来说已成为必备技能,它不仅适用于大型分布式系统,也能为个人开发者和小型项目带来显著效益。