按ESC键关闭
岚岚天空
首页
文章
心情随笔
技术杂谈
学习笔记
书签
AI工具
IP工具
学习文档
图片视频
网站模板
开源系统
关于
联系
岚岚天空
首页
文章
心情随笔
技术杂谈
学习笔记
书签
AI工具
IP工具
学习文档
图片视频
网站模板
开源系统
关于
联系
技术杂谈
Docker & Docker Compose 常用命令参考
岚岚天空
03月02日 11:24
5 min
178 浏览
0 评论
# Docker & Docker Compose 常用命令参考 ## Docker 常用命令 ### 镜像管理 ```bash # 搜索镜像 docker search <镜像名> # 拉取镜像 docker pull <镜像名>:<标签> # 查看本地镜像 docker images docker image ls # 删除镜像 docker rmi <镜像ID或名称> docker image rm <镜像ID或名称> # 构建镜像 docker build -t <镜像名>:<标签> <路径> docker build -f
-t <镜像名>:<标签> . # 给镜像打标签 docker tag <源镜像> <新镜像名>:<标签> # 推送镜像到仓库 docker push <镜像名>:<标签> ``` ### 容器管理 ```bash # 运行容器 docker run [选项] <镜像名> docker run -d -p 8080:80 --name mycontainer nginx docker run -it --rm ubuntu bash # 常用运行选项: # -d, --detach 后台运行 # -p, --publish 端口映射 (主机:容器) # -v, --volume 挂载卷 (主机:容器) # -e, --env 设置环境变量 # --name 指定容器名称 # --rm 容器退出后自动删除 # -it, --interactive --tty 交互式终端 # --restart 重启策略 (no|on-failure|always|unless-stopped) # 查看运行中的容器 docker ps # 查看所有容器(包括已停止) docker ps -a # 查看容器详细信息 docker inspect <容器ID或名称> # 查看容器日志 docker logs <容器ID或名称> docker logs -f --tail 100 <容器ID或名称> # 停止容器 docker stop <容器ID或名称> # 启动已停止的容器 docker start <容器ID或名称> # 重启容器 docker restart <容器ID或名称> # 删除容器 docker rm <容器ID或名称> docker rm -f <容器ID或名称> # 强制删除运行中的容器 # 暂停/恢复容器 docker pause <容器ID或名称> docker unpause <容器ID或名称> # 进入运行中的容器 docker exec -it <容器ID或名称> bash docker exec -it <容器ID或名称> sh # 在容器中执行命令 docker exec <容器ID或名称> <命令> # 查看容器资源使用情况 docker stats # 查看容器进程 docker top <容器ID或名称> # 从容器复制文件到主机 docker cp <容器ID或名称>:/容器路径 /主机路径 # 从主机复制文件到容器 docker cp /主机路径 <容器ID或名称>:/容器路径 # 导出容器为镜像 docker commit <容器ID或名称> <新镜像名>:<标签> # 导出/导入容器 docker export <容器ID或名称> > container.tar cat container.tar | docker import - <新镜像名>:<标签> ``` ### 网络管理 ```bash # 查看网络 docker network ls # 创建网络 docker network create <网络名> docker network create --driver bridge <网络名> # 查看网络详情 docker network inspect <网络名> # 连接容器到网络 docker network connect <网络名> <容器名> # 断开容器网络连接 docker network disconnect <网络名> <容器名> # 删除网络 docker network rm <网络名> ``` ### 卷管理 ```bash # 查看卷 docker volume ls # 创建卷 docker volume create <卷名> # 查看卷详情 docker volume inspect <卷名> # 删除卷 docker volume rm <卷名> # 删除未使用的卷 docker volume prune ``` ### 系统管理 ```bash # 查看 Docker 系统信息 docker info # 查看 Docker 版本 docker --version docker version # 查看磁盘使用情况 docker system df # 清理未使用的资源 docker system prune # 清理所有未使用的资源(包括未使用的镜像) docker system prune -a # 查看事件 docker events ``` ### 镜像导出/导入 ```bash # 导出镜像 docker save -o image.tar <镜像名>:<标签> # 导入镜像 docker load -i image.tar ``` --- ## Docker Compose 常用命令 ### 基本命令 ```bash # 启动服务(创建并启动容器) docker-compose up docker-compose up -d # 后台运行 docker-compose up --build # 重新构建镜像后启动 # 停止服务 docker-compose stop # 停止并删除容器、网络 docker-compose down # 停止并删除容器、网络、卷 docker-compose down -v # 停止并删除容器、网络、镜像 docker-compose down --rmi all # 重启服务 docker-compose restart # 暂停/恢复服务 docker-compose pause docker-compose unpause # 查看运行中的服务 docker-compose ps # 查看服务日志 docker-compose logs docker-compose logs -f # 跟踪日志输出 docker-compose logs -f --tail=100 <服务名> docker-compose logs <服务名> # 查看各个服务容器运行的进程 docker-compose top # 查看服务输出 docker-compose events # 进入容器 docker-compose exec <服务名> bash docker-compose exec <服务名> sh # 在服务中执行一次性命令 docker-compose run <服务名> <命令> docker-compose run --rm <服务名> <命令> # 构建或重建服务 docker-compose build docker-compose build --no-cache <服务名> docker-compose build --parallel # 并行构建 # 拉取服务镜像 docker-compose pull # 推送服务镜像 docker-compose push # 查看服务之间或服务与容器之间的链接 docker-compose ps -q # 仅显示容器ID ``` ### 配置与验证 ```bash # 验证并查看 Compose 文件 docker-compose config # 验证 Compose 文件语法 docker-compose config -q # 查看帮助 docker-compose --help docker-compose <命令> --help # 指定配置文件 docker-compose -f <配置文件路径> up docker-compose -f docker-compose.yml -f docker-compose.override.yml up # 指定项目名称 docker-compose -p <项目名> up # 在多个环境中使用 docker-compose -f docker-compose.prod.yml up -d ``` ### 扩展命令 ```bash # 扩展服务的容器数量 docker-compose up -d --scale <服务名>=<数量> # 查看服务端口绑定 docker-compose port <服务名> <端口> # 显示服务绑定的端口 docker-compose ps --services ``` ### 常用场景示例 ```bash # 开发环境启动 docker-compose up # 生产环境启动(使用指定配置) docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d # 重新构建并启动 docker-compose up -d --build # 查看实时日志 docker-compose logs -f # 重启特定服务 docker-compose restart <服务名> # 进入特定服务容器 docker-compose exec web bash # 执行数据库迁移 docker-compose run --rm web npm run migrate # 清理所有资源 docker-compose down -v --rmi all ``` --- ## Docker Compose 文件结构参考 ### 基本结构 ```yaml version: '3.8' # 或 '3'(最新版本) services: web: build: . ports: - "8080:80" environment: - NODE_ENV=production depends_on: - db networks: - frontend - backend db: image: postgres:13 volumes: - db-data:/var/lib/postgresql/data environment: POSTGRES_PASSWORD: example networks: - backend networks: frontend: backend: volumes: db-data: ``` ### 常用配置选项 | 选项 | 说明 | |------|------| | `image` | 指定镜像 | | `build` | 从 Dockerfile 构建镜像 | | `command` | 覆盖容器启动命令 | | `ports` | 端口映射 | | `expose` | 暴露端口给链接服务 | | `environment` | 环境变量 | | `volumes` | 挂载卷或主机目录 | | `depends_on` | 服务依赖 | | `networks` | 连接的网络 | | `restart` | 重启策略 | | `container_name` | 自定义容器名称 | --- ## 最佳实践 1. **使用多阶段构建**减小镜像大小 2. **使用 `.dockerignore`** 排除不必要的文件 3. **不要在容器中存储重要数据**(使用卷) 4. **最小化镜像层数** 5. **使用特定版本标签**而非 `latest` 6. **定期清理未使用的资源** 7. **使用健康检查**确保容器正常运行 8. **合理配置资源限制**(memory, cpu) --- ## 常见问题排查 ```bash # 查看容器详细信息 docker inspect <容器ID> # 查看容器日志排查问题 docker logs -f --tail=100 <容器ID> # 测试网络连通性 docker exec <容器ID> ping <另一个容器名> # 检查端口监听 docker exec <容器ID> netstat -tulpn # 或 docker exec <容器ID> ss -tulpn # 检查磁盘空间 docker system df # 清理空间 docker system prune -a --volumes ```
Share this:
上一篇
Git分支迁移指南:将本地develop分支推送到新远程仓库
下一篇
域名接入 Cloudflare + 宝塔多站点 HTTPS 串站问题解决