欢迎进入Docker的世界!作为现代IT基础设施的核心技术之一,Docker能极大提升开发部署效率。以下是系统化的学习路径和实战指南:
容器与虚拟机的区别
Host OS → Docker Engine → Containers (App+A)
关键术语
ubuntu:20.04
)# 1. 卸载旧版本
sudo apt-get remove docker docker-engine docker.io containerd runc
# 2. 安装依赖
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
# 3. 添加官方GPG密钥
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# 4. 设置仓库
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 5. 安装Docker引擎
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 6. 验证安装
sudo docker run hello-world
类别 | 命令示例 | 说明 |
---|---|---|
镜像管理 | docker pull nginx:alpine |
拉取镜像 |
docker build -t myapp:v1 . |
构建镜像 | |
容器操作 | docker run -d -p 80:80 nginx |
启动容器(后台模式) |
docker exec -it [ID] bash |
进入运行中的容器 | |
状态查看 | docker ps -a |
查看所有容器 |
docker logs [ID] |
查看容器日志 | |
网络 | docker network create my_net |
创建自定义网络 |
创建Node.js示例应用
// app.js
const http = require('http');
const server = http.createServer((req, res) => {
res.end('Hello Docker!');
});
server.listen(3000);
编写Dockerfile
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["node", "app.js"]
构建并运行
docker build -t my-node-app .
docker run -p 3000:3000 -d my-node-app
访问 http://localhost:3000
查看结果
镜像优化技巧
安全实践
docker scan
)权限问题:将用户加入docker组
sudo usermod -aG docker $USER
newgrp docker # 立即生效
清理磁盘空间
docker system prune -a --volumes
国内加速镜像
// /etc/docker/daemon.json
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
掌握这些内容后,你已经跨入Docker的大门。接下来可以通过实际项目深化理解,比如尝试将公司的微服务架构容器化,或搭建自己的私有镜像仓库。遇到具体问题时,欢迎随时交流!