按ESC键关闭
岚岚天空
首页
文章
心情随笔
技术杂谈
学习笔记
书签
关于
联系
岚岚天空
首页
文章
心情随笔
技术杂谈
学习笔记
书签
关于
联系
技术杂谈
Docker & Docker Compose 常用命令参考
岚岚天空
03月02日 11:24
5 min
119 浏览
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 串站问题解决