(本人初学整理,谨供参考,错误和不足麻烦大佬们指出)
Docker的基本命令
系统调用systemctl和服务调用service,个人感觉区别只是命令顺序的区别,暂不清楚其它使用区别。
#启动
sudo systemctl start docker
sudo service docker start
#关闭
sudo systemctl stop docker
sudo service docker stop
#查看状态
sudo systemtcl status docker
sudo service docker status
#·重启
sudo systemtcl restart docker
sudo service docker restart
docker镜像管理相关命令
查看整体docker镜像操作
docker subcmd --help
搜索镜像
docker search [镜像名]
#查询是否在 docker 官方仓库含有 [镜像名]镜像
#字段关键字:
-NAME:镜像名
-DESCRIPTION:镜像描述
-STARS:下载量
-OFFICIAL:是否为官方出品
-AUTOMATED:是否使用dockerfile文件自动生成的
获取镜像
docker pull [镜像名]
#1. 默认:下载时,不指定Tag, 下载最新版本
#2. 指定tag:1)latest表下载最新版。 2)用Tag指定版本号信息
查看本地镜像
(只能查看全部或一个,不能一次性查看多个)
#查看本地所有镜像
docker images 或 docker image ls
#查看某一个镜像
docker images [镜像名]
# 字段关键字
- REPOSITORY: 本地镜像仓库中的镜像名称
- TAG: 版本信息。
- IMAGE ID: 镜像 ID
- CREATED:镜像被创建的时间(不是下载时间)
- SIZE:镜像大小
镜像的别名
docker tag [原镜像名](版本,默认latest) [新镜像名](版本,默认latest)
#新旧镜像有相同的镜像ID
删除镜像
docker rmi 镜像名/镜像ID[:tag]
docker image rm 镜像名/镜像ID[:tag]
#tag: 如果镜像的版本不是 latest, 不能省略tag。
#-f, --force : 强制删除
镜像的导入和导出
#镜像的导入
docker load -i 镜像名.tar.img
docker load < 镜像名.tar.img
#镜像的导出
docker save -o (指定目录)镜像名.tar.img 源镜像名
# -o, --output: 指定导出的镜像名称。
# 无指定目录时保存到当前目录
镜像历史
docker history [镜像名称]或[镜像ID]
查看镜像详细属性
#镜像的属性信息以json格式输出
docker inspect [镜像名]
docker inspect -f{{.******}} 镜像名
#-f,--format:输出指定字段信息
导出镜像的两种方式
第一种:基于镜像,导出镜像----不能修改镜像
# 导入
docker load -i 镜像名.tar.img 或 $ docker load < 镜像名.tar.img
# 导出
docker save -o 镜像名.tar.img 依赖镜像[:tag]
第二种:基于容器,导出镜像----可修改镜像后再导出
# 创建和启动容器
docker run -itd --name 容器名 依赖镜像 命令
docker exec -it 容器名 命令
# 对容器进行修改,
touch file
echo $PATH >> file
echo hello,world >> file
修改后,退出容器 exit
# 导出
docker export --help
docker export 容器名 > 镜像名.tar.img
# 导入
docker import --help
cat 镜像名.tar.img | docker import - 新镜像名称[:tag]
区别
- 导出
- export
- 导出的镜像文件,缺少了历史日志信息。比源镜像大小小。
- 生成的镜像文件 权限 -rw-r–r--
- 生成的本地镜像仓库镜像,没有历史信息
- save
- 导出的镜像文件,与源镜像大小一致。
- 生成的镜像文件 权限 -rw-------
- 生成的本地镜像仓库镜像,包含历史信息
- export
- 导入
- import
- 可以修改源镜像的镜像名称
- load
- 不可以修改镜像名。
- import