Docker image详细介绍 docker images 是docker的三大组件之一。 docker把下载的 images 存储到docker主机上,如果一个 image 不 在主机上,docker会从一个镜像仓库下载,默认的仓库是 DOCKER HUB 公共仓库。
因为docker下载镜像默认是去国外网站,会比较慢,这里提供一些国内源,
编辑 /etc/docker/daemon.json
添加
{
"registry-mirrors": [
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn"
]
}
保存退出,重启docker, systemctl restart docker
docker info 查看最后返回的信息
1、使用docker images可以查看本机上的images
参数解析:repository :来自哪个仓库
tag :镜像标签
images id :镜像的id号
created :镜像创建的时间
size : 镜像的大小
2、查找镜像使用docker search
docker search busybox
我们看到返回了很多包含mysql的 images 。其中包括 image 名字、描述、星级(表示该 image 的受欢迎程 度)、是否官方创建、是否自动创建。官方的 images 是stackbrew项目组创建和维护的,automated 资源允许 你验证 image 的来源和内容。
3、获取镜像使用docker pull
docker pull busybox
4、查看镜像的详细信息 docker inspect
docker inspect busybox
或者
docker images --no-trunc 显示images的全部ID
4、制作自己的images,
1.第一个方法:使用 docker commit 来扩展一个 image 先使用 image 启动容器,更新后提交结果到新的 image
(1)运行一个container
docker# docker run -dit --name box busybox
(2)再进入container
docker# docker exec -it box /bin/sh
在里面随便编辑点东西,用于后面的验证
(2)在host上制作镜像 使用 docker commit
命令解析:docker commit:用于提交镜像
08f68a52328e:是正在运行的container
myregisteries/busybox:给自己的镜像起个名
2. 从本地文件系统导入
要从本地文件系统导入一个镜像,可以使用openvz(容器虚拟化的先锋技术)的模板来创建:openvz的模板下 载地址为[imagetar]http://openvz.org/Download/template/precreated 先下载了一个centos-7-x86_64minimal.tar.gz的镜像,之后使用以下命令导入:
cat centos-7-x86_64-minimal.tar.gz |docker import - centos7
第三种方法就是使用dockerfile了,这种方法比较复杂,但是用的最多的,到后面会单独拿出来一篇文章来说。
5、上传镜像,使用docker push
这里我登上自己的hub.docker,没有的话,可以自己去注册https://hub.docker.com/
把刚刚做的镜像上传到仓库
docker push myregisteries/bustbox:latest
6、用docker rmi 移除images
为了防止其他container干扰,我把所有container都杀掉了
7、保存和载入images
当需要把一台机器上的镜像迁移到另一台机器的时候,需要存出镜像与载入镜像。 存出镜像 如果要导出镜像到 本地文件,可以使用docker save 命令。
[root@docker-100 ~]# docker save -o centos-mariadb.tar centos:mariadb
载入镜像 可以使用docker load 从导出的本地文件中再导入到本地镜像库,例如
[root@docker-100 ~]# docker load --input centos-mariadb.tar
或
[root@docker-100 ~]# docker load < centos-mariadb.tar
附加:搭建私有仓库
1、拉取一个私有仓库的镜像
docker# docker pull registry
2、配置私有仓库
vi /etc/docker/daemon.json
{
"registry-mirrors": [
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn"
],"insecure-registries":["192.168.0.120:5000"]
}
3、重新加载docker
docker# systemctl daemon-reload && systemctl restart docker
4、运行registry,在通过浏览器访问http://host:port/v2/_catalog访问,如下
docker run -di --name registry -p 5000:5000 registry
5、尝试把镜像上传到私有仓库,这里用busybox做例子
docker# docker tag buxybox:latest 127.0.0.1:5000/box
docker# docker push 127.0.0.1:5000/box
6、再去浏览器中确认是否上传成功