Docker之镜像篇
Docker之镜像篇
ps:
环境为:CentOS8
docker版本:Docker version 20.10.8
docker按照之前的已经安装完成,接下来进行镜像的学习。
镜像获取
# 命令
# 默认没有显式显示tag标签,默认是latest,即最新版本,可以根据自己需要选择标签下载
docker pull
docker pull NAME[:tag]
# 从docker hub下载最新的ubuntu镜像
docker pull ubuntu
# 相当于下面的命令,从默认的docker注册服务器下载ubuntu的latest标签的镜像,也可以从其它注册服务器下载,需要修改前面的地址
docker pull registry.hub.docker.com/ubuntu.latest
# 基于ubuntu镜像运行容器
docker run -it ubuntu /bin/bash
查看镜像信息
# 查看镜像信息 ,包括镜像参考、镜像名称、标签tag、镜像id(唯一),创建时间、镜像大小等
docker images
# 镜像标签tag
docker tag
# 如下,添加ubuntu:test标签
docker tag 1318b700e415 ubuntu:test
# 查看镜像的详细信息,返回json格式的信息,可以使用-f来指定
docker inspect ubuntu:latest
# 获取版本信息
docker inspect ubuntu:latest -f {{.DockerVersion}}
搜寻镜像
# 使用docker search term 命令搜索远程仓库的镜像
docker serach ubuntu
删除镜像
# 使用docker rmi 命令删除镜像或者标签
docker rmi ubuntu:latest
# 当一个镜像有对个标签时后面接镜像的标签,当镜像只有一个标签时删除本地镜像
# 也可以使用镜像ID删除镜像,当存在基于镜像运行的容器时无法删除镜像,需要先删除容器
docker rmi 1318b700e415
创建镜像
之前都是从docker hub下载镜像到本地,也可以自行创建镜像,有几种方法:
- 基于已有镜像创建
- 本地模板导入
- 基于dockerfile创建
基于已有镜像创建
# 先以原有镜像运行容器,然后进行修改,最后以docker commit 创建生成新的镜像。
# 运行容器
docker run -it ubuntu /bin/bash
# 创建一个文件
touch test.txt
# 以修改后的容器创建镜像
docker commit [option] CONTAINER [REPOSITORY[:TAG]]
-a 作者信息
-m 提交消息
-p 提交时暂停容器运行
# 如下,2385234363ea为之前容器的id,需要记住,ubuntu-new为新镜像的名称,如果正确会返回新镜像的ID
docker commit -m "create a new image" -a "chuck" 2385234363ea ubuntu-new
#
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu-new latest 55fa6d6d57cb About a minute ago 72.8MB
ubuntu latest 1318b700e415 4 weeks ago 72.8MB
基于模板创建镜像
# 从openvz下载模板,上传到服务器
# https://download.openvz.org/template/precreated/
# 通过下面命令进行导入
cat centos-7-x86_64-minimal.tar.gz | docker import - centos:7
通过dockerfile创建镜像在后面单独讲解。
存出和载入
# 将镜像文件保存为本地文件以及通过本地文件载入镜像。
# 保存ubuntu镜像为tar文件,在当前文件夹生成文件
docker save -o ubuntu_14.04.tar ubuntu:14.04
# 载入,从当前文件夹的ubuntu.tar文件载入镜像
docker load --input ubuntu.tar
或
docker load < ubuntu.tar
学习了镜像的下载、查看镜像信息、创建镜像、保存镜像和载入镜像等内容。
点点滴滴,积少成多,终有一日能发挥用处。