1 镜像(image)
1.1 查找镜像
docker search [val]
会查找所有和val相关的镜像(包括镜像名称、镜像描述等)
1.2 拉取镜像
docker pull [镜像名称]:[版本]
默认latest 版本
每次拉取会和已存在的镜像进行比对,只拉区不存在的包
1.3 查看本地已有镜像
docker images
1.4 删除镜像
docker rmi [镜像ID]
不会删除当前镜像共享的包rm是删除容器
1.5 镜像导出/导入
导出镜像
docker save -o my_image.tar my_image:latest
导入镜像
docker import -i my_container.tar my_new_image:custom
2 容器(container)
2.1 启动(创建)容器
# 控制台运行
docker run 镜像名称[:版本]
# 后台运行
docker run -d 镜像名称[:版本]
常用参数
- -p 指定映射端口,用法:
宿主机端口:容器端口
- p小写:指定宿主机和容器端口的对应映射关系
- P大写:将容器的所有端口映射到宿主机的随机端口,不能指定对应映射关系
- --name 指定容器名称,不指定自动生成
- --rm 容器停止运行后自动删除
- -d 后台运行
- -i 交互模式运行
- -t 为容器重新分配一个伪输入终端
- -e 设置环境变量
- -v 设置数据卷
- --restart 设置容器重启策略(只有在容器异常关闭的情况下才会触发),可选属性值
always
:关闭后一直尝试重新启动on-failure:num
:尝试num
次自动重新启动on
:默认情况,异常关闭后不自动重启- -cpus 限制cpu内核数量
- -m 限制内存大小
2.2 查看容器
# 查看正在运行的容器
docker ps
#查看所有容器哦
docker ps -a
2.3 停止/重新运行 容器
# 停止容器运行
docker stop [容器id或容器name]
# 运行容器
docker start [容器id或容器name]
# 重新运行容器
docker restart [容器id或容器name]
2.4 查看容器运行日志
输出容器的所有运行日志(常用)
可选参数:
- -f 监听日志
- -n:指定返回的日志数目
- -t:显示时间戳
docker logs [容器id或容器name]
输出容器接下来的运行日志(停止日志输出后会关闭容器)
docker attach [容器id或容器name]
3 数据卷(volume)(文件)
数据卷相当于是容器的虚拟文件系统和主机的真实系统之间的一个桥梁,建立数据卷就相当于是打通了容器和主机之家的文件交互通道,可以让容器运行时所产生的数据变更保存到主机中,方?便对数据的备份及维护。
3.1 基本操作
docker volume [参数]
3.2 匿名绑定
创建容器时不指定容器的数据卷,自动生成数据卷的目录。匿名绑定的容器将在Docker的volumes目录下生成一个sha256编码的字符串作为目录名称,该容器指定的文件和目录都会保存在这个地方
docker run -d -P -v 容器路径 镜像名称[:版本号]
如果要查看匿名绑定容器的数据卷位置,可以使用
inspect
命令查看
docker inspect -f '{{index .Mounts}}' 容器名称
- 如果在创建容器时
有--rm
参数则生成的随机主机文件夹会随着容器的stop被删除- 如果创建容器时
没有--rm
参数并且删除时使用-f
参数强制删除 生成的随机主机文件夹就算删除容器后文件夹也还是存在- 如果创建容器时
没有--rm
参数没有强制删除 生成的随机主机文件夹会在删除容器后删除
3.3 具名绑定
docker run -d -P -v 数据卷名称:容器路径 镜像名称[:版本号]
- 会在和随机生成的同一级文件夹下生成指定名称的文件夹
- 具名绑定的文件只能通过:
docker volume rm 名称
删除- 具名绑定时需要先创建数据卷
3.4 Bind Mount(指定主机路径)
绑定并加载主机的某个文件目录到容器中
docker run -d -P -v /主机文件夹路径:容器路径 镜像名称[:版本号]
此方式只能通过系统的
rm
命令删除指定路径的文件夹无法通过docker volume
查看到数据卷,只能通过docker inspect 容器
查看映射位置