Docker从入门到实践:全面掌握容器化技术
一、Docker核心概念与价值
Docker是一种轻量级的容器化技术,它通过三大核心组件实现应用与环境的隔离打包:
-
镜像(Image):只读模板,包含运行容器所需的所有文件和配置
-
容器(Container):镜像的运行实例,可以在其中运行应用程序
-
Dockerfile:自动化构建镜像的脚本文件
Docker的主要优势体现在三个方面:轻量级(共享主机内核,资源消耗低)、可移植性(跨平台运行)和一致性(环境无差异)
。与传统虚拟机相比,Docker容器不需要额外的操作系统层,因此启动速度更快,资源利用率更高。
二、安装与验证Docker环境
安装Docker是第一步,以下是不同操作系统下的安装方法:
Linux系统(如Ubuntu)安装命令:
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
sudo systemctl start docker
Windows/macOS:直接下载Docker Desktop并安装。
验证安装是否成功:
docker run hello-world
如果屏幕显示"Hello from Docker!",说明Docker已正确安装并可以正常工作
。
三、Docker基础操作命令
掌握以下核心命令是使用Docker的基础:
1. 镜像管理
docker pull nginx # 拉取镜像
docker images # 查看本地镜像
docker rmi 镜像名称:标签 # 删除镜像
2. 容器操作
docker run -d -p 8080:80 --name my_container nginx # 运行容器
docker ps # 查看运行中的容器
docker stop <容器ID> # 停止容器
docker rm <容器名> # 删除容器
docker exec -it my_container /bin/bash # 进入容器
-d参数表示后台运行,-p指定端口映射(主机端口:容器端口),--name为容器命名。
四、实战案例:从简单到复杂
案例1:部署Nginx Web服务器
docker pull nginx
docker run -d -p 8080:80 --name webserver nginx
访问 http://localhost:8080即可看到Nginx默认页面。
案例2:部署MySQL数据库
docker pull mysql:5.7
docker run -d -p 3306:3306 --name mydb -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
使用数据库客户端连接localhost:3306即可访问。
案例3:构建自定义Python应用镜像
创建Dockerfile文件:
dockerfile
FROM python:3.9-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["python", "app.py"]
构建并运行镜像:
docker build -t my-python-app .
docker run -d -p 3000:3000 my-python-app
五、数据持久化与网络配置
数据持久化
默认情况下,容器删除后数据也会丢失。使用数据卷可实现数据持久化:
docker run -d -v mydata:/var/lib/mysql mysql:5.7
这样即使删除容器,数据也会保存在mydata卷中。
网络配置
创建自定义网络实现容器间通信:
docker network create -d bridge my_network
docker run --network=my_network redis
六、进阶工具:Docker Compose多容器编排
当应用需要多个服务(如Web服务+数据库)时,Docker Compose可一键启动整个环境。创建docker-compose.yml文件:
version: '3'
services:
web:
image: nginx
ports: ["80:80"]
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: 123456
运行命令:
docker-compose up -d
更多推荐



所有评论(0)