【Docker】【1.docker常用命令总结】
·
docker 常用命令
容器生命周期管理
运行容器
# 运行新容器
docker run -it ubuntu:18.04 bash
# 运行并命名容器
docker run --name my_container image_name
# 运行在后台
docker run -d --name my_container image_name
# 运行并自动删除(退出后删除)
docker run --rm -it image_name
# 运行并挂载目录
docker run -v /host/path:/container/path image_name
# 运行并映射端口
docker run -p 8080:80 image_name
# 特权模式(解决硬链接等问题)
docker run --privileged image_name
启动/停止容器
# 启动已停止的容器
docker start container_name
# 停止运行中的容器
docker stop container_name
# 重启容器
docker restart container_name
# 暂停容器
docker pause container_name
# 恢复容器
docker unpause container_name
进入容器
# 进入运行中的容器
docker exec -it container_name bash
# 以 root 用户进入
docker exec -it --user root container_name bash
# 在容器内执行单条命令
docker exec container_name ls -la
镜像管理
查看镜像
# 查看所有镜像
docker images
# 查看镜像详情
docker image ls
# 查看镜像历史
docker history image_name
拉取/推送镜像
# 拉取镜像
docker pull ubuntu:18.04
# 推送镜像到仓库
docker push username/image_name:tag
# 从 tar 文件加载镜像
docker load -i image.tar
# 保存镜像为 tar 文件
docker save -o image.tar image_name
删除镜像
# 删除镜像
docker rmi image_name
# 强制删除
docker rmi -f image_name
# 删除所有镜像
docker rmi -f $(docker images -aq)
# 删除悬空镜像
docker image prune
查看信息
# 查看运行中的容器
docker ps
# 查看所有容器(包括停止的)
docker ps -a
# 查看最近创建的容器
docker ps -l
# 查看容器详细信息
docker inspect container_name
# 查看容器日志
docker logs container_name
# 实时查看日志
docker logs -f container_name
查看系统信息
# 查看 Docker 系统信息
docker system df
# 查看详细磁盘使用
docker system df -v
# 查看 Docker 版本
docker version
# 查看 Docker 信息
docker info
构建镜像
Dockerfile 构建
# 构建镜像
docker build -t my_image .
# 构建时不使用缓存
docker build --no-cache -t my_image .
# 指定 Dockerfile 路径
docker build -f Dockerfile.dev -t my_image .
从容器创建镜像
# 提交容器更改创建新镜像
docker commit container_name new_image_name
# 导出容器
docker export container_name > container.tar
# 导入为镜像
docker import container.tar image_name
数据管理
卷管理
# 创建数据卷
docker volume create my_volume
# 查看数据卷
docker volume ls
# 删除数据卷
docker volume rm my_volume
# 删除未使用的数据卷
docker volume prune
挂载目录
# 挂载主机目录
docker run -v /host/path:/container/path image_name
# 挂载数据卷
docker run -v volume_name:/container/path image_name
# 只读挂载
docker run -v /host/path:/container/path:ro image_name
网络管理
网络操作
# 查看网络
docker network ls
# 创建网络
docker network create my_network
# 查看网络详情
docker network inspect my_network
# 连接容器到网络
docker network connect network_name container_name
# 断开网络连接
docker network disconnect network_name container_name
清理和维护
系统清理
# 删除所有停止的容器
docker container prune
# 删除所有未使用的镜像、容器、网络
docker system prune
# 删除所有未使用的资源(包括数据卷)
docker system prune -a --volumes
# 清理构建缓存
docker builder prune
资源限制
# 限制内存使用
docker run -m 512m image_name
# 限制 CPU 使用
docker run --cpus 1.5 image_name
# 限制内存和 CPU
docker run -m 512m --cpus 1.0 image_name
实用技巧和组合命令
开发环境常用组合
# 开发环境标准启动
docker run -it \
--name dev_env \
--privileged \
-v $(pwd):/workspace \
-w /workspace \
dev_image:latest
# 进入开发环境(重用容器)
docker start dev_env && docker exec -it dev_env bash
快速清理
# 一键停止并删除所有容器
docker stop $(docker ps -aq) 2>/dev/null; docker rm $(docker ps -aq) 2>/dev/null
# 一键删除所有镜像
docker rmi -f $(docker images -aq) 2>/dev/null
# 完整系统清理
docker system prune -a -f --volumes
信息查询
# 查看容器IP地址
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name
# 查看容器资源使用
docker stats container_name
# 查看端口映射
docker port container_name
日常使用流程示例
典型开发工作流
# 1. 启动开发环境
docker run -it --name mydev -v $(pwd):/workspace -w /workspace dev_image
# 2. 退出后重新进入
docker start mydev
docker exec -it mydev bash
# 3. 保存更改到新镜像(如果需要)
docker commit mydev mydev_with_tools:latest
# 4. 清理环境
docker stop mydev
docker rm mydev
镜像分发流程
# 1. 保存镜像
docker save my_image | gzip > my_image.tar.gz
# 2. 传输文件
# 3. 加载镜像
docker load -i my_image.tar.gz
# 4. 运行镜像
docker run -it my_image
重点记住的常用命令
# 最常用的10个命令
docker ps -a # 查看所有容器
docker images # 查看所有镜像
docker run -it image_name bash # 运行交互式容器
docker exec -it container_name bash # 进入运行中的容器
docker start container_name # 启动容器
docker stop container_name # 停止容器
docker rm container_name # 删除容器
docker rmi image_name # 删除镜像
docker build -t my_image . # 构建镜像
docker logs container_name # 查看日志
更多推荐
所有评论(0)