Docker 常用命令
1. 查看镜像#
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
-
REPOSITORY: 镜像在仓库中的名称
-
TAG: 镜像标签(一般是软件的版本号)
-
IMAGE ID: 镜像 ID(唯一)
-
CREATED: 镜像的创建日期 (不是获取该镜像的日期)
-
SIZE:镜像大小
2. 搜索镜像#
docker search 镜像名称
3. 拉取镜像#
docker pull 镜像名称:标签
拉取镜像就是从中央仓库下载镜像到本地
如果不声明 tag,默认拉取最新版本
可以通过 https://hub.docker.com 搜索镜像
4. 镜像仓库加速#
可以选用阿里云镜像加速服务
免费!!!!
5. 删除镜像#
docker rmi 镜像id
docker rmi 镜像名称
docker rmi 镜像名称:标签
删除镜像时,必须保证没有镜像被使用,也就是说没有通过镜像创建容器,如果有,则必须先删除容器
# 以下命令删除所有镜像
docker rmi 'docker images -q'
6. 查看正在运行的容器#
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
-
CONTAINER ID:容器 ID
-
IMAGE: 所属镜像
-
COMMAND:命令
-
CREATED:创建时间
-
STATUS:容器状态 ,up 运行 ,exited 退出
-
PORTS:端口
-
NAMES:容器名称
7.查看所有容器#
docker ps -a
不管是运行的还是未运行的
8. 其他容器查看命令#
# 查看退出的容器
docker ps -f status=exited
#查看最后一次运行的容器
docker ps -l
9.容器启动命令#
docker run [OPRIONS] IMAGE [COMMAND] [ARG...]
-
-i:表示运行容器;
-
-t:表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登陆进去,及分配了一个伪终端;
-
--name:为创建的容器命名;
-
-v:表示挂载数据卷
-
-d:创建一个守护式容器在后台运行
-
-p:表示端口映射,前者是宿主机端口,后者是容器内端口
9.1 创建并进入容器#
docker run -it --name 容器名称 镜像名称:标签 /bin/bash
注意:Docker 容器运行必须有一个前台进程,如果没有前台进程执行,容器认为是空闲状态,就会自动退出。
9.2 守护方式创建容器#
docker run -di --name 容器名称 镜像名称:标签
9.3 守护方式进入容器#
# 前提是容器正在运行
docker exec -it 容器名称|容器ID /bin/bash
10. 停止与启动容器#
# 停止容器
docker stop 容器名称|容器ID
# 启动容器
docker start 容器名称|容器ID
11. 文件拷贝#
如果需要把文件拷贝到容器内部可以使用cp命令
docker cp 需要拷贝的文件或目录 容器名称:容器目录
也可以将文件从容器内拷贝出来
docker cp 容器名称:容器目录 需要拷贝的文件或目录
12. 容器数据卷#
12.1 命令#
创建容器添加 -v 参数,格式为 宿主机目录:容器目录
docker run -di -v /宿主机目录:/容器目录 镜像名
12.2 匿名挂载#
匿名挂在只需要写容器目录即可,宿主机对应的目录会在 '/var/lib/docker/volumes' 中生成
# 匿名挂载
docker run -di -v /容器目录 镜像名
# 查看 volume 数据卷信息
docker volume ls
# 查看当前容器的挂在情况
docker inspect 容器名称
12.3 具名挂载#
具名挂载就是给数据卷起了个名字,宿主机对应的目录还是会在 '/var/lib/docker/volumes' 中生成
# 具名挂载
docker run -di -v 数据卷名:/容器目录 镜像名
12.4 只读/读写#
# 只读,只能通过修改宿主机内容实现对容器的数据管理
docker run -it -v /宿主机目录:/容器目录:ro 镜像名
# 读写,默认。宿主机和容器可以双向操作数据
docker run -it -v /宿主机目录:/容器目录:rw 镜像名
12.5 数据卷容器(数据卷继承)#
# 容器 centos7-01 指定目录挂载
docker run -di -v /mydata/centos:/usr/local/data --name centos7-01 centos:7
# 容器 centos7-02 和centos7-03 相当于继承centos7-01 容器的挂载目录
docker run -di --volumes-from centos7-01 --name centos7-02 centos:7
docker run -di --volumes-from centos7-01 --name centos7-03 centos:7
上述 centos7-01 称为数据卷容器
这样做的好处就是,如果需要创建大量的相同目录的映射关系,可以简化命令便于操作记忆
13. 查看容器ip地址#
# 查看容器的元信息
docker inspect 容器名称|容器ID
# 输出容器IP地址
docker inspect --format='{{.NetworkSettings.IPAddress}' 容器名称|容器ID
14. 删除容器#
# 删除指定容器
docker rm 容器名称|容器ID
# 删除多个容器
docker rm 容器名称|容器ID 容器名称|容器ID
# 删除所有容器(前提所有容器已经停止)
docker rm $(docker ps -aq)
# 停止并删除全部容器
docker stop $(docker ps -q) & docker rm $(docker ps -aq)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix