一、Docker 常用命令大全
1、镜像管理命令
| 命令 |
说明 |
docker images |
查看本地所有镜像 |
docker pull 镜像名:标签 |
从仓库拉取镜像 |
docker build -t 镜像名:标签 . |
根据 Dockerfile 构建镜像 |
docker rmi 镜像ID/名称 |
删除本地镜像 |
docker tag 原镜像 新镜像 |
给镜像打标签 |
docker push 镜像名:标签 |
推送镜像到仓库 |
docker save -o 文件.tar 镜像名 |
导出镜像为 tar 文件 |
docker load -i 文件.tar |
从 tar 文件导入镜像 |
docker image prune |
清理悬空镜像 |
2、容器管理命令
| 命令 |
说明 |
docker ps |
查看运行中的容器 |
docker ps -a |
查看所有容器(包括已停止) |
docker run 镜像名 |
创建并启动新容器 |
docker start 容器ID/名称 |
启动已停止的容器 |
docker stop 容器ID/名称 |
停止运行中的容器 |
docker restart 容器ID/名称 |
重启容器 |
docker rm 容器ID/名称 |
删除容器 |
docker rm -f 容器ID |
强制删除运行中的容器 |
docker container prune |
清理已停止的容器 |
3、容器操作命令
| 命令 |
说明 |
docker exec -it 容器ID /bin/bash |
进入容器交互式终端 |
docker logs 容器ID/名称 |
查看容器日志 |
docker logs -f 容器ID |
实时跟踪容器日志 |
docker top 容器ID |
查看容器内进程 |
docker inspect 容器ID |
查看容器详细信息 |
docker cp 文件 容器ID:路径 |
复制文件到容器 |
docker cp 容器ID:路径 文件 |
从容器复制文件到主机 |
docker stats |
查看容器资源使用情况 |
docker port 容器ID |
查看容器端口映射 |
4、网络与卷管理
网络命令
| 命令 |
说明 |
docker network ls |
查看网络列表 |
docker network create 网络名 |
创建自定义网络 |
docker network inspect 网络名 |
查看网络详情 |
docker network rm 网络名 |
删除网络 |
数据卷命令
| 命令 |
说明 |
docker volume ls |
查看数据卷列表 |
docker volume create 卷名 |
创建数据卷 |
docker volume inspect 卷名 |
查看数据卷详情 |
docker volume rm 卷名 |
删除数据卷 |
docker volume prune |
清理未使用的数据卷 |
5、系统信息命令
| 命令 |
说明 |
docker version |
查看 Docker 版本信息 |
docker info |
查看 Docker 系统信息 |
docker system df |
查看 Docker 磁盘使用情况 |
docker system prune |
清理所有未使用的资源 |
6、常用运行示例
bash
复制代码
# 后台运行容器
docker run -d -p 80:80 nginx
# 指定容器名称
docker run -d --name my-nginx nginx
# 挂载数据卷
docker run -d -v /host/path:/container/path nginx
# 设置环境变量
docker run -d -e MYSQL_ROOT_PASSWORD=123456 mysql
# 限制资源
docker run -d --memory=512m --cpus=1.0 nginx
# 交互式运行
docker run -it ubuntu /bin/bash
7、清理命令(释放空间)
bash
复制代码
# 清理所有未使用的资源
docker system prune -a
# 清理停止的容器
docker container prune
# 清理悬空镜像
docker image prune
# 清理未使用的卷
docker volume prune
# 清理未使用的网络
docker network prune
实用小贴士
| 技巧 |
说明 |
Ctrl+P, Ctrl+Q |
退出容器但不停止 |
docker exec -it |
进入运行中容器 |
--rm |
容器退出后自动删除 |
-d |
后台运行容器 |
-p 主机端口:容器端口 |
端口映射 |
-v 主机路径:容器路径 |
挂载卷 |
--name |
指定容器名称 |
--network |
指定网络 |
快速参考卡片
bash
复制代码
# 最常用组合
docker ps -a # 查看所有容器
docker images # 查看所有镜像
docker run -d -p 80:80 nginx # 运行 nginx
docker exec -it 容器ID bash # 进入容器
docker logs -f 容器ID # 查看日志
docker stop/start 容器ID # 停止/启动容器
docker rm/rmi ID # 删除容器/镜像
如需了解某个命令的详细参数,可使用:
docker 命令 --help
# 例如:docker run --help
二、Docker 镜像构建
bash
复制代码
[root@docker-node1 ~]# docker pull centos:7
[root@docker-node1 ~]# cd docker/
[root@docker-node1 docker]# vim Dockerfile
FROM centos:7
LABEL Creater=lee
RUN ["/bin/bash", "-c", "rm -fr /etc/yum.repos.d/*"]
COPY centos7.repo /etc/yum.repos.d/
[root@docker-node1 docker]# vim centos7.repo
[centos7]
name=centos
baseurl=https://mirrors.aliyun.com/centos-vault/7.9.2009/os/x86_64/
gpgcheck=0
[root@docker-node1 docker]# docker build -t centos-7:repo .
[root@docker-node1 docker]# docker run -it --name centos centos-7:repo /bin/bash
三、Docker Hub 使用
bash
复制代码
# 查看本地镜像
docker images
# 假设看到镜像名为 myapp,标签为 v1.0
# 打标签
docker tag myapp:v1.0 dhbjwys/myapp:v1.0
# 推送
docker push dhbjwys/myapp:v1.0