系统设计白板面时间不够用?海外留学生如何掌控高难度架构节奏「蒸汽求职分享」
2026/6/4 13:50:16
https://www.runoob.com/docker/docker-tutorial.html
| 操作 | 命令 | 说明 |
|---|---|---|
| 启动 Docker 服务 | sudo systemctl start docker | 启动后台引擎 |
| 停止 Docker 服务 | sudo systemctl stop docker | 关闭后台服务 |
| 重启 Docker 服务 | sudo systemctl restart docker | 重启引擎 |
| 查看状态 | sudo systemctl status docker | 查看 daemon 运行状态 |
| 查看守护进程信息 | docker info | 显示引擎和配置 |
| 查看 Docker 日志(Linux) | sudo journalctl -u docker -f | 实时查看日志 |
| 操作 | 命令 | 说明 |
|---|---|---|
| 查看本地镜像 | docker images | 列出本地镜像 |
| 搜索镜像 | docker search nginx | 在 Docker Hub 搜索 |
| 拉取镜像 | docker pull nginx:latest | 下载镜像 |
| 删除镜像 | docker rmi nginx:latest | 删除指定镜像 |
| 删除全部镜像 | docker rmidocker images -q | docker images -q 是列出所有镜像id |
| 容器转化为镜像 | docker commit容器名称/ID镜像名称:版本 | |
| 保存镜像为压缩文件 | docker save -o myapp.tar myapp:1.0 | 导出镜像 |
| 从压缩文件加载镜像 | docker load -i myapp.tar | 导入镜像 |
| 从 dockerfile 构建镜像 | docker build -fdockerfile文件位置-t myapp:1.0 . | 若 Dockerfile 不在当前目录,就必须用-f明确路径,否则会报错找不到。最后的.表示构建上下文(即要打包进镜像的文件所在目录) |
| 操作 | 命令 | 说明 |
|---|---|---|
| 查看容器 | docker ps | 仅显示运行中容器 |
| 查看全部容器 | docker ps -a | 包括已停止的容器 |
| 创建并启动容器 | docker run -d --name=容器名称 -p 8080:80 nginx | -d 表示后台运行8080:80表示 “宿主机端口:容器端口” |
| 进入容器终端 | docker exec -it mynginx /bin/bash | 进入容器交互 |
| 停止容器 | docker stop 容器ID/容器名称 | |
| 启动容器 | docker start 容器ID/容器名称 | |
| 删除容器 | docker rm 容器ID/容器名称 | 删除已停止的容器 |
| 删除所有容器 | docker rmdocker ps -aq | docker ps -aq 表示所有的容器ID |
| 查看容器信息 | docker inspect 容器ID/容器名称 | |
| 查看日志 | docker logs -f mynginx | 实时输出容器日志 |
| 导出容器为文件 | docker export mynginx -o mynginx.tar | 导出为镜像文件 |
| 查看容器资源占用 | docker stats | 实时监控 CPU/内存使用 |
| 操作 | 命令 | 说明 |
|---|---|---|
| 创建卷 | docker volume create myvolume | 在 Docker 管理的宿主机空间创建卷 |
| 列出卷 | docker volume ls | 查看所有卷 |
| 查看卷详细信息 | docker volume inspect myvolume | 显示路径、挂载信息等 |
| 删除卷 | docker volume rm myvolume | 删除指定卷(确保没有容器在使用) |
| 清理未使用卷 | docker volume prune -f | 删除所有未挂载的卷 |
| 操作 | 命令 | 说明 |
|---|---|---|
| 容器挂载宿主机目录 | docker run -v /host/path:/container/path ubuntu | -v 将宿主机目录挂载到容器 |
| 容器挂载命名卷 | docker run -v myvolume:/data ubuntu | -v 将卷挂载到容器路径 |
| 多容器共享卷 | docker run --volumes-from 数据卷容器名称 ubuntu | –volumes-from 可以让多个容器挂载数据卷容器 |
| 临时匿名卷 | docker run -v /data ubuntu | 这里没写宿主机位置,故宿主机实际路径是 Docker 管理的默认位置,可以通过 docker inspect 查到 |
注意事项:
注意事项:
-v选项。思考:
- Docker 镜像本质是什么?
- 本质是一个分层的文件系统
- Docker 中一个centos镜像为什么只有200MB,而一个centos操作系统的iso文件要几个G?
- Centos的iso镜像文件包含bootfs和rootfs,而docker的centos镜像复用操作系统的bootfs,只有rootfs和其他镜像层
- Docker 中一个tomcat镜像为什么有500MB,而一个tomcat安装包只有70多MB?
- 由于docker中镜像是分层的,tomcat虽然只有70多MB,但他需要依赖于父镜像和基础镜像,所有整个对外暴露的tomcat镜像大小500多MB
Docker 镜像本质是分层的tar文件集合(分层的文件系统),每层包含文件系统差异。
不同平台(Linux vs Windows)可能使用不同的基础镜像层(linux/amd64vswindows/amd64)。
Linux文件系统由bootfs和rootfs两部分组成:
bootfs:包含 bootloader(引导加载程序)和 kernel(内核)rootfs: root 文件系统,包含的就是典型 Linux 系统中的 /dev、/proc、/bin、/etc 等标准目录和文件bootfs基本一样,而rootfs不同,如 ubuntu、centos 等https://www.runoob.com/docker/docker-dockerfile.html
https://www.runoob.com/docker/docker-compose.html
docker compose(空格),而不是老的docker-compose(横杠)。| 命令 | 作用 |
|---|---|
| docker compose up -d | 启动服务(后台运行) |
| docker compose up | 启动服务(前台日志) |
| docker compose down | 关闭并删除容器、网络 |
| docker compose stop | 停止容器但不删除 |
| docker compose start | 启动已存在但停止的容器 |
| docker compose restart | 重启所有服务 |
| 命令 | 用途 |
|---|---|
| docker compose up -d --build | 改了 Dockerfile 后重建镜像再起 |
| docker compose up -d --force-recreate | 强制重建所有容器(即使没变) |
| docker compose up -d service_name | 单独重建某个容器 |
| docker compose pull | 拉取最新镜像 |
实战例子:只强制重建 nginx,不动其他服务。
docker compose up -d --force-recreate nginx| 命令 | 用途 |
|---|---|
| docker compose ps | 查看当前 compose 的容器 |
| docker compose logs | 查看所有日志 |
| docker compose logs -f service_name | 追踪某个服务的日志 |
| docker compose top | 查看容器中的进程 |
| 命令 | 用途 |
|---|---|
| docker compose exec 容器名 bash | 进入容器终端(容器已运行) |
| docker compose run 容器名 bash | 运行并临时创建一个新容器 |
推荐:
docker compose exec myapp bash| 命令 | 作用 |
|---|---|
| docker compose down -v | 删除容器 + 网络 + volumes |
| docker compose down --rmi all | 删除镜像 |
| docker compose down --volumes | 只删 volumes |
企业里一般不会轻易删 volumes。
| 命令 | 用途 |
|---|---|
| docker compose config | 校验并展示规范化配置 |
这是开发必备命令,可以提前发现 YAML 格式错误。
| 命令 | 用途 |
|---|---|
| docker compose run --rm service command | 运行一次性命令,用完自动删容器 |
例子:
docker compose run --rm myapp ls /app| 命令 | 用途 |
|---|---|
| docker compose stop | 停止但不删容器 |
| docker compose start | 重启停止的容器 |