参照官网docker
安装kubernetes的时候,须要安装kubelet, kubeadm等包,但k8s官网给的yum源是packages.cloud.google.com,国内访问不了,此时咱们可使用阿里云的yum仓库镜像。centos
阿里云上没有附Help说明链接,简单摸索了下,以下设置可用(centos)。注意不要开启check。缓存
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
复制代码
1 寻找基础镜像
2 基于基础镜像编写Dockerfile脚本
3 根据Dockerfile脚本建立项目镜像
4 将建立的镜像推送到docker仓库 (根据自身须要,可作可不作)
5 基于项目镜像建立并运行docker容器 (实现最终部署)
复制代码
思路:使用 centos 容器安装对应的软件环境,最后将环境导出。安全
$ docker pull centos
$ sudo docker run --privileged --cap-add SYS_ADMIN -e container=docker -it --name my_centos -p 80:8080 -d --restart=always centos:7 /usr/sbin/init
复制代码
$ docker exec -it my_centos /bin/bash
复制代码
$ docker export my_centos > /data/app/meifen/my_centos-export-0428.tar
$ docker import /data/app/meifen/my_centos-export-0428.tar
复制代码
格式:docker save IMAGE(镜像)bash
使用 docker images 查看本机已有的镜像(也可使用 docker commit 命令把一个正在运行的容器保存为镜像)网络
$ docker save 9610cfc68e8d > /data/app/meifen/my_centos-export-0428.tar
复制代码
如今就能够在任何装 docker 的地方加载 刚保存的镜像了app
$ docker load < /home/my_centos-export-0428.tar
复制代码
其余说明 镜像和容器 导出和导入的区别ui
1 容器导入 是将当前容器变成一个新的镜像 2 镜像导入 是复制的过程google
save 和 export区别阿里云
1 save 保存镜像全部的信息-包含历史 2 export 只导出当前的信息
export导出的镜像文件大小 小于 save保存的镜像。export 导出(import导入)是根据容器拿到的镜像,再导入时会丢失镜像全部的历史,因此没法进行回滚操做(docker tag );而save保存(load加载)的镜像,没有丢失镜像的历史,能够回滚到以前的层(layer)。(查看方式:docker images --tree) 。export 只导出当前的信息
$ docker commit -a "cristic" -m "commit content" 801a40ffa673 cristicmei/name:v1.0.0
复制代码
$ docker images
复制代码
$ docker image
复制代码
前提是用户有docker-hub的帐号
$ docker push cristicmei/name:v1.0.0
复制代码
Docker镜像由不少镜像层(Layers)组成(最多127层),镜像层依赖于一系列的底层技术,好比文件系统(filesystems)、写时复制(copy-on-write)、联合挂载(union mounts)等技术,能够查看Docker社区文档以了解更多有关Docker存储驱动的内容,这里再也不赘述。总的来讲,Dockerfile中的每条指令都会建立一个镜像层,继而会增长总体镜像的尺寸。
下面是精简Docker镜像尺寸的好处:
减小构建时间
减小磁盘使用量
减小下载时间
由于包含文件少,攻击面减少,提升了安全性
提升部署速度
复制代码
使用链式代码“&&”把多行指令结合成一行
$ yum clean headers
$ yum clean packages
$ yum clean all
复制代码
1.命令查看磁盘使用状况
$ du -hs /var/lib/docker/
复制代码
用于查看Docker的磁盘使用状况
$ docker system df
复制代码
$ docker system prune
复制代码
能够用于清理磁盘,删除关闭的容器、无用的数据卷和网络,以及dangling镜像(即无tag的镜像)。
$ docker system prune -a
复制代码