Docker 镜像
联合文件系统 : 一层层的文件系统组成
底层bootfs文件系统
rootfs 在bootfs之上
操作都是发生在容器层
Docker 镜像 commit
案例演示ubuntu安装vim
# ubuntu
docker run -it ubuntu /bin/bash # 运行
vim a.txt # 发现没有vim命令
apt-get update
apt-get -y install vim
vim可以使用了
# commit自己的新镜像
[root@ianqinglong101 module]# docker commit -m="add vim cmd ok" -a="tian" bd06edbf7a7c atguigutian/myubuntu:1.3
sha256:e43d719252fa975c610a4b562f30c4620b2300e3ef0959b9e187dac5b251719c
docker images #此时就有自己的版本
本地镜像发布到阿里云
阿里云–容器镜像服务–个人实例
点击进去
创建命名空间
创建镜像仓库
出现页面
#推送
docker login --username=嘻嘻哈哈cider registry.cn-hangzhou.aliyuncs.com
输入密码
docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/tianqinglong/myubuntu:[镜像版本号]
[root@tianqinglong101 module]# docker tag 405549cd6af6 registry.cn-hangzhou.aliyuncs.com/tianqinglong/myubuntu:1.3
docker push registry.cn-hangzhou.aliyuncs.com/tianqinglong/myubuntu:[镜像版本号]
docker push registry.cn-hangzhou.aliyuncs.com/tianqinglong/myubuntu:1.3
#拉取验证
docker pull registry.cn-hangzhou.aliyuncs.com/tianqinglong/myubuntu:[镜像版本号]
docker pull registry.cn-hangzhou.aliyuncs.com/tianqinglong/myubuntu:1.3
本地镜像发布到私有库
1. docker pull registry
2. docker run -d -p 5000:5000 -v /tian/myregistry/:/tmp/registry --privileged=true registry
docker ps # 查看
ONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8a2927f74fb8 registry "/entrypoint.sh /etc…" 3 seconds ago Up 2 seconds 0.0.0.0:5000->5000/tcp, :::5000->5000/tcp jovial_mccarthy
3. docker run -it ubuntu /bin/bash #没有vim命令 ifconfig也没有
apt-get update
apt-get install net-tools #安装ifconfig命令
ifconfig #命令可以执行
容器外执行
docker ps
docker commit -m="add ifconfig cmd ok" -a="tian" 0acfa989689d ifconfigubuntu:1.2
docker images #已经有新镜像了
启动新镜像进行对比 发现已经有ifconfig命令
4. [root@tianqinglong101 tian]# curl -XGET http://192.168.1.150:5000/v2/_catalog
{"repositories":[]}
5. docker tag ifconfigubuntu:1.2 192.168.1.150:5000/ifconfigubuntu:1.2
docker images #发现克隆出来一份
6. vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://kgit923r.mirror.aliyuncs.com"],
"insecure-registries" : ["192.168.1.150:5000"]
}
如果不生效重启docker
systemctl restart docker
重启registry
docker run -d -p 5000:5000 -v /tian/myregistry/:/tmp/registry --privileged=true registry
7. docker images
docker push 192.168.1.150:5000/ifconfigubuntu:1.2
8. curl -XGET http://192.168.1.150:5000/v2/_catalog
{"repositories":["ifconfigubuntu"]}
9.docker images
docker rmi 镜像id # 删除192.168.1.150:5000/ifconfigubuntu:1.2
docker pull 192.168.1.150:5000/ifconfigubuntu:1.2
docker images # 又有了