运维老司机私藏的Docker命令清单,建议收藏!

Docker常用命令

无论是开发、测试还是运维,Docker已成为现代技术栈的标配。面对众多命令,整理了最实用的Docker命令清单,覆盖90%日常使用场景,助你快速成为容器化高手!

镜像管理

镜像构建
// -t 指定镜像名称和标签、构建上下文环境(包含Dockerfile的目录)
docker build -t myapp:1.0 .  
// 指定Dockerfile路径
docker build -f ./dockerfiles/Dockerfile -t myapp:prod .     
镜像拉取
// 拉取指定版本
docker pull nginx:1.23  
// 默认拉取latest标签
docker pull redis       
镜像推送Docker仓库
// 推送镜像到仓库registry.example.com
docker push registry.example.com/my-app:1.0
   
镜像导出
//  保存单个镜像
docker save -o my-image.tar my-app:1.0
// 保存多个镜像
docker save -o all-images.tar redis:7.0 postgres:15
// 使用gzip压缩
docker save my-app:1.0 | gzip > my-app-1.0.tar.gz   
镜像导入
// 从tar文件导入
docker load -i my-image.tar
或
docker load < my-image.tar

// 加载压缩镜像
gunzip -c my-app-1.0.tar.gz | docker load 
镜像查看
// 查看本地镜像
docker images        
// 显示所有镜像(含中间层)
docker image ls -a      
// 查看镜像详细信息
docker inspect nginx    
镜像清理
//  删除指定镜像
docker rmi nginx:1.23  
//  删除dangling镜像(没有标签且没有被容器引用的镜像)
docker image prune     
// 删除所有关闭的容器以及dangling镜像(慎用!!!)
docker system prune -a  

容器操作

启动容器
// 后台运行
docker run -d --name web -p 80:80 nginx  
//  交互式运行
docker run -it ubuntu /bin/bash         

常用参数:

  • • -d:后台运行

  • • -it:交互模式

  • • --name:自定义容器名

  • • -p:端口映射(主机端口:容器端口)

  • • -v:目录挂载(主机目录:容器目录)

容器生命周期管理
// 启动已停止容器
docker start web        
// 停止容器
docker stop web         
// 重启容器
docker restart web      
//  强制终止
docker kill web        
// 删除容器
docker rm web           
// 强制删除运行中容器
docker rm -f web         
容器监控与调试
// 查看运行中容器
docker ps              
// 查看所有容器
docker ps -a           
// 查看容器日志
docker logs web        
// 查看容器实时追踪日志
docker logs -f web     
// 查看容器进程
docker top web         
// 实时资源监控   
docker stats               

进入容器

// 进入运行中容器
docker exec -it web /bin/bash  
// 附加到运行中容器(退出会关闭)
docker attach web                  
容器、宿主机文件目录复制
// 宿主机 → 容器
docker cp /host/path/file.txt container:/container/path/

// 容器 → 宿主机
docker cp container:/app/logs/info.log /host/      

// 复制目录到容器
docker cp -a /host/data/ container:/opt/data/

// 从容器复制目录到宿主机
docker cp -a container:/var/log/ /host/log/

网络管理

网络操作
// 列出网络
docker network ls       
// 创建自定义网络
docker network create mynet 
// 查看网络详情     
docker network inspect bridge               
容器网络连接
// 将容器app1连接mynet网络
docker run -d --net=mynet --name app1 nginx
// 将容器加入网络 
docker network connect mynet web              

数据持久化

数据卷操作
// 创建数据卷
docker volume create db_data 
// 列出数据卷
docker volume ls               
目录挂载
// 挂载数据卷
docker run -v db_data:/var/lib/mysql mysql

// 挂载主机目录
docker run -v /home/user/app:/app nginx       

多容器编排利器

核心操作
// 启动服务
docker-compose up                   
// 后台启动
docker-compose up -d                
// 停止并删除容器
docker-compose down               
// 查看服务状态  
docker-compose ps                      
docker-compose文件
version: '3'
services:
  web:
    image: nginx:1.23
    ports:
      - "8080:80"
  db:
    image: postgres:15
    volumes:
      - db_data:/var/lib/postgresql/data
                   

高阶技巧

批量操作
// 停止所有容器
docker stop $(docker ps -q)
// 删除所有容器
docker rm $(docker ps -aq)
// 删除所有镜像
docker rmi $(docker images -q)                
容器资源限制
docker run -d --memory=500m --cpus=1.5 nginx                
容器健康检查
docker run --health-cmd="curl -f http://localhost || exit 1" nginx                  

你可能感兴趣的:(干货,docker)