镜像是创建容器的基础,可以理解为安装系统的“光盘”或“ISO文件”。
1.列出本地已下载的镜像
docker images
2.从 Docker 仓库 搜索镜像
docker search <镜像名>
示例命令
docker search nginx
3.下载镜像(不指定标签则默认为 latest)
docker pull <镜像名>[:标签]
示例命令
docker pull ubuntu:20.04
4.删除指定的本地镜像
docker rmi <镜像ID或名>
示例命令
docker rmi 1234567890ab
5.强制删除所有本地镜像(危险!)
docker rmi $(docker images -q)
6.根据当前目录的 Dockerfile 构建镜像
docker build -t <镜像名> .
示例命令
docker build -t my-app:1.0 .
7.为镜像打一个新的标签
docker tag <旧镜像名> <新镜像名>
示例命令
docker tag ubuntu:20.04 my-ubuntu:v1
8.将镜像导出为 tar 文件
docker save -o <文件名>.tar <镜像名>
示例命令
docker save -o my-ubuntu.tar ubuntu:20.04
9.从 tar 文件导入镜像
docker load -i <文件名>.tar
示例命令
docker load -i my-ubuntu.tar
二、容器生命周期管理
容器是镜像的运行实例。
1.创建并启动一个新容器
docker run [选项] <镜像名>
见下方常用 run 选项
# 交互式运行一个容器(前台模式)docker run -it --name my_container ubuntu:20.04 /bin/bash# 后台运行(守护进程)docker run -d --name my_nginx nginx# 映射端口(主机端口:容器端口)docker run -d -p 8080:80 --name nginx_test nginx# 映射数据卷(主机目录:容器目录)docker run -d -v /host/path:/container/path --name nginx_vol nginx# 设置环境变量docker run -d -e "MY_VAR=my_value" --name nginx_env nginx# 连接网络docker run -d --network my_network --name nginx_net nginx# 从宿主机传递文件到容器docker cp /host/file.txt my_container:/container/path/
2.启动一个已停止的容器
docker start <容器名/ID>
示例命令
docker start my_container
3.优雅地停止一个运行中的容器
docker stop <容器名/ID>
示例命令
docker stop my_container
4.重启一个容器
docker restart <容器名/ID>
示例命令
docker restart my_container
5.强制停止一个运行中的容器
docker kill <容器名/ID>
示例命令
docker kill my_container
6.暂停容器内的所有进程
docker pause <容器名/ID>
示例命令
docker pause my_container
7.恢复容器内被暂停的进程
docker unpause <容器名/ID>
示例命令
docker unpause my_container
8.删除一个已停止的容器
docker rm <容器名/ID>
示例命令
docker rm my_container
9.强制删除一个运行中的容器
docker rm -f <容器名/ID>
示例命令
docker rm -f my_container
10.删除所有已停止的容器
docker rm $(docker ps -aq)
示例命令
docker rm $(docker ps -aq)
11.只创建容器,但不启动
docker create [选项] <镜像名>
示例命令
docker create -it --name my_con ubuntu bash
三、容器信息查看与操作
1.列出正在运行的容器
docker ps
2.列出所有容器(包括已停止的)
docker ps -a
3.查看容器的日志输出
docker logs <容器名/ID>
示例命令
docker logs my_nginx
4.实时跟踪(Follow)容器日志
docker logs -f <容器名/ID>
示例命令
docker logs -f my_nginx
5.在运行中的容器内执行命令
docker exec [选项] <容器名/ID> 命令
见下方常用 exec 示例
# 在运行中的容器内启动一个交互式 Bash Shell(最常用)docker exec -it my_container /bin/bash# 在容器内执行一个简单命令并查看结果docker exec my_container ls /app
6.连接到正在运行的容器的主进程(不推荐,容易误退出)
docker attach <容器名/ID>
示例命令
docker attach my_container
7.查看容器/镜像的详细信息(JSON格式)
docker inspect <容器名/ID>
示例命令
docker inspect my_nginx
8.查看容器内运行的进程
docker top <容器名/ID>
示例命令
docker top my_nginx
9.实时显示所有容器的资源使用情况(CPU、内存等)
docker stats
10.检查容器文件系统相对于镜像的更改
docker diff <容器名/ID>
示例命令
docker diff my_container
11.查看容器的端口映射情况
docker port <容器名/ID>
示例命令
docker port my_nginx
四、数据卷相关命令
数据卷用于持久化容器数据,或与宿主机共享数据。
1.列出所有数据卷
docker volume ls
2.创建一个数据卷
docker volume create <卷名>
示例命令
docker volume create my_vol
3.查看数据卷的详细信息
docker volume inspect <卷名>
示例命令
docker volume inspect my_vol
4.删除一个数据卷
docker volume rm <卷名>
示例命令
docker volume rm my_vol
5.删除所有未被使用的数据卷
docker volume prune
五、网络管理相关命令
1.列出所有网络
docker network ls
2.创建一个新的网络
docker network create <网络名>
示例命令
docker network create my_net
3.查看网络的详细信息
docker network inspect <网络名>
示例命令
docker network inspect bridge
4.将容器连接到指定网络
docker network connect <网络名> <容器名>
示例命令
docker network connect my_net nginx1
5.将容器从指定网络断开
docker network disconnect <网络名> <容器名>
示例命令
docker network disconnect my_net nginx1
6.删除一个网络
docker network rm <网络名>
示例命令
docker network rm my_net
六、系统与清理命令
1.查看 Docker 磁盘使用情况
docker system df
2.一键清理:删除所有已停止的容器、未被使用的网络、构建缓存和悬空镜像。
docker system prune
3.更彻底的一键清理:额外删除所有未被容器使用的镜像。
docker system prune -a
4.显示 Docker 版本信息
docker version
5.显示 Docker 系统信息
docker info
七、使用技巧与最佳实践
1.命名容器:使用 --name 为容器起一个有意义的名字,便于管理。
2.使用数据卷:对于需要持久化的数据(如数据库文件、日志),一定要使用数据卷,避免数据丢失。
3.后台运行:对于服务类容器(如 Nginx、MySQL),使用 -d 选项使其在后台运行。
4.善用 docker-compose:管理多个关联的容器时,使用 Docker Compose 是最高效的方式。
5.定期清理:使用 docker system prune 定期清理无用资源,释放磁盘空间。
希望这份清单能对您有所帮助!建议收藏,并在实践中不断熟悉。
本文链接:https://www.jingber.cn/post/3970.html 转载需授权!

微信扫一扫,打赏作者吧~