Docker命令大全

摘要

Docker命令大全 Docker 1. 基础信息 & 守护进程 docker --version # 查看版本 docker info # 查看docker系统信息 docker --help # 全局帮助 docker 子命令 --he...

Docker命令大全

Docker

1. 基础信息 & 守护进程

docker --version                    # 查看版本
docker info                         # 查看docker系统信息
docker --help                       # 全局帮助
docker 子命令 --help                 # 查看子命令帮助
systemctl start docker              # 启动docker(centos/ubuntu)
systemctl stop docker               # 停止docker
systemctl restart docker            # 重启docker
systemctl enable docker             # 设置开机自启

2. 镜像操作 image

docker images                       # 列出本地镜像
docker images -a                    # 列出所有镜像(含中间层)
docker pull nginx                   # 拉取镜像,默认latest
docker pull nginx:1.25
docker search nginx                 # 搜索镜像(不推荐,优先hub)

# 构建镜像
docker build -t myapp:1.0 .         # 当前目录Dockerfile构建,打标签
docker build -f ./Dockerfile.prod -t myapp:prod .

docker tag myapp:1.0 myapp:latest   # 给镜像新增标签

docker push myapp:1.0               # 推送镜像到仓库(私有仓库/harbor)
docker rmi 镜像id/镜像名             # 删除镜像
docker rmi -f 镜像id                # 强制删除
docker image prune                  # 清理悬空镜像 <none>
docker image prune -a               # 清理所有未被使用镜像

# 导入导出镜像
docker save -o myapp.tar myapp:1.0  # 导出镜像到tar包
docker load -i myapp.tar            # 从tar包导入镜像

3. 容器生命周期(核心run参数)

# run常用参数说明
# -d 后台运行 | --name 指定名字 | -p 宿主机:容器端口
# -v 挂载卷 | -e 环境变量 | --restart 重启策略
docker run -d --name nginx-demo -p 80:80 nginx
docker run -it --name ubuntu-demo ubuntu /bin/bash   # 交互式启动,进入终端

docker ps                           # 查看正在运行容器
docker ps -a                        # 查看所有容器(包含停止)
docker ps -q                        # 只输出容器id

docker start 容器名/id
docker stop 容器名/id               # 优雅停止(等待超时)
docker restart 容器名/id
docker kill 容器名/id               # 强制杀死容器
docker pause 容器名/id              # 暂停容器
docker unpause 容器名/id            # 恢复暂停
docker rm 容器id                    # 删除已停止容器
docker rm -f 容器id                 # 强制删除运行中容器
docker rm $(docker ps -aq)          # 删除全部容器(慎用)
docker rename old new               # 容器重命名

4. 容器内交互、日志、文件拷贝

docker logs 容器名                   # 查看日志
docker logs -f 容器名                # 实时跟踪日志
docker logs -f --tail 200 容器名    # 只跟踪最后200行

docker exec -it 容器id /bin/sh       # 进入运行中容器(推荐)
docker exec -it 容器id bash
docker attach 容器id                 # 附加到容器主进程(不推荐,退出会停容器)

docker top 容器id                   # 查看容器内进程
docker stats                        # 实时监控容器cpu/内存/IO
docker inspect 容器id                # 查看容器详细json信息(IP、挂载、配置)
docker port 容器id                   # 查看端口映射

# 文件拷贝 宿主机 <-> 容器
docker cp 容器id:/app/log ./log     # 容器文件拷贝到宿主机
docker cp ./config.yml 容器id:/app/  # 宿主机文件传到容器

docker diff 容器id                   # 查看容器内文件改动

5. 数据卷 volume(持久化)

docker volume ls                    # 列出数据卷
docker volume create my-data        # 创建数据卷
docker volume inspect my-data       # 查看卷详情
docker volume rm my-data            # 删除卷
docker volume prune                 # 清理未被使用的数据卷

# 使用卷启动示例
docker run -d -v my-data:/data nginx

6. 网络 network

docker network ls                   # 查看网络
docker network create my-net        # 创建自定义桥接网络
docker network inspect my-net
docker network connect my-net 容器名 # 容器加入网络
docker network disconnect my-net 容器名
docker network rm my-net
docker network prune                # 清理无用网络

7. 系统清理(日常运维,非常高频)

docker system df                    # 查看docker磁盘占用
docker system prune                 # 清理停止容器、悬空镜像、无用网络
docker system prune -a              # 清理全部未使用镜像(小心)
docker system prune --volumes       # 同时清理无用卷

8. Docker Compose(新版命令,docker compose 无短横线)

注意:新版是 docker compose,旧版 docker-compose 已废弃

docker compose up                   # 前台启动
docker compose up -d                # 后台启动服务(最常用)
docker compose up -d --build        # 先构建镜像再启动
docker compose down                 # 停止并删除容器、网络(默认保留volume)
docker compose down -v              # 停止并删除 + 删除数据卷(谨慎!)

docker compose ps                   # 查看compose服务状态
docker compose logs                 # 查看日志
docker compose logs -f              # 实时日志
docker compose logs -f service-name # 只看某个服务日志

docker compose build                # 构建镜像
docker compose pull                 # 拉取镜像
docker compose restart              # 重启所有服务
docker compose restart nginx
docker compose stop                 # 停止服务,不删除
docker compose start
docker compose exec nginx bash      # 进入compose内的容器
docker compose top
docker compose config               # 校验yml配置是否正确
docker compose ls                   # 列出当前运行的compose项目

9. 私有仓库 & 登录

docker login                        # 登录docker hub
docker login harbor.xxx.com         # 登录私有harbor仓库
docker logout

10. 高频 run 参数汇总(写脚本必背)

-d          # 后台守护运行
--name      # 容器名称
-p host:con # 端口映射
-v          # 挂载(卷/宿主机目录)
-e KEY=VAL  # 环境变量
--restart=always      # 容器退出自动重启
--restart=on-failure   # 异常退出才重启
--network              # 指定网络
--memory 512m         # 内存限制
--cpus 0.5             # cpu核数限制

需要我继续按这个一模一样的格式输出下一个:Nginx 吗?