Docker 容器总结

一、Docker 容器概述

容器是一个正在运行的进程,具有额外的封装功能,使其与主机和其他容器隔离。

核心特性:

  • 每个容器都有自己专用的文件系统
  • 文件系统由 Docker 镜像提供
  • 包含运行应用程序所需的所有内容
  • 支持进程隔离和资源限制

二、容器生命周期管理

1. 创建容器

docker create -it <镜像名>
  • -i:保持标准输入打开
  • -t:分配伪终端
  • 创建后容器处于停止状态

2. 启动容器

docker start <容器ID/名称>

3. 创建并启动容器

docker run -it <镜像名> /bin/bash

等价于 create + start

4. 暂停与恢复

# 暂停运行中的容器
docker pause <容器ID/名称>

# 恢复暂停的容器
docker unpause <容器ID/名称>

5. 停止容器

docker stop <容器ID/名称>

6. 清理停止的容器

docker container prune

三、容器交互操作

1. 进入容器的方式

不推荐使用(退出会导致容器停止):

docker attach <容器ID/名称>

推荐使用(退出不会停止容器):

docker exec -it <容器ID/名称> /bin/bash

2. 后台运行容器

docker run -itd --name <容器名> <镜像名> /bin/bash

四、容器删除

基本删除

# 只能删除停止的容器
docker rm <容器ID/名称>

强制删除

# 删除运行中的容器
docker rm -f <容器ID/名称>

五、容器端口映射

1. 随机端口映射

docker run --name <容器名> -itd -P <镜像名>

将容器端口映射到宿主机的随机端口

2. 指定端口映射

docker run --name <容器名> -itd -p <宿主机端口>:<容器端口> <镜像名>

六、容器日志与信息查看

1. 查看容器日志

docker logs <容器名>

2. 查看容器详细信息

docker inspect <容器名>

3. 查看特定信息

docker inspect -f "{{.NetworkSettings.IPAddress}}" <容器名>

七、容器数据管理

1. 文件复制

# 从宿主机复制到容器
docker container cp <本地路径> <容器ID>:<容器路径>

# 从容器复制到宿主机
docker container cp <容器ID>:<容器路径> <本地路径>

2. 查看文件变更

docker container diff <容器ID>

3. 查看端口映射

docker container port <容器ID>

八、容器导入导出

1. 导出容器

docker export -o <文件名>.tar <容器ID>
# 或使用重定向
docker export <容器ID> > <文件名>.tar

2. 导入为镜像

docker import <文件名>.tar <新镜像名>:<标签>

九、实战案例:Nginx 容器部署

1. 基础部署

# 搜索镜像
docker search nginx

# 拉取镜像
docker pull nginx

# 运行容器
docker run --name nginx-test -p 80:80 -itd nginx:latest

2. 高级部署(目录映射)

# 创建目录结构
mkdir -p ~/nginx/www ~/nginx/logs ~/nginx/conf

# 复制容器配置文件
docker cp <容器ID>:/etc/nginx/nginx.conf ~/nginx/conf/

# 运行带目录映射的容器
docker run -itd -p 20000:80 --name nginx-test-1 \
  -v ~/nginx/www:/usr/share/nginx/html \
  -v ~/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
  -v ~/nginx/logs:/var/log/nginx \
  nginx:latest

十、关键要点总结

  1. 容器本质:正在运行的进程,具有隔离的文件系统
  2. 生命周期:create → start → run → pause/unpause → stop
  3. 交互方式:推荐使用 exec 而非 attach
  4. 删除限制:只能删除停止的容器,运行中的需要 -f 参数
  5. 端口映射-P 随机端口,-p 指定端口
  6. 数据持久化:通过目录挂载实现数据持久化
  7. 容器迁移:使用 export/import 实现容器迁移
  8. 日志管理:使用 logs 命令查看容器日志
  9. 镜像与容器关系:镜像是静态定义,容器是运行时实体
  10. 最佳实践:删除容器前确保其处于停止状态

十一、常用命令速查

操作 命令
创建容器 docker create -it <镜像>
启动容器 docker start <容器>
运行容器 docker run -it <镜像>
进入容器 docker exec -it <容器> /bin/bash
停止容器 docker stop <容器>
删除容器 docker rm <容器>
查看日志 docker logs <容器>
端口映射 docker run -p 主机端口:容器端口
导出容器 docker export <容器> > file.tar
导入镜像 docker import file.tar 镜像:标签
Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐