Docker常用命令详解:从入门到实践
·
前言
Docker作为当今最流行的容器化技术,已经成为开发者和运维人员必备的技能之一。本文整理了Docker日常使用中最常用的命令,并附上详细说明和实例,帮助你快速掌握Docker核心操作。
一、Docker环境管理命令
1. Docker信息与版本检查
bash
# 查看Docker版本信息
docker version
# 显示详细的Docker系统信息
docker info
# 运行Docker自带的Hello World测试
docker run hello-world
2. Docker服务控制
bash
# 启动Docker服务(Linux系统) sudo systemctl start docker # 停止Docker服务 sudo systemctl stop docker # 重启Docker服务 sudo systemctl restart docker # 设置Docker开机自启 sudo systemctl enable docker # 查看Docker服务状态 sudo systemctl status docker
二、镜像管理命令
1. 镜像搜索与拉取
bash
# 从Docker Hub搜索镜像
docker search nginx
# 拉取指定镜像(默认最新版)
docker pull nginx
# 拉取指定版本的镜像
docker pull nginx:1.20.0
# 拉取指定仓库的镜像
docker pull ubuntu:20.04
2. 镜像查看与管理
bash
# 列出本地所有镜像 docker images # 显示镜像详细信息 docker image inspect nginx # 删除指定镜像 docker rmi nginx:1.20.0 # 强制删除镜像(即使有容器正在使用) docker rmi -f nginx # 删除所有未被使用的镜像 docker image prune # 删除所有未被使用的镜像(强制) docker image prune -a # 给镜像打标签 docker tag nginx mynginx:v1.0 # 保存镜像到文件 docker save -o nginx.tar nginx:latest # 从文件加载镜像 docker load -i nginx.tar # 查看镜像历史记录 docker history nginx
三、容器管理命令
1. 容器创建与运行
bash
# 创建并启动一个容器(前台运行)
docker run nginx
# 创建并启动容器(后台运行)
docker run -d nginx
# 运行容器并指定名称
docker run -d --name mynginx nginx
# 运行容器并映射端口
docker run -d -p 8080:80 --name myweb nginx
# 运行容器并映射目录
docker run -d -v /host/path:/container/path nginx
# 运行容器并设置环境变量
docker run -d -e "ENV_VAR=value" nginx
# 运行容器并进入交互模式
docker run -it ubuntu /bin/bash
# 运行容器并分配伪终端
docker run -it --rm ubuntu bash
# 指定容器重启策略
docker run -d --restart=always nginx
2. 容器查看与监控
bash
# 查看正在运行的容器
docker ps
# 查看所有容器(包括已停止的)
docker ps -a
# 查看容器详细信息
docker inspect mynginx
# 查看容器日志
docker logs mynginx
# 实时查看容器日志
docker logs -f mynginx
# 查看容器最近10行日志
docker logs --tail 10 mynginx
# 查看容器资源使用情况
docker stats
# 查看容器进程信息
docker top mynginx
# 查看容器端口映射
docker port mynginx
3. 容器操作与控制
bash
# 启动已停止的容器
docker start mynginx
# 停止运行中的容器
docker stop mynginx
# 强制停止容器
docker kill mynginx
# 重启容器
docker restart mynginx
# 暂停容器
docker pause mynginx
# 恢复暂停的容器
docker unpause mynginx
# 进入运行中的容器
docker exec -it mynginx /bin/bash
# 在容器中执行命令
docker exec mynginx ls -la
# 重命名容器
docker rename old_name new_name
# 更新容器配置
docker update --memory="512m" mynginx
4. 容器删除
bash
# 删除已停止的容器 docker rm mynginx # 强制删除容器(无论是否运行) docker rm -f mynginx # 删除所有已停止的容器 docker container prune # 删除所有容器(包括运行的,谨慎使用) docker rm -f $(docker ps -aq)
四、数据管理命令
1. 数据卷操作
bash
# 创建数据卷 docker volume create myvolume # 查看数据卷列表 docker volume ls # 查看数据卷详情 docker volume inspect myvolume # 删除未使用的数据卷 docker volume prune # 删除指定数据卷 docker volume rm myvolume
2. 文件复制
bash
# 从容器复制文件到宿主机 docker cp mynginx:/etc/nginx/nginx.conf ./nginx.conf # 从宿主机复制文件到容器 docker cp ./config.txt mynginx:/tmp/config.txt
五、网络管理命令
1. 网络操作
bash
# 查看网络列表 docker network ls # 创建自定义网络 docker network create mynetwork # 查看网络详情 docker network inspect bridge # 将容器连接到网络 docker network connect mynetwork mynginx # 断开容器与网络的连接 docker network disconnect mynetwork mynginx # 删除网络 docker network rm mynetwork # 删除未使用的网络 docker network prune
六、Docker Compose命令
1. Compose基本操作
bash
# 启动所有服务(后台运行) docker-compose up -d # 启动指定服务 docker-compose up nginx mysql # 停止所有服务 docker-compose down # 查看服务状态 docker-compose ps # 查看服务日志 docker-compose logs # 实时查看服务日志 docker-compose logs -f # 重新构建服务 docker-compose build # 重新启动服务 docker-compose restart # 暂停服务 docker-compose pause # 恢复服务 docker-compose unpause # 执行服务中的命令 docker-compose exec nginx bash
2. Compose扩展操作
bash
# 查看服务配置
docker-compose config
# 拉取服务依赖的镜像
docker-compose pull
# 创建服务容器但不启动
docker-compose create
# 启动已创建的容器
docker-compose start
# 停止运行中的容器
docker-compose stop
# 强制停止运行中的容器
docker-compose kill
# 删除已停止的容器
docker-compose rm
# 重新创建并启动所有服务
docker-compose up -d --force-recreate
# 重新构建并启动服务
docker-compose up -d --build
七、Dockerfile相关命令
1. 构建镜像
bash
# 使用当前目录的Dockerfile构建镜像
docker build -t myimage:v1.0 .
# 指定Dockerfile路径构建镜像
docker build -t myimage:v1.0 -f ./Dockerfile.dev .
# 构建时不使用缓存
docker build --no-cache -t myimage:v1.0 .
# 构建时设置构建参数
docker build --build-arg VERSION=1.0 -t myimage:v1.0 .
八、实用技巧与组合命令
1. 清理命令
bash
# 清理所有未使用的镜像、容器、网络和数据卷 docker system prune -a # 清理所有未使用的资源(强制确认) docker system prune -af # 清理指定类型的资源 docker container prune # 容器 docker image prune # 镜像 docker network prune # 网络 docker volume prune # 数据卷
2. 批量操作命令
bash
# 停止所有运行中的容器 docker stop $(docker ps -q) # 批量删除所有已退出的容器 docker rm $(docker ps -aq -f status=exited) # 批量删除所有镜像 docker rmi $(docker images -q) # 批量删除所有悬空镜像 docker rmi $(docker images -f "dangling=true" -q) # 批量删除未使用的数据卷 docker volume rm $(docker volume ls -qf dangling=true)
3. 监控与调试命令
bash
# 实时监控容器资源使用
docker stats --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}"
# 查看容器详细信息(JSON格式)
docker inspect --format='{{json .NetworkSettings}}' mynginx
# 查看容器IP地址
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mynginx
# 导出容器文件系统
docker export -o container.tar mynginx
# 导入容器文件系统
docker import container.tar myimage:imported
九、安全相关命令
bash
# 查看容器内的用户信息
docker exec mynginx whoami
# 以指定用户运行容器
docker run -u 1001 -it ubuntu bash
# 查看容器安全配置
docker inspect --format='{{.HostConfig.Privileged}}' mynginx
# 设置容器只读文件系统
docker run --read-only -d nginx
# 设置容器安全选项
docker run --security-opt=no-new-privileges -d nginx
十、Docker Swarm命令(集群管理)
bash
# 初始化Swarm集群 docker swarm init # 查看Swarm节点 docker node ls # 创建服务 docker service create --replicas 3 -p 80:80 --name web nginx # 查看服务列表 docker service ls # 查看服务详情 docker service ps web # 扩展服务副本数 docker service scale web=5 # 更新服务 docker service update --image nginx:1.21 web # 删除服务 docker service rm web # 退出Swarm集群 docker swarm leave --force
总结
本文涵盖了Docker日常使用中最常用的命令,从基础的环境管理到高级的集群操作都有涉及。建议收藏本文,在实际使用中根据需要查阅相关命令。
使用建议:
-
新手建议从基础的镜像管理、容器操作开始学习
-
掌握常用参数,如
-d(后台运行)、-it(交互模式)、-p(端口映射)、-v(目录挂载) -
善用
docker --help查看命令帮助文档 -
生产环境谨慎使用删除和清理命令
希望这份Docker命令大全能够帮助你在日常工作中提高效率!如果有任何疑问或建议,欢迎在评论区留言讨论。
更多推荐
所有评论(0)