Docker 常用命令大全:从入门到实战
引言
在云原生时代,Docker 已经成为开发和运维的必备工具。无论是本地开发环境的搭建,还是生产环境的部署,Docker 都发挥着重要作用。然而,面对众多的 Docker 命令,很多初学者会感到困惑。本文将系统地整理 Docker 常用命令,帮助你快速掌握 Docker 的核心操作。
一、容器管理
1.1 容器的创建与运行
1 2 3 4 5 6 7 8 9
| docker run nginx
docker run -d --name mynginx nginx docker run -it --name myubuntu ubuntu bash docker run -p 8080:80 nginx docker run -v /宿主机路径:/容器路径 nginx docker run -e MYSQL_ROOT_PASSWORD=123456 mysql
|
实际应用场景:
1.2 容器的生命周期管理
1 2 3 4 5 6 7 8 9 10 11 12 13
| # 启动与停止 docker start mycontainer # 启动已停止的容器 docker stop mycontainer # 停止运行中的容器(发送SIGTERM信号) docker restart mycontainer # 重启容器 docker kill mycontainer # 强制停止容器(发送SIGKILL信号)
# 暂停与恢复 docker pause mycontainer # 暂停容器内所有进程 docker unpause mycontainer # 恢复暂停的容器
# 删除容器 docker rm mycontainer # 删除已停止的容器 docker rm -f mycontainer # 强制删除运行中的容器
|
1.3 容器信息查询与操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| docker ps docker ps -a docker ps -l docker ps -q
docker exec -it mycontainer bash docker exec mycontainer ls -la
docker logs mycontainer docker logs -f mycontainer docker logs --tail 100 mycontainer docker logs --since 1h mycontainer
docker stats docker stats mycontainer docker top mycontainer docker inspect mycontainer
|
二、镜像管理
2.1 镜像的获取与查看
1 2 3 4 5 6 7 8 9 10
| # 搜索和获取镜像 docker search ubuntu # 搜索Ubuntu相关镜像 docker pull ubuntu:20.04 # 拉取指定版本的Ubuntu docker pull ubuntu # 拉取最新版(latest)
# 查看本地镜像 docker images # 列出所有镜像 docker images ubuntu # 列出特定镜像 docker images -q # 只显示镜像ID docker images --digests # 显示镜像摘要信息
|
2.2 镜像的构建与推送
1 2 3 4 5 6 7 8 9 10 11
| # 构建镜像 docker build -t myapp:v1.0 . # 构建并打标签 docker build -f Dockerfile.prod -t myapp:prod . # 指定Dockerfile
# 镜像标签与推送 docker tag myapp:v1.0 myregistry.com/myapp:v1.0 # 为镜像打新标签 docker push myregistry.com/myapp:v1.0 # 推送到镜像仓库
# 保存与加载 docker save myapp:v1.0 > myapp.tar # 导出镜像到文件 docker load < myapp.tar # 从文件导入镜像
|
2.3 镜像的删除与清理
1 2 3 4 5 6 7
| docker rmi ubuntu:18.04 docker rmi $(docker images -q)
docker image prune docker image prune -a
|
三、数据管理
3.1 数据卷操作
1 2 3 4 5 6 7 8 9
| docker volume ls docker volume create mydata docker volume inspect mydata docker volume rm mydata
docker run -v mydata:/app/data nginx docker run -v /host/path:/container/path nginx
|
3.2 文件拷贝
1 2 3
| docker cp file.txt mycontainer:/app/ docker cp mycontainer:/app/logs/ ./
|
四、网络管理
4.1 网络基础操作
1 2 3 4 5 6 7 8 9
| docker network ls docker network create mynetwork docker network inspect bridge docker network rm mynetwork
docker network connect mynetwork mycontainer docker network disconnect mynetwork mycontainer
|
4.2 网络模式
1 2 3 4 5
| docker run --network=bridge nginx docker run --network=host nginx docker run --network=none nginx docker run --network=mynetwork nginx
|
五、Docker Compose 管理
5.1 常用 Compose 命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| docker-compose up docker-compose up -d docker-compose down docker-compose down -v
docker-compose ps docker-compose logs docker-compose logs -f web docker-compose exec db mysql -uroot -p
docker-compose build docker-compose up --build docker-compose restart docker-compose restart web
|
六、系统管理
6.1 系统信息与清理
1 2 3 4 5 6 7 8 9 10 11
| docker info docker version docker system df
docker system prune docker system prune -a docker container prune docker image prune docker volume prune
|
七、实用命令组合
7.1 批量操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| docker stop $(docker ps -q)
docker rm $(docker ps -aq)
docker rmi $(docker images -q)
docker restart $(docker ps -q)
bash
docker system prune -af
docker stats --no-stream | sort -k3 -h -r
for container in $(docker ps -aq); do docker inspect $container > config_${container}.json done
|