容器镜像的使用和维护场景
一:docker 标签重命名及删除
标志:
docker tag 3c5a05123222 k8s1:5000/registry:v1
删除:
docker rmi k8s1:5000/registry:v1
保存成新镜像
docker commit 535d36af187e nginx:v1
二:导出/导入镜像文件,体积大,保留所有记录
docker save centos6.6-ssh:hk > centso6.6-ssh-hk.tgz
docker load < centso6.6-ssh-hk.tgz
三:导出/导入镜像快照,体积小,丢失元数据及历史记录
#容器ID
docker export 535d36af187e > nginx-v1.tar
docker import - update < nginx-v1.tar
四:镜像推送
1.在本地登录到远程仓库
docker login --username=[用户名] -p=[密码] 远程ip:端口
2.给本地镜像打标签, [远程ip:端口/自定义路径/*]:[版本号] 就是:[标签名:版本号]
docker tag [镜像id] [远程ip:端口/自定义路径/*]:[版本号]
3.推送
docker push [远程ip:端口/自定义路径/*]:[版本号]
五:自定义nginx镜像
1.部署centos docker
docker run -it centos /bin/bash
2.进入docker 后,安装部署nginx
yum -y install epel-release
yum -y install nginx
3.打上镜像标识
docker commit e269d6fad2ea k8s4:5000/nginx:v1.12.3
4.创建Dockerfile
#Dockerfile
FROM k8s4:5000/nginx:v1.12.3
COPY index.html /usr/share/nginx/html/index.html
EXPOSE 80
CMD ["nginx","-g","daemon off;"] #需要后端保持运行的进程
5.建立镜像
docker build -t k8s4:5000/nginx:v1.0.2 .
6.推送到私有仓库
docker push k8s4:5000/nginx:v1.0.2
7.deployment 配置自由镜像仓库
containers:
- name: nginx-v1-deploy
image: k8s4:5000/nginx:v1.0.2
8.访问测试
curl 10.0.0.218:8001
version:v1.0.1
六:k8s使用本地镜像仓库
1.本地搭建docker 仓库
使用REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY环境变量,指定image的存储路径;必须把container里的这个存储路径,映射到host机器可访问的持久存储目录
docker 机器上部署registry
docker run -d -p 5000:5000 --restart=always --name="docker-image" --hostname="docker-image" -v /opt/docker-images:/registry -e REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY=/registry registry
本地主机上的目录,存储镜像
/opt/docker-images
2.把镜像存入本地仓库
把镜像存入本地registry
docker tag <pause镜像的imageID> <registry所在的hostname>:5000/pause-amd64:3.0
docker push <registry所在的hostname>:5000/pause-amd64:3.0
如:
docker.io/hello-world latest
①改标识
docker tag f2a91732366c localhost:5000/hello-world:v1
②传到本地仓库
docker push localhost:5000/hello-world:v1
docker tag 8fafd8af70e9 node1:5000/kubernetes-bootcamp:v1
docker push node1:5000/kubernetes-bootcamp:v1
运行:
kubectl run kubernetes-bootcamp --image=node1:5000/kubernetes-bootcamp:v1 --port=8080
其他节点上进行验证:
取消https验证
vi /etc/docker/daemon.json
{ "insecure-registries":["k8s4:5000"] }
systemctl daemon-reload
systemctl restart docker
docker run -it k8s4:5000/nginx:v1 /bin/bash
本文暂时没有评论,来添加一个吧(●'◡'●)