进阶实战:Docker 核心操作

在理解了容器底层原理后,我们需要通过 Docker 这个“管理大师”来实际操控它们。本章节将带你完成从环境搭建到应用部署的完整闭环。


1. 安装与免 Sudo 配置

sudo apt install docker.io
sudo pacman -S docker

默认执行 docker 命令需要 root。将当前用户加入 docker 组即可:

sudo usermod -aG docker $USER
# 重启系统或重新登录生效

2. 镜像 (Image) 的一生:Dockerfile 实战

Dockerfile 是构建镜像的脚本。

创建一个简单的 Node.js 应用镜像
# 1. 基础镜像
FROM node:18-alpine
 
# 2. 设置工作目录
WORKDIR /app
 
# 3. 复制依赖并安装
COPY package*.json ./
RUN npm install
 
# 4. 复制代码
COPY . .
 
# 5. 暴露端口并运行
EXPOSE 3000
CMD ["npm", "start"]

构建指令: docker build -t my-app:v1 .


3. 容器 (Container) 的生命周期管理

操作命令说明
创建并运行docker run -d -p 80:80 nginx-d 后台运行,-p 映射端口
查看运行中docker ps添加 -a 查看所有(含停止的)
进入容器docker exec -it <id> sh-it 交互式终端
查看日志docker logs -f <id>-f 实时追踪
删除资源docker rm -f <id>强杀并删除容器

4. 持久化与网络:容器的大动脉

4.1 数据卷 (Volumes)

容器销毁后,内部数据会丢失。使用数据卷将宿主机目录挂载进去:

docker run -v /opt/data:/var/lib/mysql mysql

4.2 网络 (Networks)

默认容器使用 bridge 模式。如果你想让两个容器互相通信,建议创建自定义网络:

docker network create my-net
docker run --network my-net --name web nginx

5. 结业练习

Navigation